This is Minimal ECS Fargate Service Module. These types of resources are supported:
type = lb
is create target group and connect to ecs_service.
type = sd
is create private service discovery and connect to ecs_service.
type = no
is not create more resources.
is_mem_scale = true
or is_cpu_scale = true
module "fargate" {
source = "grandcolline/ecs-fargate/aws"
version = "1.2.0"
service_name = "FargateTestService"
cluster_name = aws_ecs_cluster.main.name
task_definition_arn = aws_ecs_task_definition.main.arn
container_name = "ecs_demo_app"
assign_public_ip = true
type = "lb"
service_subnets = ["${var.service_subnet_id}"]
lb_dns = aws_alb.main.dns_name
}
Name | Description | Type | Default | Required |
---|---|---|---|---|
add_tags | Additional tags | map(string) | {} |
no |
Name | Description | Type | Default | Required |
---|---|---|---|---|
service_name | fargate service name | string | n/a | yes |
cluster_name | ECS cluster name | string | n/a | yes |
task_count | task's desired count & minimum capacity | string | "1" |
no |
task_definition_arn | task definition's arn | string | n/a | yes |
type | fargate service type. load balancer or service discovery or nothing (lb/sd/no) | string | "no" |
no |
deployment_maximum_percent | maximum percent when deploy | number | 200 |
no |
deployment_minimum_healthy_percent | minimum percent when deploy | number | 50 |
no |
assign_public_ip | assign public ip to the task | bool | "false" |
no |
Name | Description | Type | Default | Required |
---|---|---|---|---|
service_subnets | List of subnet id's to put the task on | list | n/a | yes |
Name | Description | Type | Default | Required |
---|---|---|---|---|
container_name | container's name to which target group connect | string | "" |
no |
container_port | container's port to which target group connect | string | "8080" |
no |
deregistration_delay | time for load balancing to wait before deregistering a target | number | 300 |
no |
lb_dns | load balancer's dns | string | "" |
no |
healthy_threshold | number | 2 |
no | |
unhealthy_threshold | number | 5 |
no | |
healthcheck_timeout | number | 5 |
no | |
healthcheck_protocol | string | "HTTP" |
no | |
healthcheck_path | string | "/hc" |
no | |
healthcheck_interval | number | 30 |
no | |
healthcheck_matcher | number | 200 |
no |
Name | Description | Type | Default | Required |
---|---|---|---|---|
dns_namespace_id | string | "" |
no | |
dns_ttl | number | 10 |
no |
Name | Description | Type | Default | Required |
---|---|---|---|---|
task_max_count | task's maximum capacity | number | 2 |
no |
is_mem_scale | scale task by memory usage | bool | "false" |
no |
mem_target_value | target value of scale task by memory usage (%) | number | 40 |
no |
mem_scale_in_cooldown | cool down time of scale in task by memory usage | number | 300 |
no |
mem_scale_out_cooldown | cool down time of scale out task by memory usage | number | 300 |
no |
is_cpu_scale | scale task by cpu usage | bool | "false" |
no |
cpu_target_value | target value of scale task by cpu usage (%) | number | 40 |
no |
cpu_scale_in_cooldown | cool down time of scale in task by cpu usage | number | 300 |
no |
cpu_scale_out_cooldown | cool down time of scale out task by cpu usage | number | 300 |
no |
Name | Description |
---|---|
target_group_arn | target group's arn |
target_group_arn_suffix | target group's arn suffix |