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

AWS ECS基于CloudWatch告警的自动扩缩容未按预期工作

解决方案

让我们一步步排查并修复这个自动扩缩容的问题,核心是你混淆了CloudWatch指标的类型,以及统计方式的错误选择:

1. 替换为正确的CloudWatch指标

你当前使用的ActivitiesScheduled是增量指标,统计的是指定周期内新调度的活动数量,而非你在Step Functions控制台看到的「当前待处理的计划活动存量」(也就是那1000+的积压数量)。

你需要把MetricName改为ActivitiesPending——这个指标才是代表当前处于待处理状态的活动数量,完全匹配你想要基于积压量触发扩容的需求。

2. 调整统计方式(Statistic)

ActivitiesPending属于gauge类型指标(反映某个时刻的状态值),你之前用的SampleCount完全不适用:

  • 推荐使用Maximum:捕获统计周期内的最大待处理活动数量,确保不会错过峰值需求
  • 也可以用Average:统计周期内的平均积压量,适合平稳扩容的场景

把配置中的Statistic字段从SampleCount改为Maximum即可。

3. 优化阈值与周期配置

  • Threshold:当前设为0会导致只要有活动就触发扩容,建议根据你的ECS实例处理能力设置合理值,比如当积压量超过500时触发扩容
  • Period:当前300秒(5分钟)的周期太长,若积压增长快会导致响应滞后,可以缩短到60秒,让告警更及时

修正后的告警配置示例

{
  "Type": "AWS::CloudWatch::Alarm",
  "Properties": {
    "AlarmName": "thumbnails-generator-scaling-alarm",
    "ActionsEnabled": true,
    "OKActions": [],
    "AlarmActions": [
      "arn:aws:autoscaling:us-west-2:111111111111:scalingPolicy:8694a867-85ee-4740-ba70-7b439c3e5fb3:resource/ecs/service/prod/thumbnails-generator:policyName/thumbnails-generator-scaling-policy"
    ],
    "InsufficientDataActions": [],
    "MetricName": "ActivitiesPending",
    "Namespace": "AWS/States",
    "Statistic": "Maximum",
    "Dimensions": [
      {
        "Name": "ActivityArn",
        "Value": "arn:aws:states:us-west-2:111111111111:activity:thumbnails-generator-activity-prod"
      }
    ],
    "Period": 60,
    "EvaluationPeriods": 1,
    "DatapointsToAlarm": 1,
    "Threshold": 500,
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "TreatMissingData": "missing"
  }
}

4. 验证配置有效性

  • 登录CloudWatch控制台,进入AWS/States命名空间,选择你的ActivityArn维度,查看ActivitiesPending指标的Maximum统计值,确认是否和Step Functions控制台的积压数量一致
  • 手动生成足够的待处理活动,观察告警是否触发,以及ECS服务是否按预期扩容

额外建议

  • 调整ECS扩容策略的步长:根据单实例能处理的活动数量设置每次扩容的实例数,避免扩容不足或过度扩容
  • 若TreatMissingData设为missing,无数据时告警会处于「数据不足」状态,可改为notBreaching(无数据时视为正常状态)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 14:49:06