如何从我的自动扩缩组中移除已终止的 EC2 实例?

1 分钟阅读
0

我的 Amazon Elastic Compute Cloud(Amazon EC2)实例已终止。但是,该实例在 Amazon EC2 控制台中显示为正常(Healthy)且处于待机状态(InStandby)。

概述

EC2 自动扩缩服务不对处于待机状态的实例执行运行状况检查。EC2 自动扩缩服务不知道待机实例的实例终止情况。

使用以下方法之一从 EC2 自动扩缩组中移除仍列为 Healthy 和 InStandby 的已终止实例:

  • 使用 AWS 命令行界面(AWS CLI)终止实例。
  • 将该实例与 EC2 自动扩缩组分离,将其从 EC2 自动扩缩服务控制台中删除。
  • 使实例退出 InStandby 状态,以允许自动扩缩服务使用运行状况检查来发现实例终止情况。

解决方法

**注意:**如果您在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

终止实例

运行以下命令,终止您的实例。将 YOUR-INSTANCE-ID 替换为您的实例的资源 ID

aws autoscaling terminate-instance-in-auto-scaling-group --instance-id YOUR-INSTANCE-ID --no-should-decrement-desired-capacity

**重要信息:**如果您为 EC2 自动扩缩组配置了生命周期挂钩 EC2_INSTANCE_TERMINATING,则使用 CompleteLifecycleAction 立即将该实例从组中移除。

分离实例

运行以下命令将您的实例与 EC2 自动扩缩组分离。将 YOUR-INSTANCE-ID 替换为您的实例的资源 ID,将 YOUR_ASG_NAME 替换为您的 EC2 自动扩缩组的名称。

aws autoscaling detach-instances --instance-ids YOUR-INSTANCE-ID --no-should-decrement-desired-capacity --auto-scaling-group-name YOUR-ASG-NAME

使实例退出待机状态

1    使用 AWS CLIAmazon EC2 控制台编辑 EC2 自动扩缩组的最大大小。使实例恢复运行时,所需容量将按一递增且不得超过该组的最大大小值。将最大大小设置为当前值 + 恢复运行的实例数(1),否则可能会出现类似于以下错误的问题:

An error occurred (ValidationError) when calling the ExitStandby operation: AutoScalingGroup YOUR-ASG-NAME has min-size=1, max-size=1, and desired-size=1. To place in service 1 instance, please update the AutoScalingGroup sizes appropriately.

**注意:**终止实例后,Amazon EC2 会启动一个与所需容量相匹配的替代实例。

2.    使用以下命令让您的实例退出待机状态。请务必将 YOUR-INSTANCE-ID 替换为实例的资源 ID,将 YOUR_ASG_NAME 替换为您的 EC2 自动扩缩组的名称。

aws autoscaling exit-standby --instance-ids YOUR-INSTANCE-ID --auto-scaling-group-name YOUR-ASG-NAME

相关信息

临时从自动扩缩组中移除实例

AWS 官方
AWS 官方已更新 10 个月前