AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Amazon EC2 Auto Scaling 為何終止執行個體?
我想了解 Amazon EC2 Auto Scaling 群組為何終止我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
簡要說明
Amazon EC2 Auto Scaling 會監控執行個體的運作狀態,並使用 Amazon EC2 運作狀態檢查、Elastic Load Balancing (ELB) 運作狀態檢查和磁碟區檢查。如果執行個體未通過檢查,Amazon EC2 Auto Scaling 會終止並替換該執行個體。
請在 AWS 管理主控台的 Amazon EC2 儀表板中,檢視 Amazon EC2 Auto Scaling 終止執行個體的原因。接著,針對找到的問題進行疑難排解。
解決方法
確認執行個體未通過運作狀態檢查的原因,然後根據原因進行疑難排解。
疑難排解 Amazon EC2 Auto Scaling 終止或停止執行個體的問題
Amazon EC2 Auto Scaling 會終止已停止或重新啟動的執行個體。以下訊息表示 Amazon EC2 Auto Scaling 已停止、重新啟動或終止執行個體:
「An instance was taken out of service in response to an EC2 health check indicating it has been terminated or stopped」
如需疑難排解此問題的操作說明,請參閱執行個體因 EC2 運作狀態檢查指出其已終止或停止而停止服務。
疑難排解未通過 Amazon EC2 運作狀態檢查的執行個體
以下訊息表示執行個體未通過 Amazon EC2 狀態檢查:
「An instance was taken out of service in response to an EC2 instance status checks failure」
如需疑難排解此問題的操作說明,請參閱 Amazon EC2 執行個體狀態檢查失敗導致執行個體停止服務。
疑難排解未通過 ELB 運作狀態檢查的執行個體
如果您已為群組開啟 ELB 運作狀態檢查,Amazon EC2 Auto Scaling 會同時執行 ELB 和 Amazon EC2 運作狀態檢查。Amazon EC2 Auto Scaling 會終止未通過任一運作狀態檢查的執行個體。
如果群組連接多個目標群組或負載平衡器,所有目標群組和負載平衡器都必須通過運作狀態檢查。如果群組中的任何目標群組或負載平衡器未通過運作狀態檢查,Amazon EC2 Auto Scaling 便會終止執行個體。
以下訊息表示執行個體未通過 ELB 運作狀態檢查:
「An instance was taken out of service in response to a ELB system health check failure」
如需疑難排解此問題的操作說明,請參閱 Elastic Load Balancing 系統運作狀態檢查失敗導致執行個體停止服務。
疑難排解已終止的 EC2 Spot 執行個體
當容量不足,或 Spot 價格超過您為執行個體指定的最高價格時,Amazon EC2 Auto Scaling 會終止 EC2 Spot 執行個體。
類似以下範例的訊息表示 Amazon EC2 Auto Scaling 已終止執行個體:
「An instance was taken out of service in response to an EC2 Spot Instance interruption notice.」
若要防止此問題再次發生,請採取以下任一操作來增加執行個體容量:
- 將配置策略修改為「容量最佳化」。
- 提高您為執行個體指定的最高價格。
- 如果工作負載不能中斷,請考慮改用隨需執行個體。如果改用隨需執行個體,請修改群組組態以啟動隨需執行個體。
- 使用 Amazon EC2 Spot 執行個體頁面底部的建議工具,找出 Spot 中斷率較低的執行個體類型。接著,修改群組以使用這些執行個體類型。
注意: 如果將啟動範本設定為使用 Spot 執行個體後,仍必須啟動 Spot 執行個體,請建立新的啟動範本版本。接著,更新群組以使用新的啟動範本。
如果必須透過混合執行個體群組啟動 Spot 執行個體,請更新混合執行個體群組以使用新的執行個體類型。
疑難排解使用者終止執行個體的問題
類似以下範例的訊息表示使用者或服務透過 TerminateInstanceInAutoScalingGroup API 操作終止您的執行個體:
「An instance was taken out of service in response to a user request」
若要防止此問題再次發生,請完成以下步驟:
- 開啟 AWS CloudTrail console (AWS CloudTrail 主控台)。
- 在導覽窗格中,選擇 Event history (事件歷史記錄)。
- 在歷史記錄中檢查 TerminateInstanceInAutoScalingGroup API 呼叫。
- 檢閱發出呼叫之使用者或服務的 API 操作,然後調查該使用者或服務終止執行個體的原因。
疑難排解「A user request update of AutoScalingGroup constraints」錯誤訊息
如果您手動更新群組限制,Auto Scaling 可能會終止群組中的執行個體,使其符合更新後的設定。
類似以下範例的訊息表示 Amazon EC2 Auto Scaling 因您更新群組限制而終止執行個體:
「A user request update of AutoScalingGroup constraints to min: 0, max: 2, desired: 1 changing the desired capacity from 2 to 1」
若要防止此問題再次發生,請完成以下步驟:
- 開啟 CloudTrail console (CloudTrail 主控台)。
- 在導覽窗格中,選擇 Event history (事件歷史記錄)。
- 在歷史記錄中檢查 UpdateAutoScalingGroup 和 SetDesiredCapacity API 呼叫,然後調查使用者發出更新群組限制呼叫的原因。
疑難排解 Amazon EC2 Auto Scaling 為了平衡其他可用區域而終止執行個體的問題
Amazon EC2 Auto Scaling 預設會在所有可用區域之間平衡執行個體。將新的可用區域新增至群組時,Amazon EC2 Auto Scaling 會在該區域中啟動新的執行個體。Amazon EC2 Auto Scaling 重新平衡執行個體時,可能會終止其他可用區域中的執行個體。當 Amazon EC2 Auto Scaling 無法在您指定的可用區域中啟動執行個體時,也會重新平衡各可用區域之間的執行個體。
類似以下範例的訊息表示 Amazon EC2 Auto Scaling 為了重新平衡各可用區域之間的執行個體而終止您的執行個體:
「Instances were launched to balance instances in zones us-east-1a with other zones」
若要防止此錯誤再次發生,請針對 Amazon EC2 Auto Scaling 終止執行個體的群組,暫停可用區域重新平衡程序。
重要事項: 最佳實務是不要暫停 AZ 重新平衡程序。如果暫停此程序,其中一個可用區域的容量可能會高於其他可用區域。如此一來,該可用區域的可用性便會降低。
如果您必須暫停此程序,請完成以下步驟:
- 開啟 AWS Management Console (AWS 管理主控台)。
- 在導覽窗格中,選擇 Auto Scaling Groups (Auto Scaling 群組)。
- 選取 Amazon EC2 Auto Scaling 終止執行個體之群組旁的核取方塊。選取後,頁面底部會開啟分割窗格。
- 在 Details (詳細資訊) 索引標籤上,選擇 Advanced configurations (進階組態),然後選擇 Edit (編輯)。
- 在 Suspended processes (暫停的程序),選取 AZ Rebalance (AZ 重新平衡)。
- 選擇 Update (更新)。
疑難排解更新購買選項時 Amazon EC2 Auto Scaling 終止執行個體的問題
當您要求更新購買選項分佈時,Amazon EC2 Auto Scaling 會重新平衡群組。
類似以下範例的訊息表示 Amazon EC2 Auto Scaling 為了符合更新後的購買選項,而終止隨需執行個體或 Spot 執行個體:
「An instance was taken out of service to balance the distribution of On-Demand and Spot capacities.」
重要事項: 最佳實務是檢閱新購買選項分佈的組態並加以修改,以免此問題再次發生。
疑難排解觸發政策縮減事件的監控警示
類似以下範例的訊息表示,Amazon EC2 Auto Scaling 因您設定的 Amazon CloudWatch 警示而終止執行個體:
「A monitor alarm triggered a policy scaledown changing the desired capacity」
若要避免此錯誤再次發生,請修改自動擴展政策、啟用該政策的 CloudWatch 警示,或同時修改兩者。
若要修改變更群組容量的群組政策,請完成以下步驟
- 開啟 AWS Management Console (AWS 管理主控台)。
- 在導覽窗格中,選擇 Auto Scaling Groups (Auto Scaling 群組)。
- 選取群組旁的核取方塊
- 選擇 Automatic Scaling (自動擴展) 索引標籤,以檢視及編輯政策。
- 修改 CloudWatch 警示所啟用的政策。
若要修改 CloudWatch 警示,請完成以下步驟:
- 開啟 CloudWatch console (CloudWatch 主控台)。
- 在導覽窗格中,選擇 Alarms (警示)。
- 選擇警示,然後選擇 History (歷史記錄) 索引標籤。
- 檢查歷史記錄中是否出現警示狀態變更或警示組態修改。
- 如果警示狀態有所變更,請檢查狀態變更當時的指標歷史記錄。確認該時段內的指標值是否變為高於或低於您指定的閾值。如果指標有所變更,請調查造成指標值變化的原因。
疑難排解未通過自訂檢查的執行個體。
執行個體未通過自訂運作狀態檢查時,Amazon EC2 Auto Scaling 會呼叫 SetInstanceHealth API 操作,然後將執行個體狀態設為運作狀態不佳。Amazon EC2 Auto Scaling 會在下次執行時終止運作狀態不佳的執行個體。
類似以下範例的訊息表示 Amazon EC2 Auto Scaling 因執行個體未通過自訂運作狀態檢查而終止該執行個體:
「An instance was taken out of service in response to a user health-check」
若要找出建立自訂運作狀態檢查並導致執行個體終止的使用者,請檢閱事件歷史記錄中的 SetInstanceHealth API 呼叫。找出在執行個體未通過運作狀態檢查前執行 SetInstanceHealth API 操作的使用者。
疑難排解變更群組限制的排程動作更新
如果排程動作降低群組容量,Amazon EC2 Auto Scaling 會終止一或多個執行個體,使其符合更新後的容量。
類似以下範例的訊息表示排程動作降低了群組限制:
「A scheduled action update of AutoScalingGroup constraints changed the desired capacity」
若要防止此問題再次發生,請暫停導致群組限制降低的排程動作程序。暫停後,請檢查排程動作中是否有會重複終止執行個體的動作,然後刪除這些動作或為其指定新的排程。修改排程動作後,請務必重新啟用排程動作程序。
相關資訊
- 語言
- 中文 (繁體)

This article was reviewed and updated on 2026-03-16.
相關內容
已提問 3 年前
已提問 3 年前
已提問 3 年前
已提問 2 年前