Terraform resource: aws ecs service
Arguments
launch_type
:EC2, FARGATE, and EXTERNAL
. Default: EC2. https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#launch_typeload_balancer (argument)
:target_group_arn, container_name, container_port
task_definition
[1]security_groups
enable_execute_command
desired_count
placement_constraints
network_configuration
[2]deployment_minimum_healthy_percent
[3]
Examples
Official example
resource "aws_ecs_service" "mongo" { name = "mongodb" cluster = aws_ecs_cluster.foo.id task_definition = aws_ecs_task_definition.mongo.arn desired_count = 3 iam_role = aws_iam_role.foo.arn depends_on = [aws_iam_role_policy.foo] ordered_placement_strategy { type = "binpack" field = "cpu" } load_balancer { target_group_arn = aws_lb_target_group.foo.arn container_name = "mongo" container_port = 8080 } placement_constraints { type = "memberOf" expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]" } }
Additional examples
resource "aws_ecs_service" "your_service" { count = var.network_name == "prod" ? 1 : 0 name = "your_service-${var.env}-service" cluster = aws_ecs_cluster.your_cluster.name task_definition = "${aws_ecs_task_definition.your_task[0].family}:${aws_ecs_task_definition.your_task[0].revision}" launch_type = "FARGATE" desired_count = var.your_service_desired_count network_configuration { security_groups = [aws_security_group.your_sg[0].id] subnets = [for s in data.aws_subnet.all_private : s.id] assign_public_ip = false } load_balancer { target_group_arn = aws_lb_target_group.your_tg[0].arn container_name = "your-container-${var.env}-c" container_port = 4444 } }
Errors
News
Related
See also
- Terraform resource:
aws_ecs_service: launch_type (EC2, FARGATE), iam_role, depends_on, load_balancer, desired_count, placement_constraints, deployment_minimum_healthy_percent, iam role
- Terraform ECS: module, resources:
aws_ecs_cluster, aws_ecs_service: task definition, aws_ecs_task_definition: container_definitions
Advertising: