AWS对EC2容器服务的终止保护进行扩展



我无法弄清楚在Amazon AWS中使用自动缩放时如何保护我的ECS任务实例。我有一个长期运行的任务,可以根据需要扩大规模,但是我想将运行的任务实例标记为"不可破坏"。我发现了一些谈论实例保护的资源,例如:

https://aws.amazon.com/blogs/aws/new-inew-instance-protection-for-auto-scaling/

and(因为我正在使用Python)API文档在这里:

http://boto3.readthedocs.io/en/latest/reference/services/autoscaling.html#autoscaling.client.set_instance_protection

此方法需要一个InstanceID,因此我尝试通过使用以下命令来获取当前容器的实例ID

卷曲http://169.254.169.254/latest/meta-data/instance-id

但是,此方法只是返回任务正在运行的EC2计算机的实例ID。所以我的问题是:有没有办法获得Docker任务实例的实例ID(甚至存在)?如果没有,我可以防止自动扩展终止仍在运行的任务?我是否必须编写自己的任务管理器来管理缩放?

要解决同一问题,我们开发了一个简单的应用程序,该应用程序是在一个自动缩放组(ASG)实例之一上完成作业时启动的。该应用程序检查队列,如果队列中没有作业(例如,假设10分钟或10次),它将终止其实例并减少ASG的> 值。这为我们提供了一种可靠的机制来缩放。另一方面,根据队列中的作业数量,ASG本身进行扩展。

最新更新