为什么缩减保护对实例不起作用

Why scale-in protection doesnt work for the instance

我有一个 aws asg -> 配置:最小=2,最大=2,所需容量=2 我这样做了

  1. 设置缩容保护实例

  2. 暂停启动进程和 ReplaceUnhealthy 以避免创建新实例终止已停止的实例。

     aws autoscaling set-instance-protection --instance-ids i-xxxxxxxxxxxx --auto-scaling-group-name xxxxxxxxxxxxxxxx --protected-from-scale-in
    
     aws autoscaling suspend-processes --auto-scaling-group-name xxxxxxxxxxxxxxxxxxx --scaling-processes Launch ReplaceUnhealthy
    
    aws ec2 stop-instances --instance-ids i-xxxxxxxxxxxxxx
    

到目前为止一切都很好。 现在恢复我所做的更改

aws ec2 start-instances --instance-ids xxxxxxxxxxxxxxxxxxx

实例再次启动

 aws autoscaling resume-processes --auto-scaling-group-name xxxxxxxxxxxxxxxxxxxxxxxxxx --scaling-processes Launch ReplaceUnhealthy

为什么缩减不起作用,它需要满足什么条件来保护再次启动的实例以防止终止并防止启动新实例。

我认为这可以用 ReplaceUnhealthy works:

来解释

As soon as you resume the ReplaceUnhealthly process, Amazon EC2 Auto Scaling replaces instances that were marked unhealthy while this process was suspended.

因此,即使您暂停了 ReplaceUnhealthy,在此期间您的实例由于停止而变得不健康。当进程恢复时,ASG“记住”实例在某一时刻出现故障,并在您恢复进程时替换它。