This module creates resources for a containarized ECS application.
This is a version for EC2 backed ECS cluster.
The service is behind a load balancer which means it is exposed. A HTTP healthcheck is required.
- ECS cluster
- VPC
- VPC subnets
- Application Load Balancer (ALB)
- ECS service
- ECS task definition
- Container definition (using Cloudposse module)
- ECR repository
- IAM task execution role
- Custom policy attachment
- CloudWatch log group
- Security group
- ALB target group
- ALB listener rule
Name | Version |
---|---|
terraform | >= 0.13 |
Name | Version |
---|---|
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
alb_arn | application load balancer under which target group and services will be registered | any |
n/a | yes |
app | app name | any |
n/a | yes |
cluster_name | ecs cluster name where the services will be registered | any |
n/a | yes |
cooldown | n/a | number |
60 |
no |
cpu | CPU reservation for the task | number |
256 |
no |
deregistration_delay | n/a | number |
30 |
no |
ecr_tag_prefix_list | n/a | list |
["latest"] |
no |
ecr_number_of_newest_tags | n/a | number |
90 |
no |
ecr_untagged_lifetime | n/a | number |
1 |
no |
environment | n/a | list |
[] |
no |
healthcheck_grace | n/a | number |
0 |
no |
healthcheck_healthy_threshold | n/a | number |
3 |
no |
healthcheck_interval | n/a | number |
60 |
no |
healthcheck_matcher | n/a | string |
"200" |
no |
healthcheck_path | n/a | string |
"/" |
no |
healthcheck_timeout | n/a | number |
5 |
no |
healthcheck_unhealthy_threshold | n/a | number |
3 |
no |
image | override image - disables creating ecr repository | string |
"" |
no |
load_balancing_algorithm_type | n/a | string |
"least_outstanding_requests" |
no |
log_retention | for how many days to keep app logs | number |
30 |
no |
max_capacity | n/a | number |
1 |
no |
max_healthy | n/a | number |
200 |
no |
memory | MEM reservation for the task | number |
256 |
no |
memory_limit | MEM hard limit for the task | number |
0 |
no |
min_capacity | n/a | number |
1 |
no |
min_healthy | n/a | number |
50 |
no |
name | name of this specific service | any |
n/a | yes |
placement_constraint_expression | n/a | string |
"agentConnected==true" |
no |
placement_constraint_type | n/a | string |
"memberOf" |
no |
policy | IAM Policy heredoc to use with task | string |
"" |
no |
port | port on which the service listens | number |
80 |
no |
priority | listener rule priority - must be unique to each ecs-app (module) | any |
n/a | yes |
private_subnet_ids | list of private subnets where to provision services | list |
n/a | yes |
project | project name | any |
n/a | yes |
scale_down | n/a | number |
30 |
no |
scale_up | n/a | number |
80 |
no |
scheduling_strategy | n/a | string |
"REPLICA" |
no |
secrets | n/a | list |
[] |
no |
stage | stage name | any |
n/a | yes |
tags | n/a | map |
{} |
no |
url | url for the alb listener | any |
n/a | yes |
vpc_id | vpc id - used in target group, security group etc | any |
n/a | yes |
Name | Description |
---|---|
cloudwatch_log_group_arn | n/a |
ecr_repository | n/a |