实例横向缩减保护 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

实例横向缩减保护

要控制 Auto Scaling 组在缩减时是否可以终止特定实例,请使用实例缩减保护。您可以对 Auto Scaling 组或单个 Auto Scaling 实例启用实例缩减保护设置。当 Amazon EC2 Auto Scaling 组启动新的实例或将暖池中的示例移入 Auto Scaling 组时,该实例会继承 Auto Scaling 组的实例缩减保护设置。您可以随时更改 Auto Scaling 组或 Auto Scaling 实例的实例缩减保护设置。

当实例状态为 InService 时,实例缩减保护启动。当您分离受终止保护的实例时,其实例横向缩减保护设置就会失效。再次将实例挂载到组时,它会继承组的当前实例缩减保护设置。

实例缩减保护并不能针对以下情况保护 Auto Scaling 实例:

  • 通过 Amazon EC2 控制台、terminate-instances 命令或 TerminateInstances 操作手动终止。要保护 Auto Scaling 实例不被手动终止,请启用 Amazon EC2 终止保护。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的启用终止支持

  • 实例未通过运行状况检查的情况下的运行状况检查更换。有关更多信息,请参阅Auto Scaling 实例的运行状况检查

  • 竞价型实例中断。当竞价型实例的容量不再可用或 Spot 价格超过您的最高价时,将终止该实例。

注意

如果缩减期间 Auto Scaling 组中的所有实例都受终止保护并且发生缩减事件,则该组的所需容量会减少。不过,Auto Scaling 组不能终止所需数量的实例,直到其实例缩减保护设置被禁用。

在 Amazon Web Services Management Console 中,如果 Auto Scaling 组中的所有实例在发生横向缩减事件时都受到保护无法横向缩减,则适用于 Auto Scaling 组的 Activity history(活动历史记录)将包括以下消息:Could not scale to desired capacity because all remaining instances are protected from scale-in.

为组启用实例缩减保护

您可以在创建 Auto Scaling 组时启用实例缩减保护。默认情况下,实例缩减保护处于禁用状态。

启用实例缩减保护(控制台)

创建 Auto Scaling 组时,在 Configure group size and scaling policies(配置组大小和扩展策略)页面的 Instance scale-in protection(实例缩减保护)下,选择 Enable instance scale-in protection(启用实例缩减保护)选项。

启用实例缩减保护 (Amazon CLI)

使用以下 create-auto-scaling-group 命令启用实例横向缩减保护:

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...

修改组的实例缩减保护设置

您可以启用或禁用 Auto Scaling 组的实例缩减保护设置。启用实例缩减保护设置后,启用该设置后启动的所有新实例都将启用实例缩减保护。除非您为每个实例单独启用实例缩减保护设置,否则之前启动的实例不会受到扩展保护。

更改组的实例缩减保护设置(控制台)

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

  2. 选中 Auto Scaling 组旁边的复选框。

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. Details(详细信息)选项卡上,选择 Advanced configurations(高级配置)、Edit(编辑)。

  4. 对于 Instance scale-in protection(实例缩减保护),选择 Enable instance scale-in protection(启用实例缩减保护)。

  5. 选择 Update(更新)。

更改组的实例缩减保护设置 (Amazon CLI)

使用以下 update-auto-scaling-group 命令可对指定的 Auto Scaling 组启用实例保护:

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in

使用以下命令为指定组禁用实例缩减保护。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in

修改实例的实例缩减保护设置

默认情况下,实例从其 Auto Scaling 组获取其实例缩减保护设置。但是,您随时可以对实例启用或禁用实例缩减保护。

更改实例的实例缩减保护设置(控制台)

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

  2. 选中您的 Auto Scaling 组旁边的复选框。

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. Instance management(实例管理)选项卡的 Instances(实例)中,选择实例。

  4. 要启用实例缩减保护,请依次选择 Actions(操作)和 Set scale-in protection(设置缩减保护)。系统提示时,选择 Set scale-in protection(设置缩减保护)。

  5. 要禁用实例缩减保护,请依次选择 Actions(操作)和 Remove scale-in protection(删除缩减保护)。系统提示时,选择 Remove scale-in protection(删除缩减保护)。

更改实例的实例缩减保护设置 (Amazon CLI)

使用以下 set-instance-protection 命令可对指定实例启用实例横向缩减保护:

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in

使用以下命令为指定实例禁用实例缩减保护。

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in