Spot 平衡程序 - Amazon GameLift

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

Spot 平衡程序

Amazon GameLift FleetIQ 會定期平衡具有 Spot 執行個體的 Auto Scaling 群組中的執行個體。此程序不適用於使用 ON_DEMAND_ONLY 平衡策略的遊戲伺服器群組,或沒有任何作用中執行個體。

Spot 平衡有兩個主要目標:

  • 若要持續重新整理群組,請僅使用適用於遊戲託管的 Spot 執行個體類型。

  • 使用多種可行的執行個體類型 (如果可能),以減少意外遊戲伺服器中斷的影響。

Amazon GameLift FleetIQ 透過評估群組的執行個體類型並移除更可能導致遊戲伺服器中斷的執行個體來平衡。為了避免在平衡期間終止具有作用中遊戲的執行個體,最佳實務是為生產中的遊戲伺服器群組開啟遊戲伺服器保護。

下列範例說明 Auto Scaling 群組中的執行個體如何受到 Spot 平衡的影響。

Amazon GameLift FleetIQ 平衡期間 Auto Scaling 群組的生命週期。
  • 步驟 1. 透過遊戲伺服器群組,連結的 Auto Scaling 群組會設定為在啟用遊戲伺服器保護的情況下啟動 m4.large、c4.large 和 c5.large 類型的執行個體。Auto Scaling 群組已啟動平衡集合,其中包含每種類型的兩個 Spot 執行個體。四個執行個體至少有一個處於 UTILIZED 狀態的遊戲伺服器 (顯示為虛線邊界),而兩個執行個體目前不支援遊戲。

  • 步驟 2. Amazon GameLift FleetIQ 會評估所有三種執行個體類型的目前遊戲託管可行性。評估判斷 c4.large 執行個體類型具有遊戲伺服器中斷的不可接受的可能性。Amazon GameLift FleetIQ 會立即更新 Auto Scaling 群組組態,暫時從執行個體類型清單中移除 c4.large,以防止啟動其他 c4.large 執行個體。

  • 步驟 3. Amazon GameLift FleetIQ 識別 c4.large 類型的現有執行個體,並採取動作從群組中移除這些執行個體。第一個步驟,在 c4.large 執行個體上執行的所有遊戲伺服器都會標示為「耗盡」。只有在沒有其他遊戲伺服器可用的情況下,才能佔用耗盡狀態之執行個體上的遊戲伺服器。此外,還會觸發具有耗盡狀態之執行個體的 Auto Scaling 群組,以啟動新執行個體來取代它們。

  • 步驟 4. 當新的可用執行個體上線時,Auto Scaling 群組會終止耗盡狀態的執行個體。此替換可確保維持群組所需的容量。要終止的第一個執行個體是 c4.large 執行個體,其中沒有使用過的遊戲伺服器,而且遊戲伺服器防護已關閉。其已取代為新的 c5.large 執行個體。

  • 步驟 5. 具有遊戲伺服器防護功能的耗盡執行個體會繼續執行,同時,其遊戲伺服器也會支援遊戲。遊戲結束時,一旦啟動新的 m4.large 執行個體來取代它,即會終止其餘的 c4.large 執行個體。

由於此程序,Auto Scaling 群組會維持所需的容量,而群組則會平衡使用三種執行個體類型至兩種。Amazon GameLift FleetIQ 會繼續評估遊戲託管可行性的執行個體類型原始清單。當再次將 c4.large 視為可行的執行個體類型時,Auto Scaling 群組會更新為包含所有三種執行個體類型。群組會隨著時間自然平衡。