我有一种情况,就是让一个健康的ec2实例一直在特定的可用区中运行。
在ec2弹性伸缩组中,是否有一个选项可以确保在扩容和扩容过程中,给定的可用区(假设ap-东南-2b)始终包含至少一个健康的ec2实例?
谢谢,阿维纳什
发布于 2020-08-10 10:05:02
当弹性伸缩启动新的实例时,它会尝试平衡可用区。因此,它将在来自Auto Scaling组的实例数量最少的AZ中启动一个新实例。如果它们都包含相同的数量,AZ将被随机选择。
当弹性伸缩由于扩容策略而终止实例时,它会首先从弹性伸缩组中选择运行实例数量最多的可用区。然后它将在AZ中终止一个实例。
在选择的可用区内,它将根据销毁策略选择要销毁的实例。请参阅:Controlling Which Auto Scaling Instances Terminate During Scale In - Amazon EC2 Auto Scaling
如果您希望确保“在给定的AZ中始终至少有一个EC2实例可用”,那么您需要确保Auto Scaling组中有足够的实例来覆盖所有配置的AZ。例如,如果为Auto Scaling组配置了两个AZ,则将组的最小大小设置为2。这将确保两个AZ都有实例。
还有Instance Scale-In Protection可以将实例标记为“protected”,这样它就不会被终止。但是,这并不一定适合您的情况,因为每次替换实例时都需要对其进行标记。它的目的是在非常特殊的情况下使用。
https://stackoverflow.com/questions/63332587
复制相似问题