為什麼 Amazon EC2 終止了我的 Spot 執行個體?

上次更新日期:2021 年 9 月 17 日

我啟動了一個 Spot 執行個體,但是現在卻無法在 Amazon Elastic Compute Cloud (Amazon EC2) 主控台中找到它。為什麼 Amazon EC2 終止了我的 Spot 執行個體?

解決方案

Amazon EC2 可以隨時在發出兩分鐘通知之後中斷 Spot 執行個體,原因如下:

  • Spot 容量不足:Amazon EC2 可能會在需要其容量時中斷您的 Spot 執行個體。大多數情況下,Amazon EC2 會回收您的執行個體,以重新使用容量。針對主機維護或硬體除役等問題,Amazon EC2 也可能終止您的 Spot 執行個體。
  • Amazon EC2 無法滿足您的 Spot 執行個體請求限制:如果您的 Spot 請求包含限制,例如啟動群組或特定可用區域群組,則當無法再滿足限制時,Spot 執行個體會以群組形式終止。
  • Spot 價格高於您設定的最高價:當您請求 Spot 執行個體時,您可以選擇指定執行個體的最高價。根據預設,此最高價等於該執行個體類型的隨需定價。當 Spot 價格提高至超出您設定的最高價時,您的 Spot 執行個體就會中斷。如果您將中斷行為設定為「停止」或「休眠」,則當 Spot 價格降至低於您的最高價時,您的 Spot 執行個體會再次啟動。設定高的最高價並不代表有 Spot 執行個體可用。如需詳細資訊,請參閱 Spot 執行個體如何運作

由於有這些中斷情形,因此最佳實務是將 Spot 執行個體用於無狀態、容錯且彈性足以承受中斷的工作負載。

注意:當 Amazon EC2 中斷 Spot 執行個體時,Spot 執行個體預設會終止。您可以將此預設行為更改為休眠,或是將執行個體停止而非終止。如需詳細資訊,請參閱中斷行為

若要判斷 Amazon EC2 中斷 Spot 執行個體的原因,請執行下列動作:

  1. 開啟 Amazon EC2 主控台,然後選取 Spot Requests (Spot 請求)。
  2. 選取已終止 Spot 執行個體的請求 ID
  3. 檢視 Description (描述) 區段下的 Status (狀態) 欄位,以查看執行個體終止的原因代碼。例如,如果 Amazon EC2 沒有足夠的 Spot 容量,Status (狀態) 欄位會顯示 "instance-terminated-no-capacity"。如需原因代碼的完整清單,請參閱 Spot 請求狀態代碼

您可以使用 Spot 執行個體中斷通知來權衡解決潛在的中斷。如需詳細資訊,請參閱利用 Amazon EC2 Spot 執行個體中斷通知