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 |
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 |