Skip to main content

Module catalog

The shared modules under terraform/modules are the stable building blocks behind both environment roots.

Core modules

ModuleResponsibilityCritical inputsMain outputs
vpcVPC, public/private subnets, NAT, route tables, S3 gateway endpoint, shared security groups, flow logscidr_block, availability_zones, alb_ingress_cidrs, msk_public_access_cidrs, private_vpc_peering_routesvpc_id, public_subnet_ids, private_subnet_ids, security group IDs
albInternet-facing ALB, HTTPS listener, default target group, ALB access logs bucketvpc_id, subnet_ids, security_group_id, certificate_arn, health_check_pathalb_arn, alb_dns_name, target_group_arn, listener_arn
ecrApplication image repositories and lifecycle policyrepository_name, image_tag_mutabilityrepository_url, repository_arn
secretsSecrets Manager secrets seeded from a JSON templatesecret_name_prefix, secret_name, secret_templatesecret_arn, secret_name

Compute modules

ModuleResponsibilityCritical inputsMain outputs
ecs-events-ingestionShared ECS cluster, task definition, service, CloudWatch logs, IAM for the events APIcluster_name, service_name, ecr_image_url, msk_cluster_arn, secret_arn, target_group_arncluster_name, cluster_arn, service_name
ecs-dashboard-backendDashboard backend ECS task, service, target group, dedicated security group, IAM, logscluster_arn, image, listener_arn, host_header, secret_arn, secret_keysservice_name, security_group_id, target_group_arn, log_group_name
ecs-kafka-uiKafka UI ECS task, service, target group, listener rule, IAM, logscluster_arn, cluster_display_name, bootstrap_brokers, listener_arn, host_headerservice_name, target_group_arn, log_group_name

Data modules

ModuleResponsibilityCritical inputsMain outputs
mskAmazon MSK cluster with IAM + TLS and optional multi-VPC connectivitycluster_name, kafka_version, broker_instance_type, subnet_ids, security_group_idbootstrap_brokers_tls, bootstrap_brokers_public_tls, cluster_arn
msk-connect-s3Optional MSK Connect S3 sink connector, execution role, log group, custom pluginmsk_cluster_arn, bootstrap_brokers, topics_regex, s3_bucket_name, plugin_file_keyconnector_name, connector_arn, log_group_name
s3-sink-bucketGeneric encrypted S3 bucket with lifecycle policy for sink data or plugin artifactsbucket_name, expiration_daysbucket_name, bucket_arn
rds-postgresPostgreSQL instance, subnet groups, security group, parameter group, managed master secretidentifier, db_name, instance_class, subnet_group_type, allowed_cidr_blocks, application_security_group_idsendpoint, port, db_name, security_group_id, master_user_secret_arn

How to pick the right layer

  • Read the root main.tf files when you need to understand orchestration between modules.
  • Read the individual module files when you need the implementation details or exact variable semantics.
  • Use the root outputs.tf files for operator workflows instead of reconstructing resource names manually.