我们在 AWS 上的一个小型自动扩展组(通常为 2-4 个实例)中运行一些 Web 服务器。其健康检查基于 ELB 健康检查,因此如果其中一个 Web 服务器停止响应,它将被新实例替换。
目前运行良好。如果发生中断,则无响应的服务器将被终止,并启动新的服务器来代替它们。
问题是我们目前不知道服务器宕机的原因。我们从一些日志中得出了一些怀疑,但我们无法再登录服务器,查看网络日志、系统日志或其他任何东西。
我知道有一种方法可以手动从自动扩展组中分离实例,但是有没有办法在发生故障时自动执行此操作?
我希望的是,当服务器发生故障时,它仍会继续运行,但会从自动扩展组中删除,这样我们就可以对其进行分析,看看出了什么问题。一个明显的优势是限制这种情况发生的频率,这样如果出于某种原因它继续循环服务器,我们就不会最终得到数百个分离的实例。
那么这可以以某种方式实现吗?如果可以,怎么做?
答案1
有一些方法可以做到这一点。
您可以在 ASG -> 详细信息 -> 编辑 -> 暂停进程 -> “终止”中暂停“终止”操作。不会终止任何机器。
您还可以从 ASG -> 实例 -> 操作 -> 实例保护来保护特定实例。
然后,还有一些创造性的方法,比如当事件发生时将实例从 ASG 中踢出。