配置 ECS 在不使用时缩放为零

Jel*_*tis 7 amazon-ecs aws-fargate aws-application-load-balancer

我正在使用 Fargate 在 AWS ECS 中运行 Superset。Superset 的此实例仅供内部使用。我希望能够将 ECS 配置为在不使用时将任务扩展到零。我知道恢复需要时间(可能是几分钟),该应用程序的最终用户只需等待几分钟即可。

情况:

  • 使用 Fargate 部署的 AWS ECS
  • 自动缩放设置为最大值 2 和最小值 0
  • 希望在不使用时(例如一小时后)缩放到 0

小智 5

不使用时无法将 ECS 缩减至零。ECS 被设计为连续运行,与可以在请求到达时打开和关闭的 Lambda 函数不同。


但是,如果您的内部用户仅在已知时间(例如工作时间)访问应用程序,那么您可以使用计划扩展在特定时间扩展到零。

您可以使用put-scheduled-action来实现这一点。

aws application-autoscaling put-scheduled-action --service-namespace ecs \
    --schedule "cron(15 12 * * ? *)" \ 
    ...
Run Code Online (Sandbox Code Playgroud)

这篇 AWS 博客文章更详细地解释了这一点:https://aws.amazon.com/blogs/containers/optimizing-amazon-elastic-container-service-for-cost-using-scheduled-scaling/

  • 答案已经过时了吗?“如果您希望在没有工作要做时将任务计数缩小到零,请将最小容量设置为 0” https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling。 html (8认同)