我有一个ECS Fargate服务设置,这需要扩展到2个额外的工作时间的任务,即上午9点到下午5点,否则我只需要一个任务运行。
我已经尝试了Scheduled tasks,但是我不能使用我的原始ECS服务和我使用的“应用程序负载均衡器”。
我还尝试了ECS Service Auto scaling--使用自定义CloudWatch警报的‘Step scaling’。但是我不知道有什么简单的方法来创建一个在特定时间触发的警报,因为ECS Step scaling不接受EventBridge规则。
发布于 2021-09-30 18:46:42
您可以使用定时伸缩:
aws application-autoscaling put-scheduled-action --service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/${CLUSTER_NAME}/${SERVICE_NAME} \
--scheduled-action-name ${DESIRED_ACTION_NAME} \
--schedule "cron(cron-expression-to-add-here)" \
--scalable-target-action MinCapacity=${MIN_CAPACITY_NEEDED_AT_DESIRED_TIME},MaxCapacity=${MAX_CAPACITY_NEEDED_AT_DESIRED_TIME}您可以了解有关put-scheduled-action here的更多信息
发布于 2021-09-30 18:32:01
计划任务将不起作用,因为这些任务不是您服务的一部分。ECS计划任务适用于自行运行和退出的计划后台任务,而不适用于将无限期运行的服务。
ECS Service Auto Scaling是用于此目的的正确功能。不幸的是,web界面滞后于服务的实际功能,并且不允许您在此时配置计划的伸缩事件。
您目前必须使用类似于AWS CLI工具的工具来通过API进行配置。您将需要创建一个引用您的ECS服务的DesiredCount设置的AWS应用程序自动缩放目标。然后,您将需要创建多个AWS应用程序自动缩放计划操作,以更改cron计划中的最小/最大容量值。
我在使用Terraform之前已经做到了这一点,所以我知道这是可能的。我强烈建议使用Terraform来配置它,以及您的基础设施的其余部分。在设置ECS计划的自动缩放时,据我所知,配置不会出现在AWS web界面中的任何地方。目前,ECS和应用程序自动缩放web界面中似乎都完全缺少该功能。
https://stackoverflow.com/questions/69397082
复制相似问题