### ECS Service Autoscaling ### resource "aws_appautoscaling_target" "ecs_target" { max_capacity = 10 min_capacity = 0 resource_id = "service/${var.project_id}/${var.project_id}" scalable_dimension = "ecs:service:DesiredCount" service_namespace = "ecs" } resource "aws_appautoscaling_policy" "ecs_scale_down" { name = "scale-down-${var.project_id}" policy_type = "StepScaling" resource_id = aws_appautoscaling_target.ecs_target.resource_id scalable_dimension = aws_appautoscaling_target.ecs_target.scalable_dimension service_namespace = aws_appautoscaling_target.ecs_target.service_namespace step_scaling_policy_configuration { adjustment_type = "ChangeInCapacity" metric_aggregation_type = "Average" step_adjustment { scaling_adjustment = -1 metric_interval_upper_bound = 0 } } } resource "aws_appautoscaling_policy" "ecs_scale_up" { name = "scale-up-${var.project_id}" policy_type = "StepScaling" resource_id = aws_appautoscaling_target.ecs_target.resource_id scalable_dimension = aws_appautoscaling_target.ecs_target.scalable_dimension service_namespace = aws_appautoscaling_target.ecs_target.service_namespace step_scaling_policy_configuration { adjustment_type = "ChangeInCapacity" metric_aggregation_type = "Average" cooldown = 600 step_adjustment { scaling_adjustment = 1 metric_interval_lower_bound = 0 } } }