我的 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 CLI 或 Amazon 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
相关信息
临时从自动扩缩组中移除实例