如何实现每日指定时段自动对AWS ECS Fargate服务执行扩缩容
ECS Fargate 工作日时段扩缩容解决方案
你可以直接使用ECS服务配套的**计划自动扩缩容(Scheduled Scaling)**功能实现需求,该方案完全兼容已绑定ALB的存量ECS Fargate服务,不需要调整现有服务的网络、负载均衡配置,操作步骤如下:
- 第一步:为目标ECS服务开启应用自动扩缩容
进入ECS控制台对应的集群页面,找到你的Fargate服务,切换到「自动扩缩」标签页,点击配置应用自动扩缩容,设置任务数伸缩范围:最小任务数填1,最大任务数填3即可。 - 第二步:添加两条定时触发的伸缩规则
- 工作日扩容规则:
触发周期使用Cron表达式0 9 ? * MON-FRI *,对应每周一到周五上午9点触发,执行动作是将服务期望任务数设置为3(基础1个+2个额外扩容任务) - 工作日缩容规则:
触发周期使用Cron表达式0 17 ? * MON-FRI *,对应每周一到周五下午17点触发,执行动作是将服务期望任务数设置为1
- 工作日扩容规则:
- 如果你使用基础设施即代码工具批量配置,可以直接调用
application-autoscaling相关的接口实现,CLI命令示例如下:# 扩容规则创建示例 aws application-autoscaling put-scheduled-action \ --service-namespace ecs \ --resource-id service/你的集群名称/你的服务名称 \ --scalable-dimension ecs:service:DesiredCount \ --scheduled-action-name workday-scale-out \ --schedule "cron(0 9 ? * MON-FRI *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=3,DesiredCount=3
该方案完全不需要用到独立的Scheduled Tasks或者CloudWatch告警触发的步骤伸缩策略,是适配该场景的原生实现。
内容的提问来源于stack exchange,提问作者Ketan Chaudhari
相关产品推荐
相关产品推荐

