如何在ECS任务完成后将ASG自动缩容至0?
解决ECS任务完成后ASG自动缩容至0的方案
1. 调整ECS容量提供者的自动扩缩容配置
- 进入ECS控制台,定位到目标集群的基础设施 > 容量提供者页面
- 选中对应容量提供者并点击编辑,确保自动扩缩容处于启用状态
- 在扩缩容策略中:
- 选择目标跟踪扩缩容,配置基于
ECS服务运行任务数的跟踪目标(将目标值设为0) - 开启允许缩容至最小容量选项,确保无任务时ASG能触发缩容
- 将目标容量管理切换为自动,禁止手动固定期望容量(这是导致期望容量一直为1的核心原因)
- 选择目标跟踪扩缩容,配置基于
2. 配置CloudWatch告警联动ASG缩容
- 进入CloudWatch控制台,创建针对ECS任务状态的告警:
- 指标命名空间选择
ECS/ContainerInsights,指标选择RunningTasksCount,维度选择你的集群名称 - 设置告警条件:当
RunningTasksCount持续5分钟等于0时触发告警 - 告警动作关联到ASG的缩容策略:将ASG的期望容量直接设置为0
- 指标命名空间选择
- 确保ASG的最小容量保持为0,最大容量维持1不变
3. 验证配置有效性
- 提交测试任务,待任务执行完成后,观察:
- CloudWatch中的
RunningTasksCount指标是否降至0 - ASG的期望容量是否自动调整为0,对应EC2实例是否被自动终止
- 手动终止实例后,ASG不再启动新的空闲实例,说明配置生效
- CloudWatch中的
内容的提问来源于stack exchange,提问作者nullUser
相关产品推荐
相关产品推荐

