如何在不停机或减少冗余的情况下更换ECS群集实例?

时间:2016-11-08 12:59:26

标签: amazon-ec2 amazon-ecs

我目前有一个试用环境,有大约16个服务,分为4个微实例。实例由自动缩放组(ASG)管理。当我需要更新我的集群实例的AMI时,目前我这样做:

  1. 创建新的启动配置,使用新的启动配置编辑ASG。
  2. 从ASG中删除具有替换选项的所有实例,并等待新的实例列在群集实例列表中。
  3. 手动查找并取消注册ECS群集中的旧实例(非常棘手)
  4. 由于取消注册实例,现在服务被ECS杀死:(
  5. 等待3分钟,直到新实例上的服务重新启动
  6. 手动在EC2实例列表中找到EC2实例并终止它们(非常小心不要终止新实例)。
  7. 通过这种方法,我有大约3分钟的停机时间,并且我在生产环境中想出这样做的想法。有没有办法在没有停机的情况下这样做,但保持实例的总量相同(所以没有200%缩放设置等。)。

1 个答案:

答案 0 :(得分:1)

您可以使用新的AMI更新启动配置,然后将其分配给ASG。确保在用户数据部分中包含以下内容:

echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config

然后一次终止一个实例,等到新实例启动并自动注册,然后再终止下一个实例。

这也可以自动编写脚本。