AWS扩展在EC2容器服务的终端保护中

问题描述 投票:0回答:1

在Amazon AWS中使用Auto Scaling时,我无法弄清楚如何保护我的ECS任务实例。我有一个长期运行的任务,可以根据需要扩展,但我想标记运行为“不可破坏”的任务实例。我找到了几个讨论实例保护的资源,例如:

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

和(因为我使用的是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(如果它甚至存在)?如果没有,我可以采用另一种方法阻止Auto Scaling终止仍在运行的任务吗?我是否必须编写管理Scaling In的自己的任务管理器?

amazon-web-services amazon-ec2 autoscaling amazon-ecs
1个回答
1
投票

为了解决同样的问题,我们开发了一个简单的应用程序,该应用程序在其中一个Auto Scaling Group(ASG)实例上完成作业时启动。此应用程序检查队列,如果队列中没有作业(比方说10分钟或10次),它将终止其实例并减少ASG的Desired值。这为我们提供了一种可靠的扩展机制。另一方面,扩展是由ASG本身根据队列中的作业数量完成的。

© www.soinside.com 2019 - 2024. All rights reserved.