我有一个使用EC2实现习俗健康的自动缩放组。有时,健康检查失败,实例被终止和替换。
健康检查本身作为运行在实例上的shell脚本实现。如果发现问题,它将通过AWS API通知自动缩放组:
aws autoscaling set-instance-health --instance-id $instance --health-status Unhealthy问题只是除了通知之外,我没有关于哪些检查失败的信息:
原因:在2017-06-13T09:11:47Z,一个实例因用户健康检查而退出服务。
调试这类问题的推荐方法是什么。是否有办法使AWS只停止实例而不是终止它们,这样就可以检查它们的磁盘状态了吗?
(首先,我想到了“启用终止保护”,但据我理解,在这里,这不会有什么区别。当失败的自定义健康检查请求关闭时,自动标度组仍将终止这些实例。)
发布于 2017-06-13 13:29:07
使用set-instance-health命令告诉自动缩放实例是不健康的,需要替换。然后自动缩放将终止不健康的实例并启动一个新实例来替换它。
如果希望对不健康的实例执行法医分析,请使用命令将其从自动缩放组中删除
从指定的自动缩放组中移除一个或多个实例。在实例被分离之后,您可以独立于自动缩放组来管理它们。 如果没有指定减少所需容量的选项,自动缩放将启动实例以替换,替换已分离的实例。 如果有一个经典负载均衡器附加到自动缩放组,则实例将从负载平衡器中取消注册。如果有附加到自动缩放组的目标组,则实例将从目标组中取消注册。
因此,不要调用set-instance-health,而是调用detach-instances (并可选择地替换它)。然后可以调试实例。如果您希望将其发回服务,请使用aws autoscaling attach-instances。
https://stackoverflow.com/questions/44518005
复制相似问题