疑難排解 Amazon EC2 Auto Scaling 中運作狀態不良的執 - Amazon EC2 Auto Scaling

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

疑難排解 Amazon EC2 Auto Scaling 中運作狀態不良的執

以下是 Amazon EC2 Auto Scaling 傳回的錯誤訊息、可能的原因,以及解決問題時可採取的步驟。

若要擷取錯誤訊息,請參閱 檢視運作狀態檢查失敗的原因

執行個體因 EC2 執行個體狀態檢查失敗而停止運作

問題:Auto Scaling 執行個體未通過 Amazon EC2 狀態檢查。

原因 1:如果發生問題導致 Amazon EC2 認為自動擴展群組中的執行個體受損,Amazon EC2 Auto Scaling 會自動取代執行個體,做為執行狀態檢查的一部分。

解決方案 1:執行個體狀態檢查失敗時,您通常必須透過變更執行個體組態來自行解決問題,直到應用程式不再出現任何問題為止。若要解決此問題,請遵循這些步驟:

  1. 手動建立不屬於 Auto Scaling 群組的 Amazon EC2 執行個體,並調查問題。如需調查受損執行個體的一般協助,請參閱 Amazon EC2 使用者指南中的對執行個體失敗狀態檢查進行疑難排解和 Amazon EC2 使用者指南中的 Windows 執行個體疑難排解。

  2. 確認您的執行個體已成功啟動且運作正常後,請將新的無錯誤執行個體組態部署到 Auto Scaling 群組。

  3. 刪除已建立的執行個體,以免持續為您的 AWS 帳戶支付費用。

執行個體因指出了執行個體已終止或停止的 EC2 運作狀態檢查而停止運作

問題:已停止、重新啟動或終止的 Auto Scaling 執行個體被替換。

原因 1:使用者手動停止、重新啟動或終止執行個體。

解決方案 1:如果您需要停止或重新啟動 Auto Scaling 群組中的執行個體,建議您先將執行個體置於待命狀態。如需詳細資訊,請參閱 從 Auto Scaling 群組暫時移除執行個體

原因 2:Amazon EC2 Auto Scaling 嘗試在 Amazon EC2 Spot 服務中斷執行個體後替換 Spot 執行個體,因為 Spot 價格增長超過您的最高價格或容量已不可使用。

解決方案 2:無法保證 Spot 執行個體在任何指定時間點都能滿足請求。不過,您可以嘗試下列方法:

  • 使用較高的 Spot 最高價格 (可能是隨需價格)。將最高價格設得更高,可讓 Amazon EC2 Spot 服務更好地啟動和維護所需容量。

  • 在多個可用區域中執行多個執行個體類型,增加可從中啟動執行個體的不同容量集區的數量。如需詳細資訊,請參閱 具有多種執行個體類型和購買選項的 Auto Scaling 群組

  • 如果使用多個執行個體類型,請考慮啟用容量重新平衡功能。如果希望 Amazon EC2 Spot 服務在執行中的執行個體終止前嘗試啟動新的 Spot 執行個體,則可用到此功能。如需詳細資訊,請參閱 使用容量重新平衡來處理 Amazon EC2 Spot 中斷

原因 3:使用容量區塊,Amazon EC2 會在容量區塊結束時間前 30 分鐘終止任何仍在執行的執行個體。此突然終止會導致 Auto Scaling 群組嘗試啟動新執行個體以維持其所需的容量,即使容量區塊即將結束也一樣。

決方案 3:若要解決此問題,請嘗試下列動作:

  • 減少 Auto Scaling 群組的所需容量,以防止其嘗試啟動新執行個體。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 手動擴展

  • 請確定您在容量區塊結束時間前 30 分鐘在 Auto Scaling 群組中進行擴展,以免經常遇到此錯誤。請確定任何生命週期掛接在容量區塊結束時間前 30 分鐘完成。如需詳細資訊,請參閱 用Capacity Blocks於機器學習工作負載

執行個體因 ELB 系統運作狀態檢查失敗而停止運作

問題:Auto Scaling 執行個體可能未通過 EC2 狀態檢查。但是,對於已註冊 Auto Scaling 群組的目標群組或 Classic Load Balancer,它們可能無法通過 Elastic Load Balancing 運作狀態檢查。

原因 1:如果您的 Auto Scaling 群組依賴 Elastic Load Balancing 提供的運作狀態檢查,Amazon EC2 Auto Scaling 會透過同時檢查 EC2 狀態檢查和 Elastic Load Balancing 運作狀態檢查的結果來判斷執行個體的運作狀態。為了執行運作狀態檢查,負載平衡器會傳送請求至每個執行個體並等待正確的回應,或建立與執行個體的連線。執行個體可能無法通過 Elastic Load Balancing 運作狀態檢查,因為在執行個體上執行的應用程式問題造成負載平衡器認定執行個體已停止服務。

解決方案 1:若要通過 Elastic Load Balancing 運作狀態檢查:

  • 確認目標群組的運作狀態檢查設定已正確設定。您可以依據目標群組,指定負載平衡器的運作狀態檢查設定。如需詳細資訊,請參閱 設定目標的健全狀況檢查

  • 記下負載平衡器預期的成功代碼,並且確認您的應用程式已設定為在成功時傳回這些代碼。

  • 確認負載平衡器和 Auto Scaling 群組的安全群組已正確設定。

  • 確認負載平衡器設定在與 Auto Scaling 群組相同的可用區域中。

解決方案 2:更新 Auto Scaling 群組以停用 Elastic Load Balancing 運作狀態檢查。如需如何停用這些健康狀態檢查的指示,請參閱將 Elastic Load Balancing 負載平衡器連接至您的 Auto Scaling 群組

原因 2:運作狀態檢查寬限期與執行個體啟動時間不相符。

解決方案 3:編輯「Auto Scaling」群組的健康狀態檢查寬限期。將寬限期設定為足夠長的時間範圍,以支援在「Elastic Load Balancing」將新啟動的執行個體視為健康狀況良好之前所需的連續成功運作狀態檢查次數。如需詳細資訊,請參閱 設定 Auto Scaling 群組的運作狀態檢查寬限期。

其他資源

如果您遇到其他問題,請參閱下列 AWS re:Post 文章以取得其他疑難排解說明: