ecs-web-app
cloudposse/ecs-web-app/aws
Terraform module that implements a web app on ECS and supports autoscaling, CI/CD, monitoring, ALB integration, and much more.
A Terraform module which implements a web app on ECS and supporting AWS resources. > [!TIP] > #### 👽 Use Atmos with Terraform > Cloud Posse uses atmos to easily orchestrate multiple environments using Terraform. > Works with Github Actions, Atlantis, or Spacelift. > > > Watch demo of using Atmos with Terraform > > Example of running atmos to manage infrastructure from our Quick Start tutorial. > Usage For a complete example, see examples/complete. For automated tests of the complete example using bats and Terratest (which test and deploy the example on AWS), see test. Other examples: - without authentication - without authentication - with Google OIDC authentication - with Google OIDC authentication - with Cognito authentication - with Cognito authentication ``` module "default_backend_web
| Name | Type | Description | Default |
|---|---|---|---|
| ecs_cluster_arn | string | The ECS Cluster ARN where ECS Service will be provisioned | required |
| ecr_scan_images_on_push | bool | Indicates whether images are scanned after being pushed to the repository (true) | false |
| container_start_timeout | number | Time duration (in seconds) to wait before giving up on resolving dependencies fo | 30 |
| alb_ingress_health_check_interval | number | The duration in seconds in between health checks | 15 |
| alb_ingress_health_check_timeout | number | The amount of time to wait in seconds before failing a health check request | 10 |
| ecs_alarms_cpu_utilization_high_alarm_actions | list(string) | A list of ARNs (i.e. SNS Topic ARN) to notify on CPU Utilization High Alarm acti | [] |
| ecs_alarms_memory_utilization_low_ok_actions | list(string) | A list of ARNs (i.e. SNS Topic ARN) to notify on Memory Utilization Low OK actio | [] |
| ecs_security_group_ids | list(string) | Additional Security Group IDs to allow into ECS Service if `var.network_mode = " | [] |
| authentication_oidc_user_info_endpoint | string | OIDC User Info Endpoint | "" |
| attributes | list(string) | ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`, | [] |
| container_image | string | The default container image to use in container definition | "cloudposse/default-backend" |
| ecr_enable_default_lifecycle_policy | bool | Enable default lifecycle policy for the ECR repository | true |
| alb_ingress_listener_authenticated_priority | number | The priority for the rules with authentication, between 1 and 50000 (1 being hig | 300 |
| init_containers | list(object({ container_de | A list of additional init containers to start. The map contains the container_de | [] |
| container_repo_credentials | map(string) | Container repository credentials; required when using a private repo. This map c | null |
| alb_ingress_listener_unauthenticated_priority | number | The priority for the rules without authentication, between 1 and 50000 (1 being | 1000 |
| alb_ingress_authenticated_paths | list(string) | Authenticated path pattern to match (a maximum of 1 can be defined) | [] |
| alb_stickiness_cookie_duration | number | The time period, in seconds, during which requests from a client should be route | 86400 |
| authentication_cognito_scope | string | Cognito scope, which should be a space separated string of requested scopes (see | null |
| ignore_changes_desired_count | bool | Whether to ignore changes for desired count in the ECS service | false |
| map_container_environment | map(string) | The environment variables to pass to the container. This is a map of string: {ke | null |
| … and 10 more inputs | |||
alb_ingress_target_group_arn_suffix — ALB Target Group ARN suffixecs_service_role_arn — ECS Service role ARNcodepipeline_id — CodePipeline IDecs_alarms_cpu_utilization_high_cloudwatch_metric_alarm_arn — ECS CPU utilization high CloudWatch metric alarm ARNecs_alarms_memory_utilization_low_cloudwatch_metric_alarm_arn — ECS Memory utilization low CloudWatch metric alarm ARNecr_repository_name — Registry nameecs_cloudwatch_autoscaling — All outputs from `module.ecs_cloudwatch_autoscaling`ecr_repository_arn — ARN of ECR repositorycodepipeline_webhook_id — The CodePipeline webhook's IDecs_alarms_memory_utilization_high_cloudwatch_metric_alarm_id — ECS Memory utilization high CloudWatch metric alarm IDtarget_response_time_average_cloudwatch_metric_alarm_arn — ALB Target Group response time average CloudWatch metric alarm ARNecr — All outputs from `module.ecr`ecs_exec_role_policy_name — ECS service role nameecs_task_role_name — ECS Task role nameecs_exec_role_policy_id — The ECS service role policy ID, in the form of `role_name:role_policy_name`alb_ingress_target_group_arn — ALB Target Group ARNhttpcode_target_3xx_count_cloudwatch_metric_alarm_id — ALB Target Group 3xx count CloudWatch metric alarm IDecs_service_security_group_id — Security Group ID of the ECS taskhttpcode_elb_5xx_count_cloudwatch_metric_alarm_id — ALB 5xx count CloudWatch metric alarm IDtarget_response_time_average_cloudwatch_metric_alarm_id — ALB Target Group response time average CloudWatch metric alarm IDecr_repository_url — Repository URLecs_alb_service_task — All outputs from `module.ecs_alb_service_task`ecs_task_definition_revision — ECS task definition revisioncloudwatch_log_group — All outputs from `aws_cloudwatch_log_group.app`ecs_cloudwatch_autoscaling_scale_up_policy_arn — ARN of the scale up policyhttpcode_target_4xx_count_cloudwatch_metric_alarm_arn — ALB Target Group 4xx count CloudWatch metric alarm ARNhttpcode_elb_5xx_count_cloudwatch_metric_alarm_arn — ALB 5xx count CloudWatch metric alarm ARNecs_task_exec_role_name — ECS Task role namecodebuild_project_id — CodeBuild project IDcodepipeline_webhook_url — The CodePipeline webhook's URL. POST events to this endpoint to trigger the targetAzure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,