本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon GameLift FleetIQ 邏輯
下圖說明 Amazon GameLift FleetIQ 與 Amazon 合作EC2進行遊戲託管時的角色。其主要目標是找到可能的「最佳」遊戲伺服器來託管遊戲工作階段,並為玩家提供最佳的遊戲體驗。Amazon GameLift FleetIQ 將最佳資源定義為能以最低成本提供最高遊戲託管可行性的資源。Amazon GameLift FleetIQ 會以兩種關鍵方式達成此目標:首先是僅允許 Auto Scaling 群組中的可行執行個體類型,而第二是有效地將新的遊戲工作階段放置在群組的可用資源中。
將最佳執行個體類型填入 Auto Scaling 群組中
Auto Scaling 群組的任務是啟動新執行個體並淘汰舊執行個體、維護託管資源的集合,並擴展以符合您的玩家需求。若要執行此操作,Auto Scaling 群組依賴於所需執行個體類型的清單。Amazon GameLift FleetIQ 的任務是持續檢查這些所需執行個體類型的可行性,並更新 Auto Scaling 群組的清單。此程序稱為執行個體平衡。它可確保持續重新整理 Auto Scaling 群組中的執行個體,以便始終僅使用目前可行的執行個體類型。
Amazon GameLift FleetIQ 會以下列方式影響 Auto Scaling 群組選取最佳執行個體類型的方式:
-
它決定 Spot 和/或隨需執行個體的使用。Amazon GameLift FleetIQ 遊戲伺服器群組設定了平衡策略,這會影響 Auto Scaling 群組如何使用 Spot 和/或隨需執行個體。由於可用性和潛在的中斷,Amazon FleetIQ 將遊戲伺服器託管的限制降至最低,因此 Spot 執行個體的成本較低。 GameLift FleetIQ 隨需執行個體更昂貴,但在需要時提供更可靠的可用性。
-
它限制新執行個體僅在可行執行個體類型上啟動。Amazon GameLift FleetIQ 遊戲伺服器群組會維護您所需執行個體類型的主清單,執行個體平衡程序會使用查看執行個體類型最近可用性和中斷率的預測演算法,持續評估清單中每個所需執行個體類型的遊戲託管可行性。由於此評估結果,Amazon GameLift FleetIQ 會持續更新 Auto Scaling 群組的所需執行個體類型清單,以僅包含目前可行的執行個體類型。
-
它會標記非可行執行個體類型的現有執行個體。Amazon GameLift FleetIQ 會識別 Auto Scaling 群組中目前為不可存活執行個體類型的現有執行個體。這些執行個體會標記為耗竭 ,這表示它們會終止,並以新的執行個體取代。對於已開啟遊戲伺服器保護的執行個體,終止會延遲到任何作用中的遊戲工作階段正常結束為止。
當 Auto Scaling 群組啟動和淘汰執行個體時,它會維護一個集合,即使低成本 Spot 執行個體類型的可用性波動,也會針對遊戲託管進行最佳化。平衡活動只會在具有作用中執行個體的遊戲伺服器群組上進行。進一步了解此程序在 Spot 平衡程序 中的運作方式。
有效進入遊戲工作階段
Amazon GameLift FleetIQ 會追蹤遊戲伺服器群組中的所有作用中遊戲伺服器,並使用此資訊來判斷新遊戲工作階段和玩家的最佳位置。
若要讓 Amazon GameLift FleetIQ 能夠追蹤遊戲伺服器,您的遊戲伺服器軟體必須報告其狀態。您的自訂會AMI控制每個執行個體上新遊戲伺服器程序的啟動和停止方式。啟動新的遊戲伺服器時,它會向 Amazon GameLift FleetIQ 註冊,表示已準備好託管遊戲工作階段。註冊後,遊戲伺服器會定期回報其運作狀態,以及目前是否託管遊戲工作階段。當遊戲伺服器關閉時,它會取消註冊 Amazon GameLift FleetIQ 。
若要開始新的遊戲工作階段,您的遊戲用戶端 (或相符者或其他用戶端服務) 會將遊戲伺服器的請求傳送至 Amazon GameLift FleetIQ Amazon GameLift FleetIQ 會尋找可用的遊戲伺服器、宣告新遊戲工作階段,並使用遊戲伺服器 ID 和連線資訊回應。您的遊戲接著會提示遊戲伺服器更新其狀態,並為進入遊戲的玩家啟動新的遊戲工作階段。
在選取遊戲伺服器以託管新的遊戲工作階段時,Amazon GameLift FleetIQ 會使用下列決策程序,透過可行的低成本 Spot 執行個體來最佳化置放:
-
在可能的情況下,Amazon GameLift FleetIQ 會將新的遊戲工作階段放置在已託管其他遊戲工作階段的執行個體上。透過封裝 (但不超載) 某些執行個體並保持其他執行個體閒置,Auto Scaling 群組可以在不需要閒置執行個體時快速縮減,進而降低託管成本。
-
Amazon GameLift FleetIQ 會忽略標記為耗盡 的執行個體,也就是說,遊戲託管無法運作。這些執行個體只會繼續執行,以支援現有的遊戲工作階段。除非沒有其他遊戲伺服器可用,否則它們無法用於新的遊戲工作階段。
-
Amazon GameLift FleetIQ 會識別在可行執行個體上執行的所有可用遊戲伺服器。
您可以為遊戲伺服器群組開啟遊戲工作階段保護,以防止 Auto Scaling 群組透過主動執行遊戲工作階段終止執行個體。