我已经使用SQS和ECS实施了Job Observer Pattern。作业描述被推送到SQS队列进行处理。作业处理在运行ECS Docker任务的Auto-Scaling Group内的ECS群集上运行。从零实例自动缩放ECS群集
每个ECS任务的作用:
-
从SQS队列
- 上的数据执行作业(〜1小时)
- 删除消息
- 环路
- 读消息而有更多的消息
我想在每个实例没有更多工作时最终缩减群集,最终实现零实例。
看着this similar post,答案显示scale-in需要以某种方式在ASG之外处理。实例可以自我扩展,无论是通过明确的自我终止还是在没有更多消息时关闭ASG实例保护。
这也不能处理在单个实例上运行多个ECS任务的情况,因为如果其他任务并行运行,则单个任务不应该终止。
我是否限于自我缩放,每个实例只有一个任务?任何只能在实例的所有ECS任务都退出后终止的方法?还有其他的扩展选择吗?
月底公布,你可以检查实例执行作业安装在你的情况下一个简单的应用程序?例如通过获取CPU /内存利用率? – Mahdi