如何将ECS集群实例amireplace为不同types的ami,同时避免停机?

我工作的公司使用Amazon ECS。

在这里configuration了5个或更多的生产集群,上周出现了一些问题,AWS支持小组build议我们将ECS实例ami更改为“ Ubuntu ECS optimized ”ami。

我想通过所有的集群,并用ecs优化的amireplace当前使用的ami,但是我不确定什么是最好的方法来处理这个任务。

任何群集都不能停机。

你会怎么做呢?

  1. 用ECS Cluster的新AMIbuild立新的启动configuration。 validation新实例是否联机并与群集关联。
  2. 根据需要启动尽可能多的ECS容器实例。 确保您的ECS任务分配策略反映您的意图(即确保将新任务放在新实例上)。一个示例策略将spread(attribute:ecs.availability-zone), spread(instanceId) 。怀疑, 请查阅文件 。
  3. 终止不需要的实例。 你的策略很大程度上取决于你的服务。 假设你有一个Web应用程序,你可以添加一个生命周期钩子到你的自动扩展组,这会消耗不需要的ECS容器实例。 有一个有趣的博客文章关于这个问题,如果你需要的想法。

您可能首先要在安全的临时环境中尝试此操作。