ec2 实例在未完成生命周期操作的情况下终止

ec2 instance terminated without completing lifecycle action

我正在使用 autoscaling:EC2_INSTANCE_LAUNCHING 和 autoscaling:EC2_INSTANCE_TERMINATING 生命周期挂钩在自动缩放组中启动一堆 ec2 实例。当我使用 aws 管理控制台启动实例终止时,实例在没有等待我完成生命周期操作的情况下被终止 https://docs.aws.amazon.com/cli/latest/reference/autoscaling/complete-lifecycle-action.html

自动缩放组 UI 中的实例状态显示为 Terminating:Wait 。 EC2 Instances UI 中的实例状态显示为 Terminated 。这使我无法在完成生命周期操作并实际终止实例之前采取纠正措施。

当我减少自动缩放组中所需的实例大小时,这似乎不适用于这种情况。当我减少所需的实例大小时,它似乎经历了适当的生命周期阶段,这反过来又导致实例终止。

这就是 aws asg 生命周期挂钩的工作方式吗?它们对于在更改 asg 所需实例大小之外触发的任何 asg 实例终止几乎没有用。

是的,生命周期挂钩将在 Auto Scaling 执行 scale-in/scale-out 操作时被调用

直接终止实例绕过 Auto Scaling,因此它没有机会激活终止挂钩。它所看到的只是一个实例不再健康。

如果您希望终止 Auto Scaling 组中的特定实例,请使用 terminate-instance-in-auto-scaling-group。这告诉 Auto Scaling 终止实例并使用挂钩。