建立亞馬遜 GameLift 受管叢集 - Amazon GameLift

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

建立亞馬遜 GameLift 受管叢集

使用 Amazon 主 GameLift 控台或 AWS Command Line Interface (AWS CLI) 建立受管叢集。

建立新的受管 EC2 叢集之後,Amazon GameLift 部署叢集並安裝和啟動遊戲伺服器時,叢集的狀態會經過數個階段。艦隊已準備好在達到ACTIVE狀態後主持遊戲工作階段。如需建立叢集問題的協助,請參閱偵錯亞馬遜GameLift叢集問題

Console
若要建立受管 EC2 叢集
  1. Amazon 主 GameLift 控台的導覽窗格中,選擇「叢集」。

  2. Fleets (機群) 頁面上,選擇 Create fleet (建立機群)

  3. 選擇受管 EC2

  4. 在 [叢集詳細資料] 頁面上執行下列動作:

    1. 名稱中,輸入叢集名稱。我們建議在您的叢集名稱中加入叢集類型 (Spot 或隨選)。這使得在檢視叢集清單時更容易識別叢集類型。

    2. 在「描述」中,提供叢集的簡短描述。

    3. 對於二進位類型,請選取建立指令碼以定義 Amazon GameLift 部署到此叢集的遊戲伺服器類型。

    4. 從上傳的指碼或組的下拉式清單中選取「指令碼」或「建置」。

  5. (選擇性) 在 [其他詳細資訊] 下,以取得下列

    1. 針對執行個體角色,指定 IAM 角色,以授權遊戲組建中的應用程式存取帳戶中的其他AWS資源。如需詳細資訊,請參閱與您車隊的其他AWS資源進行溝通。若要建立具有執行個體角色的叢集,您的帳戶必須具有 IAM PassRole 權限。如需詳細資訊,請參閱亞馬遜的 IAM 許可示例 GameLift

      如果您要授權非伺服器可執行檔的應用程式 (例如 CloudWatch 代理程式),請啟用共用認證選項。

      您無法在建立叢集之後更新這些設定。

    2. 對於產生認證,請選擇讓 Amazon 為叢集 GameLift 產生 TLS 憑證。您可以使用機群 TLS 憑證,讓遊戲用戶端在連線時驗證遊戲伺服器,以及加密所有用戶端/伺服器通訊。對於啟用 TLS 的叢集中的每個執行個體,Amazon GameLift 也會使用憑證建立新的 DNS 項目。使用這些資源來設定遊戲的身分驗證和加密。

    3. 針對測量結果群組,輸入新的或現有叢集測量結果群組的名稱。您可以將多個叢集的指標新增至相同的量度群組,來彙總這些指標。

      建立叢集之後,您無法更新量度群組。

  6. 選擇下一步

  7. [選取位置] 頁面上,選取一或多個要部署執行個體的其他遠端位置。系統會根據您存取主控台的地區自動選取主要區域。如果您選取其他位置,叢集執行個體也會部署在這些位置。

    重要

    若要使用預設未啟用的區域,請在您的AWS 帳戶.

    • 您在 2022 年 2 月 28 日之前建立的未啟用區域的艦隊將不會受到影響。

    • 若要建立新的多位置叢集或更新現有的多位置叢集,請先啟用您選擇使用的任何區域。

    如需有關預設未啟用的區域以及如何啟用的詳細資AWS 區域訊,請參閱 AWS 一般參考.

  8. 選擇下一步

  9. 在 [定義執行個體詳細資訊] 頁面上,

    1. 此叢集的隨需Spot 執行個體。如需叢集類型的詳細資訊,請參閱隨需執行個體與 Spot 執行

    2. 從「篩選器架構」功能表中選擇 x64 或「Arm」。

      注意

      重力臂執行個體需要在 Linux 作業系統上建置亞馬遜 GameLift 伺服器。C ++ 和 C# 需要服務器 SDK 5.1.1 或更新版本。轉到需要服務器 SDK 5.0 或更新版本。這些執行個體不 out-of-the-box 支援亞馬遜 Linux 2023 (AL2023) 或亞馬遜 Linux 2 (AL2) 上的單聲道安裝。

      如需 Amazon EC2 Arm 架構的相關資訊,請參閱AWS重力發處理器Amazon EC2 執行個體類型。

    有關 Amazon 支援的執行個體類型的資訊 GameLift,請參閱 CreateFleet() 請求參數下的EC2InstanceType值。

  10. 從清單中選取一個 Amazon EC2 執行個體類型。如需選擇執行個體類型的詳細資訊,請參閱執行個體類型。建立叢集之後,就無法變更執行個體類型。

  11. 選擇下一步

  12. 在 [設定執行階段] 頁面的 [執行階段設定] 底下,執行下列

    1. 針對 Launch 路徑,請在您的組建或指令碼中輸入遊戲執行檔的路徑。在 Windows 執行個體、遊戲伺服器路徑 C:\game。在 Linux 執行個體上,遊戲伺服器是針對/local/game. 範例:C:\game\MyGame\server.exe/local/game/MyGame/server.exe、或MyRealtimeLaunchScript.js

    2. (選擇性) 對於 Launch 參數,請輸入要作為一組命令列參數傳遞至遊戲執行檔的資訊。範例:+sv_port 33435 +start_lobby

    3. 針對並行處理,請選擇叢集中每個執行處理要同時執行的伺服器處理作業數目。查看 Amazon 同時伺服器處理序數量的 GameLift 限制

      對每個執行個體之並行伺服器程序的限制適用於所有組態的並行程序總數。如果您將叢集設定為超出限制,則無法啟動叢集。

  13. 在「遊戲工作階段啟動」下方,提供限制以在此艦隊中的執行個體上啟動新遊戲工作階段

    1. 對於最大同時啟動遊戲工作階段,請輸入同時啟動的執行個體上的遊戲工作階段數目。啟動多個新遊戲工作階段時,此限制很有用,可能影響在執行個體上執行之其他遊戲工作階段的效能。

    2. 在 [新啟動逾時] 中,輸入等待工作階段啟動的時間長度。如果遊戲工作階段未在逾時前移至ACTIVE狀態,Amazon 會 GameLift 終止遊戲工作階段啟用。

  14. (選用) 在 EC2 連接埠設定下,執行下列動作:

    1. 選擇 [新增連接埠設定],為連線至叢集上部署之伺服器處理序的輸入流量定義存取權限。

    2. 在「類」中,選擇「自訂 TCP」或「自訂 UDP」。

    3. 通訊埠範圍中,輸入允許輸入連線的通訊埠號碼範圍。連接埠範圍必須使用格式nnnnn[-nnnnn],其值在 1026 到 60000 之間。範例:15001500-20000

    4. 對於 IP 位址範圍,請輸入 IP 位址範圍。使用 CIDR 符號。範例:0.0.0.0/0 (此範例允許任何嘗試連接的人員存取。)

  15. (選擇性) 在遊戲工作階段資源設定下,執行下列動作:

    1. 對於遊戲縮放保護政策,請打開或關閉擴展保護。如果 Amazon 託管活動中的遊戲工作階段,Amazon GameLift 不會在縮減事件期間終止具有保護的執行個體。

    2. 針對資源建立限制,請輸入玩家在政策期間可建立的遊戲工作階段數目上限。

  16. 選擇下一步

  17. (選擇性) 輸入「索引鍵」和「」配對,將標籤新增至組建。選擇 [下一步] 繼續進行叢集建立檢閱。

  18. 選擇 建立 。Amazon GameLift 會將 ID 指派給新叢集,並開始叢集啟用程序。您可以在 Fleets (叢集) 頁面追蹤新叢集的狀態。

無論叢集狀態為何,您都可以隨時更新叢集的中繼資料和組態。如需詳細資訊,請參閱管理您的亞馬遜GameLift車隊。您可以在叢集達到 ACTIVE 狀態後更新叢集容量。如需詳細資訊,請參閱擴展亞馬遜GameLift託管容量。您也可以新增或移除遠端位置。

AWS CLI

若要使用建立叢集AWS CLI,請開啟命令列視窗並使用create-fleet指令。如需 create-fleet 命令的詳細資訊,請參閱《AWS CLI 命令參考》中的 create-fleet

以下顯示的範例 create-fleet 請求會建立含以下特點的新機群:

  • 叢集使用 c5.large 隨需執行個體搭配適用於所選遊戲組建的作業系統。

  • 它會將指定的遊戲伺服器組建部署到下列位置,而該組建必須處於 [就緒] 狀態:

    • 我們-西 2(主場地區)

    • SA-東 -1(遠程位置)

  • TLS 憑證產生已啟用。

  • 機群中的每個執行個體將同時執行 10 個相同的遊戲伺服器程序,讓每個執行個體可同時代管高達 10 個遊戲工作階段。

  • 在每個執行個體上,Amazon GameLift 允許同時啟用兩個新的遊戲工作階段。如果他們還沒有準備好在 300 秒內接待玩家,它也會終止任何啟動遊戲工作階段。

  • 在這個機群中的執行個體代管的所有遊戲工作階段已開啟遊戲工作階段保護。

  • 個別玩家可以在 15 分鐘期間內建立三個新遊戲工作階段。

  • 此叢集上託管的每個遊戲工作階段都有一個連線點,該連線點位於指定的 IP 位址和連接埠範圍內。

  • Amazon GameLift 將此叢集的指標新增至指EMEAfleets標群組 (在本範例中) 結合 EMEA 區域中所有叢集的指標。

aws gamelift create-fleet \ --name SampleFleet123 \ --description "The sample test fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-92f061ed-27c9-4a02-b1f4-6f85b2385620 \ --certificate-configuration "CertificateType=GENERATED" \ --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, Parameters=+sv_port 33435 +start_lobby, ConcurrentExecutions=10}]" \ --new-game-session-protection-policy "FullProtection" \ --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "EMEAfleets"

如果建立叢集請求成功,Amazon 會 GameLift 傳回一組叢集屬性,其中包括您請求的組態設定和新的叢集 ID。Amazon GameLift 接著會啟動叢集啟用程序,並將叢集狀態和位置狀態設定為 [增]。您可以追蹤機群的狀態,並使用這些 CLI 命令檢視其他機群資訊:

您可以使用以下命令,視需要變更叢集的容量及其他組態設定: