You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ECS自动扩缩容逻辑问题:定时与动态扩缩冲突排查

ECS自动扩缩容定时策略与动态策略冲突导致服务崩溃问题排查

问题背景

  • 负责的ECS任务自动扩缩容模块包含三种策略:基于资源消耗的动态扩缩、基于Cron的定时扩缩、基于SQS队列长度的扩缩
  • 核心故障:每日8点定时扩缩正常启动50个实例,但动态扩缩因实例利用率低触发缩容,半小时后流量激增导致服务崩溃
  • 配置采用Terraform模块,多数参数为外部传入

关键排查方向与修复建议

1. 扩缩容策略优先级与实例保护配置

ECS应用自动扩缩(Application Auto Scaling)默认允许多策略并行生效,若未做优先级或实例保护配置,动态缩容会无差别回收定时启动的实例:

  • 设置策略优先级:在Terraform的aws_appautoscaling_scheduled_action中,通过priority参数给定时扩缩策略设置更高优先级(比如10),确保其期望实例数优先于动态策略的计算结果
  • 启用实例保护:给定时启动的实例添加aws:autoscaling:protected-from-scale-in标签,避免被动态缩容策略回收。示例Terraform配置:
resource "aws_autoscaling_group" "ecs_asg" {
  # 其他ASG配置项
  tag {
    key                 = "aws:autoscaling:protected-from-scale-in"
    value               = "true"
    propagate_at_launch = true
  }
}

可配合另一个定时任务,在流量高峰期结束后(比如9点)取消实例保护。

2. 动态扩缩容阈值与冷却时间调整

动态策略的缩容阈值或冷却时间设置不合理,会导致刚扩容的实例被快速回收:

  • 临时调整缩容阈值:通过定时策略在8点时调高动态缩容的CPU/内存利用率阈值(比如从30%改为10%),8:30流量高峰期到来后再调回原阈值。示例Terraform动态策略配置调整:
resource "aws_appautoscaling_target_tracking_scaling_policy" "ecs_dynamic_scale" {
  # 其他配置
  target_value       = var.scale_in_threshold # 外部传入参数,定时任务可动态修改该值
  scale_in_cooldown  = 3600 # 延长缩容冷却时间至1小时,避免立即触发缩容
}
  • 延长缩容冷却时间:将动态策略的scale_in_cooldown设置为3600秒(1小时),给流量增长留出缓冲窗口。

3. 定时扩缩容的时间范围配置

若定时策略仅设置单次扩容动作,未维持实例数到流量高峰期结束,会导致动态策略接管后缩容:

  • 配置定时策略的时间窗口:在aws_appautoscaling_scheduled_action中设置start_time和end_time,确保从8点到9点(或流量结束时间)维持50个实例的期望容量:
resource "aws_appautoscaling_scheduled_action" "ecs_scheduled_scale" {
  service_namespace  = "ecs"
  scalable_dimension = "ecs:service:DesiredCount"
  resource_id        = "service/${var.cluster_name}/${var.service_name}"

  schedule           = "cron(0 8 * * ? *)" # 每日8点触发
  desired_capacity   = 50
  start_time         = "2024-01-01T08:00:00Z"
  end_time           = "2024-01-01T09:00:00Z" # 维持到9点
}

4. 多策略交互逻辑验证

确认Application Auto Scaling的策略交互规则:当定时策略设置了desired_capacity,动态策略的目标追踪计算结果会被覆盖吗?默认情况下,多个策略会取最大的期望实例数。若动态策略计算出的期望数低于50,需检查:

  • 动态策略的scale_in_cooldown是否生效
  • 定时策略的priority是否高于动态策略

内容的提问来源于stack exchange,提问作者Assaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:33:11