控制 Amazon ECS 终止的实例
重要
您必须在自动扩缩组上启用自动扩缩实例横向缩减保护才能使用集群自动扩缩的托管终止保护功能。
通过托管式终止保护,集群自动扩缩可以控制终止哪些实例。当您使用托管式终止保护时,Amazon ECS 仅终止没有任何正在运行的 Amazon ECS 任务的 EC2 实例。由使用 DAEMON
计划策略的服务运行的任务将被忽略,即使实例正在运行这些任务,也可以通过集群自动扩缩终止该实例。这是因为集群中所有实例均在运行这些任务。
Amazon ECS 首先为自动扩缩组中的 EC2 实例开启实例横向缩减保护选项。然后,Amazon ECS 将任务放在实例上。当实例上的所有非守护进程任务停止时,Amazon ECS 将启动横向缩减过程并关闭 EC2 实例的横向缩减保护。然后,自动扩缩组可以终止实例。
自动扩缩实例横向缩减保护控制自动扩缩可以终止哪些 EC2 实例。在横向缩减过程中,开启了横向缩减功能的实例无法终止。有关自动扩缩实例横向缩减保护的更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的使用实例横向缩减保护。
您可以设置 targetCapacity
百分比,以便有备用容量。这有助于更快地启动未来的任务,因为自动扩缩组不必启动更多实例。Amazon ECS 使用目标容量值来管理该服务创建的 CloudWatch 指标。Amazon ECS 管理 CloudWatch 指标。自动扩缩组被视为稳定状态,因此不需要执行扩缩操作。这些值可以是 0-100%。例如,要将 Amazon ECS 配置为在 Amazon ECS 任务使用的容量之外保持 10% 的可用容量,请将目标容量值设置为 90%。在容量提供程序上设置 targetCapacity
值时,请考虑以下因素。
-
小于 100% 的
targetCapacity
值表示集群中需要存在的可用容量(Amazon EC2 实例)的量。可用容量意味着没有正在运行的任务。 -
可用区之类的放置约束无需额外的
binpack
即可强制 Amazon ECS 最终为每个实例运行一个任务,这可能不是所需的行为。
您必须在自动扩缩组上启用自动扩缩实例横向缩减保护才能使用托管终止保护功能。如果您不开启横向缩减保护,则开启托管终止保护可能会导致不良行为。例如,您的实例可能停留在耗尽状态。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的使用实例横向缩减保护。
当您对容量提供程序使用终止保护时,请勿在与容量提供程序关联的自动扩缩组上执行任何手动操作,例如分离实例。手动操作可能会中断容量提供程序的横向缩减操作。如果您将某个实例与自动扩缩组分离,则还需要从 Amazon ECS 集群中取消注册已分离的实例。