ecs-app
hazelops/ecs-app/aws
Terraform module to create and manage AWS ECS application.
Install
README
Terraform AWS ECS App Module  Create and manage AWS ECS application in a clean abstracted way. > [!WARNING] > This module requires AWS provider version 6.x or higher. This module is actively maintained and is covered by multiple end-to-end tests to prevent regressions. Features _This module is feature-rich, with sane defaults. Some of the features are:_ - Web application (ALB + ACM + R53) - Worker application to Fargate and Worker application to EC2 (no ALB) - TCP application (no ALB) - Environment variables (SSM parameters) - ECR repo Management - Standardized naming convention for all resources - Deployment via Terraform & via external tool (ecs-deploy or ize) - Datadog integration - Autosc
Inputs (50)
| Name | Type | Description | Default |
|---|---|---|---|
| ecs_cluster_name | string | Name of the ECS cluster where the service will be deployed. Required | required |
| name | string | Application name. Used as the primary identifier for all created resources (e.g. | required |
| vpc_id | string | ID of the VPC where ECS resources will be created. Required | required |
| env | string | Environment name (dev, prod) | required |
| docker_registry | string | ECR or any other docker registry | "docker.io" |
| proxy_docker_image_name | string | Nginx proxy docker image name | "nginx" |
| max_size | number | Maximum number of running ECS tasks | 1 |
| efs_access_points | any | EFS access points - map of access point definitions. See terraform-aws-modules/e | {} |
| ssm_secret_path | string | AWS SSM root path to environment secrets of an app like /dev/app1 | null |
| alb_health_check_timeout | number | The amount of time, in seconds, during which no response means a failed health c | 6 |
| ecr_force_delete | bool | If true, the ECR repository will be deleted even if it contains images on destro | false |
| image_id | string | EC2 AMI id | null |
| sns_service_subscription_endpoint_protocol | string | SNS subscription protocol. See valid protocols here: https://registry.terraform. | "email" |
| ecs_network_mode | string | Corresponds to networkMode in an ECS task definition. Supported values are none, | "awsvpc" |
| https_enabled | bool | Whether enable https or not (still needs tls_cert_arn) | true |
| http_port | number | Port that is used for HTTP protocol | 80 |
| alb_access_logs_s3prefix | string | S3 prefix for ALB access logs | "" |
| app_type | string | ECS application type. Valid values: web (with ALB), worker (without ALB). | "web" |
| ssm_global_secret_path | string | AWS SSM root path to global environment secrets like /dev/global | null |
| assign_public_ip | bool | ECS service network configuration - assign public IP | false |
| datadog_jmx_enabled | bool | Enables / Disables jmx monitor via the datadog agent | false |
| ecs_service_name | string | The ECS service name | "" |
| app_secrets | list(any) | List of SSM ParameterStore secret parameters - by default, /$var.env/$var.name/* | [] |
| docker_container_port | number | Port exposed by the Docker container. Default is 3000 | 3000 |
| … and 10 more inputs | |||
Outputs (12)
cloudwatch_log_groupcloudwatch_event_rule_id — ID of the Cloudwatch event rule for ECS Scheduled Taskalb_dns_zone — Zone ID of the ALB DNS record (if ALB is created)alb_arn — ARN of the ALB (if ALB is created)public_ip — Public IP of the EC2 instance (if EC2 is used)ec2_dns_name — Public DNS name of the EC2 instance (if EC2 is used)r53_lb_dns_name — DNS name of the record that is attached to the ALB (if app type is web or tcp-ap)this_task_definition_arnalb_dns_name — Name of the ALB DNS record (if ALB is created)efs_mount_target — DNS name of the EFS mount target (if EFS is created)eips — List of EIPs associated with the EC2 instances (if EC2 is used)this_target_group_arnResources (3)
Topics & Tags
Details
Similar packages
Azure 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,