我們在 AWS 上以小型自動伸縮群組(通常為 2-4 個執行個體)執行一些 Web 伺服器。其運行狀況檢查基於 ELB 運行狀況檢查,因此如果其中一台 Web 伺服器停止回應,它將被新實例取代。
目前,這項措施運作良好。如果發生中斷,無回應的伺服器將被終止,並啟動新的伺服器來取代它們。
問題是我們目前不知道為什麼伺服器會宕機。我們從一些日誌中得到了一些懷疑,但我們無法再登入伺服器、查看網路日誌、系統日誌或其他任何內容。
我知道有一種方法可以手動從自動擴展組中分離實例,但是有沒有辦法在發生故障時自動執行此操作?
這就是我希望發生的情況,當伺服器發生故障時,它會保持運行狀態,但從自動縮放群組中刪除,以便我們可以分析它以查看出了什麼問題。一個明顯的好處是限制這種情況發生的頻率,這樣如果由於某種原因它不斷循環伺服器,我們就不會出現數百個分離的實例。
那麼這可以透過某種方式完成嗎?
答案1
有一些方法可以做到這一點。
您可以在 ASG -> 詳細資料 -> 編輯 -> 暫停進程 -> “終止”中暫停“終止”操作。沒有機器會被終止。
您也可以透過 ASG -> 實例 -> 操作 -> 實例保護來保護特定實例。
然後,還有一些開箱即用的方法,例如當事件發生時從 ASG 中踢出實例。