在自动缩放组中更改 ECS 主机 ami 时,仅在创建新的 EC2 实例后关闭旧的 EC2 实例

在自动缩放组中更改 ECS 主机 ami 时,仅在创建新的 EC2 实例后关闭旧的 EC2 实例

这是我在 ECS 集群中 AutoScalingGroup 的 LaunchConfiguration - 使用 cloudformation。

UpdatePolicy:
  AutoScalingRollingUpdate:
    MinInstancesInService: 1
    MaxBatchSize: 1
    PauseTime: PT15M
    WaitOnResourceSignals: true

当前设置的问题是,当我更改 ECS Host AMI 时,会导致每个 EC2 实例被关闭并一次替换一个。这会导致当前正在运行的任何/所有 ECS 服务在创建新 EC2 实例之前就被终止。

有办法做到这一点吗?他们的文档没有提到如何实现我们想要的行为。

任何指点或建议都值得感激。

答案1

在更新之前将 MinInstancesInService 设置为大于等于 ASG 的当前计数 - 这将使 Cloudformation 每次在终止最旧的实例之前创建一个新实例。确保在更新过程中暂停 ASG 上的进程,否则自动扩展可能会干扰 cloudformation 对需要替换哪些实例的理解。此外,使用自动扩展生命周期钩子心跳暂停关闭实例 15 分钟左右,并使用 Lambda 拦截终止并将实例设置为 DRAINING 模式。请参阅此博客文章:https://aws.amazon.com/blogs/compute/how-to-automate-container-instance-draining-in-amazon-ecs/

相关内容