如何始终将一个 EC2 实例保留在自动缩放组中?

How to always keep one EC2 instance in an auto-scaling group?

我在 AWS 有一个 Auto Scaling 组,有几个实例。我想将一个定义为主要脚本,我还将在其中配置自定义脚本 运行。

我以为我会为这个EC2实例启用“终止保护”,但似乎这并没有避免它在几分钟后被Auto scaling组删除。

有没有办法让受自动缩放组影响的 EC2 实例始终保持运行?

(注意:我希望它可以通过负载均衡器访问,但是我不能将它从自动缩放组中分离出来,因为我实现的 CodeDeploy 系统不能使用它?)

如果您想确保“至少一个 EC2 实例在给定的 AZ 中始终可用”,那么您需要确保 Auto Scaling 组中有足够的实例来覆盖所有配置的 AZ。例如,如果为弹性伸缩组配置了两个AZ,则将组的最小大小设置为2。这样可以保证两个AZ都有实例。

还有Instance Scale-In保护可以将一个实例标记为'protected',这样它就不会被终止。但是,这不一定适合您的情况,因为无论何时更换实例都需要对其进行标记。它旨在用于非常特殊的情况

参考下面link了解更多详情。 Controlling which Auto Scaling instances terminate during scale in

我猜你从 autoscaling group -> Advanced configurations 中输入了 Instance scale-in protection。这只会将 scale-in protection 用于新实例,而不是已经 inservice 的实例。如果要将 scale-in protection 放在特定实例上,则需要执行 Instance Management -> actions -> Set scale-in protection。这样您的特定实例就不会终止,即使您将 Desired capacity 设置为 0