AWS Autoscaling 认为死实例是活的

AWS Autoscaling Thinks Dead Instance is Alive

我在 AWS 中的自动缩放组一团糟......我尝试缩小规模,但由于某种原因它没有终止实例......它们只是停留在 "Terminating:Wait" 几个小时。所以我放弃了,只是手动终止了它们,但现在它们仍然存在于 Auto Scaling 组的实例列表中,说 "Terminating:Wait" 即使它们 不再以任何方式存在 .

我该如何解决这个问题?

您的 Auto Scaling 组似乎已 Lifecycle Hooks 激活。

当一个实例在生命周期挂钩处于活动状态的情况下终止时,该实例不会立即终止。相反,它被置于 Terminating:Wait 状态,并通过 SNS 或 SQS 发送一条消息以指示未决终止。你应该有一个进程来接收这个消息,做任何它需要做的事情(例如复制日志文件)然后 信号 实例可能会被终止。

如果在 90 分钟后未收到终止信号,实例将终止。所以,你可能会发现它们现在不见了。

Lifecycle Hooks 无意中激活是非常奇怪的,因为它们只能通过 API 调用添加。

我遇到了同样的问题。我想销毁我的 Auto Scaling 组,但生命周期挂钩导致了问题。具体来说,实例的状态(在 ASG 控制台上的实例下列出)是 terminating:wait,而实例在常规 EC2 实例控制台上被标记为 terminated

经过一番谷歌搜索后,我发现了以下内容。如果您想手动 "ABANDON" 导致问题的实例的生命周期挂钩,请按照以下方法(使用 AWS CLI)执行此操作:

aws autoscaling complete-lifecycle-action \
  --lifecycle-hook-name ${LIFECYCLE_HOOK_NAME} \
  --auto-scaling-group-name ${ASG_NAME} \
  --lifecycle-action-result ABANDON \
  --instance-id ${EC2_INSTANCE_ID}

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/complete-lifecycle-action.html