本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用实例缩减保护来控制实例终止
实例缩减保护使您可以控制 Amazon A EC2 uto Scaling 可以终止哪些实例。此功能的一个常见用例是扩展基于容器的工作负载。有关更多信息,请参阅 设计您的应用程序以优雅地处理实例终止。
默认情况下,当您创建 Auto Scaling 组时,实例缩减保护处于禁用状态。这意味着 Amazon A EC2 uto Scaling 可以终止该组中的任何实例。
您可以在自动扩缩组上启用实例横向缩减保护设置,在实例启动后立即对其进行保护。当实例状态为 InService
时,实例缩减保护启动。然后,如需控制哪些实例可以终止,请禁用自动扩缩组中单个实例的横向缩减保护设置。这样做可以继续保护某些实例免遭意外终止。
注意事项
以下是使用实例缩减保护时的注意事项:
-
如果 Auto Scaling 组中的所有实例都受到保护,不允许缩容,并且发生了缩减事件,则其所需容量就会减少。但是,在保护设置中禁用实例缩放之前,Auto Scaling 组无法终止所需数量的实例。在 Auto Scaling 组的活动历史记录中,如果 Auto Scaling 组中的所有实例都受到保护,在发生缩减事件时不会缩小,则会显示以下消息: AWS Management Console
Could not scale to desired capacity because all remaining instances are protected from scale in.
-
如果您分离受保护免受缩容保护的实例,则其实例缩减保护设置将丢失。当您再次将该实例附加到该组时,它会继承该组的当前实例规模。当 Amazon A EC2 uto Scaling 启动新实例或将实例从温池移至 Auto Scaling 组时,该实例将继承 Auto Scaling 组的实例规模保护设置。
-
实例缩减保护并不能针对以下情况保护 Auto Scaling 实例:
-
实例未通过运行状况检查的情况下的运行状况检查更换。有关更多信息,请参阅 自动扩缩组中实例的运行状况检查。
-
竞价型实例中断。当竞价型实例的容量不再可用或 Spot 价格超过您的最高价时,将终止该实例。
-
容量区块预留已结束。Amazon EC2 会收回容量块实例,即使这些实例受到保护以免缩容。
-
通过
terminate-instance-in-auto-scaling-group
命令手动终止。有关更多信息,请参阅 终止您自动扩缩组中的实例(AWS CLI)。 -
通过 Amazon EC2 控制台、CLI命令和API操作手动终止。要保护 Auto Scaling 实例免遭手动终止,请启用亚马逊EC2终止保护。(这不会阻止 Amazon A EC2 uto Scaling 通过该
terminate-instance-in-auto-scaling-group
命令终止实例或手动终止。) 有关在启动模板中启用 Amazon EC2 终止保护的信息,请参阅使用高级设置创建启动模板。
-
更改 Auto Scaling 组的缩小保护
您可以启用或禁用 Auto Scaling 组的实例缩减保护设置。启用该功能后,该组启动的所有新实例都将启用实例缩减保护。
为 Auto Scaling 组启用或禁用此设置不会影响现有实例。
更改实例的缩小保护
默认情况下,实例从其 Auto Scaling 组获取其实例缩减保护设置。但是,您可以在单个实例启动后为其启用或禁用实例缩减保护。
注意
请记住,实例缩减保护并不能保证在发生人为错误时不会终止实例,例如,有人使用 Amazon 控制台或手动终止实例。EC2 AWS CLI为了保护您的实例免受意外终止,您可以使用 Amazon EC2 终止保护。但是,即使启用了终止保护和实例扩展保护,如果运行状况检查确定实例运行状况不佳或组本身被意外删除,保存到实例存储的数据也可能会丢失。与任何环境一样,最佳做法是频繁备份您的数据,或者在适合您的业务连续性要求时备份数据。