AWS扩展在EC2容器服务的终端保护中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS扩展在EC2容器服务的终端保护中相关的知识,希望对你有一定的参考价值。
在Amazon AWS中使用Auto Scaling时,我无法弄清楚如何保护我的ECS任务实例。我有一个长期运行的任务,可以根据需要扩展,但我想标记运行为“不可破坏”的任务实例。我找到了几个讨论实例保护的资源,例如:
https://aws.amazon.com/blogs/aws/new-instance-protection-for-auto-scaling/
和(因为我使用的是python)API文档在这里:
此方法需要InstanceId,因此我尝试使用如下命令获取当前容器的实例ID:
卷曲http://169.254.169.254/latest/meta-data/instance-id
但是,此方法只返回正在运行任务的EC2计算机的实例ID。所以我的问题是:有没有办法获得docker任务实例的实例ID(如果它甚至存在)?如果没有,我可以采用另一种方法阻止Auto Scaling终止仍在运行的任务吗?我是否必须编写管理Scaling In的自己的任务管理器?
为了解决同样的问题,我们开发了一个简单的应用程序,该应用程序在其中一个Auto Scaling Group(ASG)实例上完成作业时启动。此应用程序检查队列,如果队列中没有作业(比方说10分钟或10次),它将终止其实例并减少ASG的Desired值。这为我们提供了一种可靠的扩展机制。另一方面,扩展是由ASG本身根据队列中的作业数量完成的。
以上是关于AWS扩展在EC2容器服务的终端保护中的主要内容,如果未能解决你的问题,请参考以下文章
AWS EC2 容器服务/Elastic Beanstalk Docker 容器端口 udp 绑定
具有 Auto Scaling 与弹性容器服务 (ECS) 的 AWS EC2 - Docker
AWS Elastic Beanstalk 与 EC2 容器服务 (ECS) - Docker