教學課程:使用 Spot 執行個體建立 Amazon GameLift 佇列 - Amazon GameLift

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

教學課程:使用 Spot 執行個體建立 Amazon GameLift 佇列

簡介

本教學說明如何為部署在低成本 Spot 機群上的遊戲設定遊戲工作階段置放。Spot 機群需要額外步驟,以維持玩家的持續遊戲伺服器可用性。

目標對象

本教學課程適用於想要使用 Spot 機群託管自訂遊戲伺服器或即時伺服器的遊戲開發人員。

您將學到的內容
  • 定義遊戲工作階段佇列服務的玩家群組。

  • 建置機群基礎設施以支援遊戲工作階段佇列的範圍。

  • 為每個機群指派別名,以抽象機群 ID。

  • 建立佇列、新增機群,並排定 Amazon GameLift 放置遊戲工作階段的優先順序。

  • 新增播放器延遲政策,以協助將延遲問題降至最低。

必要條件

在建立遊戲工作階段置放的機群和佇列之前,請完成下列任務:

步驟 1:定義佇列的範圍

在本教學課程中,我們會為具有一個遊戲伺服器建置變異的遊戲設計佇列。推出時,我們會在兩個位置推出遊戲:亞太區域 (首爾) 和亞太區域 (新加坡)。由於這些位置彼此靠近,延遲對我們的玩家來說不是問題。

在此範例中,有一個播放器區段,這表示我們建立一個佇列。未來,當我們在北美發行遊戲時,我們可以建立第二個佇列,該佇列適用於北美玩家。

如需詳細資訊,請參閱定義佇列的範圍

步驟 2:建立 Spot 機群基礎設施

在位置 和 中建立機群,並使用遊戲伺服器建置或符合您在 中定義範圍的指令碼步驟 1:定義佇列的範圍

在本教學課程中,我們會建立一個兩個位置基礎設施,在每個位置至少有一個 Spot 機群和一個隨需機群。每個機群都會部署相同的遊戲伺服器建置。此外,我們預期在首爾位置的玩家流量會更重,因此我們在那裡新增了更多 Spot 機群。

下圖顯示 Spot 機群基礎設施範例,其中 3 個機群位於 ap-northeast-2 (首爾) 位置,而 2 個機群位於 ap-southeast-1 (新加坡) 位置。兩個機群中的所有執行個體都使用 build MBG_prod_V1。ap-northeast-2 中的機群包含下列機群組態:執行個體類型為 c5.large 的機群 1234_spot_1、執行個體類型為 c5.xlarge 的機群 1234_spot_2,以及執行個體類型為 c5.large 的機群 1234_ondemand。ap-southeast-1 中的機群包含下列機群組態:具有 c5.large 執行個體類型的機群 1234_spot_1,以及具有 c5.large 執行個體類型的機群 1234_ondemand。

Spot 機群基礎設施,其位置位於亞太區域 (首爾) 和亞太區域 (新加坡),混合隨需執行個體和 Spot 執行個體。

步驟 3:為每個機群指派別名

為基礎設施中的每個機群建立新的別名。別名抽象機群身分,讓機群定期更換更有效率。如需建立別名的詳細資訊,請參閱 建立 Amazon GameLift 別名

我們的機群基礎設施有五個機群,因此我們使用路由策略建立五個別名。我們需要在亞太區域 (首爾) 位置使用三個別名,在亞太區域 (新加坡) 位置使用兩個別名。

下圖顯示步驟 2 中所述的 Spot 機群基礎設施,並將別名新增至每個機群。Fleet 1234_spot_1 具有別名 MBG_spot_1,Fleet 1234_spot_2 具有別名 MBG_spot_2,而 fleet 1234_ondemand 具有別名 MBG_ondemand。

步驟 2 中描述的範例 Spot 機群基礎設施,別名指向每個機群。

如需詳細資訊,請參閱建置多位置佇列

步驟 4:建立具有目的地的佇列

建立遊戲工作階段佇列並新增機群目的地。如需建立佇列的詳細資訊,請參閱 建立遊戲工作階段佇列

建立佇列時:

  • 將預設逾時設定為 10 分鐘。稍後,您可以測試佇列逾時如何影響玩家進入遊戲的等待時間。

  • 暫時略過播放器延遲政策的區段。我們將在下一個步驟中說明這一點。

  • 排定佇列中的機群優先順序。使用 Spot 機群時,我們建議採用下列其中一種方法:

    • 如果您的基礎設施在第二個位置使用機群的主要位置進行備份,請先依位置排定機群的優先順序,然後依機群類型排列。

    • 如果您的基礎設施平均使用多個位置,請根據機群類型排定機群的優先順序,將 Spot 機群置於佇列頂端。

在此教學課程中,我們會使用名稱 建立新的佇列MBG_spot_queue,並新增所有五個機群的別名。然後,我們會先按位置排定置放的優先順序,再按機群類型排定置放的優先順序。

根據此組態,此佇列一律會嘗試將新的遊戲工作階段放入首爾的 Spot 機群。當這些機群已滿時,佇列會使用首爾隨需機群上的可用容量作為備份。如果全部三個首爾機群都無法使用,Amazon 會將遊戲工作階段 GameLift 放置在新加坡機群。

下圖顯示逾時為 300 秒並排定目的地優先順序的佇列。目的地的順序如下:ap-northeast-2 中的 1234_spot_1、ap-northeast-2 中的 1234_spot_2、ap-northeast-2 中的 1234_ondemand、ap-southeast-1 中的 1234_spot_1,以及 ap-southeast-1 中的 1234_ondemand。

具有多個 Spot 機群和備份隨需機群的 Spot 佇列範例。

步驟 5:將延遲限制新增至佇列

我們的遊戲在遊戲工作階段置放請求中包含延遲資訊。我們也具有玩家派對功能,可為一組玩家建立遊戲工作階段。我們可以讓玩家等待更長的時間,才能進入具有理想遊戲體驗的遊戲。我們的遊戲測試顯示下列觀察:

  • 50 毫秒以下的延遲是理想的。

  • 遊戲在延遲超過 250 毫秒時無法播放。

  • 大約一分鐘後,玩家變得不耐煩。

對於我們的佇列,在 300 秒逾時的情況下,我們會新增政策陳述式來限制允許的延遲。政策陳述式會逐漸允許高達 250 毫秒延遲的較大延遲值。

透過此政策,我們的佇列會在第一分鐘尋找具有理想延遲 (低於 50 毫秒) 的位置,然後放寬限制。佇列不會放置播放器延遲為 250 毫秒或更高的位置。

下圖顯示步驟 4 的佇列,並已新增播放器延遲政策。播放器延遲政策狀態、強制執行 60 秒的 50ms 限制、強制執行 30 秒的 125ms 限制,以及強制執行 250ms 限制,直到逾時為止。

已新增播放器延遲政策之步驟 4 的範例佇列。播放器延遲政策狀態、強制執行 60 秒的 50ms 限制、強制執行 30 秒的 125ms 限制,以及強制執行 250ms 限制,直到逾時為止。

Summary

恭喜您!以下是您完成的事項:

  • 您的遊戲工作階段佇列範圍適用於玩家群體的區段。

  • 您的佇列會有效使用 Spot 機群,並在發生 Spot 中斷時具有彈性。

  • 您的佇列會優先考慮機群,以獲得最佳玩家體驗。

  • 佇列具有延遲限制,可保護玩家免受不良遊戲體驗的影響。

您現在可以使用佇列,為其服務的玩家放置遊戲工作階段。為這些玩家提出遊戲工作階段置放請求時,請在請求中參考此遊戲工作階段佇列名稱。如需提出遊戲工作階段置放請求的詳細資訊,請參閱 建立遊戲工作階段為即時伺服器整合遊戲用戶端

後續步驟: