建立 Amazon GameLift 受管EC2機群 - Amazon GameLift

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

建立 Amazon GameLift 受管EC2機群

本主題說明如何建立 Amazon GameLift 受管EC2機群。受管機群使用針對多玩家遊戲託管最佳化的 Amazon Elastic Compute Cloud (Amazon EC2) 運算執行個體。您可以建立 受管機群,將運算部署到 Amazon 支援的全域 AWS 區域 和 Local Zones GameLift。

當您建立新的受管EC2機群時,機群建立程序會立即開始。受管機群會隨著 Amazon GameLift 準備您的遊戲伺服器建置、在安裝建置時部署EC2執行個體,以及在每個執行個體上啟動遊戲伺服器,而經歷多個階段。您可以在主控台或使用 uring AWS Command Line Interface () 監控機群的狀態AWS CLI。當機群的狀態達到 時,即可託管遊戲工作階段ACTIVE。如需受管機群建立的詳細資訊,請參閱下列主題:

若要建立受管EC2機群

使用 Amazon GameLift 主控台或 AWS Command Line Interface (AWS CLI) 來建立受管EC2機群。

Console

Amazon GameLift 主控台 中,使用導覽窗格開啟機群頁面。選擇建立機群以開始機群建立工作流程。

步驟 1 選擇運算類型

選取 Managed EC2 選項,然後選擇 Next

步驟 2 定義機群詳細資訊

在此步驟中,指定一些機群範圍的設定。

如需最低機群組態:
  • 提供機群名稱。

  • 選擇二進位類型,並指定上傳的建置或指令碼。

  • 略過其他詳細資訊和標籤的區段。

  1. 填寫機群詳細資訊區段:

    1. 輸入機群名稱 。我們建議您使用機群命名模式,以便在檢視機群清單時更容易識別機群類型。

    2. 提供機群的簡短描述

    3. 對於二進位類型 ,選取建置以指出您要部署自訂遊戲伺服器建置,或者如果您要將即時伺服器部署到此機群,請選取 或 指令碼。從下拉式清單中選取上傳的建置或指令碼。

  2. (選用) 視需要設定其他詳細資訊

    1. 如果您的遊戲伺服器可執行檔需要存取帳戶中的其他 AWS 資源,請指定具有必要許可的IAM執行個體角色。如需詳細資訊,包括如何授權其他伺服器端應用程式 (例如 CloudWatch 代理程式),請參閱 與機群中的其他 AWS 資源通訊。建立機群後,無法變更此設定。

      您必須先建立角色,才能建立使用該角色的機群。此外,若要建立具有執行個體角色的機群,您的 AWS 使用者必須具有IAMPassRole許可 (請參閱 亞馬遜的 IAM 許可示例 GameLift)。

    2. 開啟產生TLS憑證選項來設定遊戲的身分驗證和加密,Game 用戶端會在連線和加密所有用戶端/伺服器通訊時使用此憑證來驗證遊戲伺服器。對於TLS啟用 的機群中的每個執行個體,Amazon GameLift 也會使用憑證建立新的DNS項目。建立機群後,無法變更此設定。

    3. 如果您想要合併此機群和其他機群的指標資料,請指定指標群組名稱。針對您要合併的所有機群,使用相同的指標群組名稱。檢視指標群組的指標,以查看彙總資料。

  3. (選用) 將標籤新增至機群資源。每個標籤皆包含由您定義的一個金鑰與一個選用值。將標籤指派給您想要以有用方式分類 AWS 的資源,例如依用途、擁有者或環境。針對您要新增的每個標籤,選擇新增標籤。

  4. 選擇下一步以繼續工作流程。

步驟 3 定義執行個體詳細資訊

在此步驟中,指定要使用的託管資源類型,以及您要部署資源的位置。透過選擇多個位置,您可以將遊戲伺服器部署到更寬廣的地理位置,讓它們更接近您的玩家,並將延遲降至最低。並非所有EC2執行個體類型在所有位置都可用。

如需最低機群組態:
  • 請勿新增遠端位置。

  • 將機群類型設定為「隨需」。Spot 機群需要額外的設定工作。

  • 將執行個體類型設定為 "c5.large"。此常用的執行個體類型在所有 中都可用 AWS 區域。

  1. 執行個體部署 中,指定機群位置和類型。

    1. 選取一或多個您要部署機群執行個體的其他位置。這些遠端位置會新增至機群的主位置 (預先選取),這是您建立此機群 AWS 區域 的 。您可以從 Amazon GameLift 支援的所有 AWS 區域 和 Local Zones 中選取遠端位置。

      若要進一步了解支援的位置,包括如何使用預設未啟用 AWS 區域 的 ,請參閱 Amazon GameLift 服務位置 的 受管託管。同時檢閱每個機群位置的 Amazon GameLift 配額

    2. 選擇為此機群使用隨需Spot 執行個體。如需機群類型的詳細資訊,請參閱 隨需執行個體與 Spot 執行個體

  2. 選擇符合您需求的 Amazon EC2執行個體組態,並且可在所有選取的位置使用。此清單會根據您目前的位置和機群類型選擇進行篩選。您可以依其他因素進一步篩選,例如執行個體類型系列和架構。建立機群後,您無法變更執行個體類型。

    某些位置的執行個體類型選項有限。如果您偏好的執行個體類型並非適用於所有位置,請選擇位置可用性值以檢視完整詳細資訊。若要容納所有位置,您可能需要建立具有不同執行個體類型的個別機群。

    如需選擇執行個體類型的詳細資訊,請參閱 執行個體類型。若要進一步了解 Amazon EC2 Arm 架構,請參閱 AWS Graviton 處理器Amazon EC2執行個體類型 。如需 Amazon 支援之執行個體類型的完整清單 GameLift,請參閱 EC2InstanceType() 的API參考CreateFleet()

    注意

    Graviton Arm 執行個體需要在 Linux 作業系統上建置 Amazon GameLift 伺服器。C++ SDK 和 C# 需要伺服器 5.1.1 或更新版本。Go 需要伺服器 SDK 5.0 或更新版本。這些執行個體 out-of-the-box 不支援 Amazon Linux 2023 (AL2023) 或 Amazon Linux 2 () 上的單一安裝AL2。

  3. 選擇下一步以繼續工作流程。

步驟 4 設定執行時間

在此步驟中,描述您希望機群中的每個執行個體如何執行遊戲伺服器軟體。為每個要在執行個體上執行的可執行檔定義個別的伺服器程序列項目,並決定要同時執行的每個伺服器程序數目。在每個執行個體上開啟連接埠,讓玩家直接連線到遊戲伺服器。您可以隨時更新這些機群設定。

如需最低機群組態:
  • 為您的遊戲伺服器可執行檔定義單一伺服器程序列項目。如果您的遊戲伺服器需要執行其他程序,也請為這些程序建立定義。

  • 針對每個明細項目使用並行程序的預設數目 (1)。

  • 略過遊戲工作階段啟用設定。

  • 指定單一連接埠號碼。

  • 略過遊戲工作階段資源設定。

  1. 建立執行期組態,指示 Amazon GameLift 如何在機群中的每個執行個體上執行伺服器程序。您可以在部署之後隨時變更機群的執行期組態。

    1. 輸入建置中可執行檔的啟動路徑。在 Windows 執行個體上,遊戲伺服器可執行檔會建置至路徑 C:\game。在 Linux 執行個體上,遊戲伺服器會建置為 /local/game。範例:C:\game\MyGame\server.exe/local/game/MyGame/server.exeMyRealtimeLaunchScript.js

    2. 輸入選用的啟動參數以傳遞至您的遊戲可執行檔。範例:+sv_port 33435 +start_lobby

    3. 指定在每個執行個體上執行的並行程序數目。對於可執行的遊戲伺服器,每個程序可以託管一個遊戲工作階段,因此並行程序會決定執行個體可以同時託管的遊戲工作階段數目。

      檢閱每個執行個體之伺服器程序的 Amazon GameLift 配額。這些配額適用於所有組態的總並行程序。如果您將機群設定為超過它們,則機群無法啟用。

  2. 使用遊戲工作階段啟用預設值,或針對您的遊戲自訂它們。如果執行期組態要求每個執行個體執行多個並行遊戲伺服器程序,這些設定會決定新遊戲工作階段的啟動速度。

    1. 設定並行遊戲工作階段啟用上限,以限制執行個體上準備新遊戲工作階段的遊戲伺服器數量。當啟動多個新遊戲工作階段時,此設定非常需要資源,可能會影響其他執行中遊戲工作階段的效能。

    2. 設定新的啟用逾時,以反映新遊戲工作階段完成啟用並報告準備好託管玩家所需的時間上限。如果遊戲工作階段超過此值,Amazon GameLift 會終止啟用。

  3. 開啟EC2連接埠設定,以允許傳入流量存取機群上的伺服器程序。建立機群不需要這些設定,但您需要先設定這些設定,才能讓玩家連線到機群上的遊戲工作階段。

    針對每個連接埠設定,選擇要用於遊戲用戶端與遊戲伺服器之間通訊的資料傳輸通訊協定類型。使用CIDR符號 (例如允許任何人存取nnnnn[-nnnnn]) 提供連接埠範圍 (格式為 ) 和 IP 地址範圍0.0.0.0/0

    如果您需要設定多個非連續範圍,請建立多個連接埠設定。

  4. 指定選用的遊戲工作階段資源設定 。您可以在部署之後隨時更新這些設定。

    1. 開啟或關閉機群中所有執行個體的遊戲擴展保護政策。在縮減規模事件期間,如果 Amazon 託管作用中的遊戲工作階段, GameLift 則不會終止受保護的機群執行個體。

    2. 如果您想要限制一個玩家可以在指定時間範圍內建立的遊戲工作階段數量,請設定資源建立上限。

  5. 選擇下一步以繼續工作流程。

步驟 5 檢閱和建立

建立機群之前,請先檢閱您的設定。雖然某些設定可以稍後更新 (請參閱 更新 Amazon GameLift 機群組態),但在建立機群之後,不允許對下列設定進行變更:

  • 運算類型:您無法將受管EC2機群轉換為 Anywhere 機群。

  • 建置或指令碼:若要將更新部署到您的遊戲伺服器建置或指令碼,您必須建立新的機群。

  • 其他選項,包括執行個體角色和TLS憑證產生。

  • 執行個體詳細資訊,包括機群類型 (Spot 或隨需) 和EC2執行個體類型。

當您準備好部署新的機群時,請選擇建立 。Amazon GameLift 會立即開始機群啟用程序,指派唯一的 ID,並將機群置於 NEW 狀態。從機頁面追蹤機群進度。檢視機群的詳細資訊頁面,然後前往事件索引標籤。

您可以在機群達到ACTIVE狀態後調整機群的託管容量。Amazon GameLift 最初會在每個機群位置部署具有單一執行個體的機群。 您可以透過將執行個體新增至每個位置來調整容量。如需詳細資訊,請參閱使用 Amazon 擴展遊戲託管容量 GameLift

AWS CLI

使用 create-fleet命令來建立運算類型 的機群EC2。Amazon 會在您目前的預設值中 GameLift 建立機群資源 AWS 區域 (或者您可以新增 --region 標籤以指定不同的 AWS 區域)。

建立最少的受管機群

下列範例請求會建立新的機群,並具有部署機群所需的最低設定,該機群具有執行遊戲用戶端可連線的遊戲伺服器。新機群具有下列特性:

  • 它指定遊戲伺服器建置,已上傳至 Amazon GameLift 並處於 READY 狀態。

  • 是 使用 c5.large 隨需執行個體搭配符合所選遊戲建置的作業系統。

  • 它將機群的首頁設定為 , AWS 區域 us-west-2並將執行個體部署到該區域。

  • 根據執行期組態,機群中的每個運算都會執行一個遊戲伺服器程序,這表示每個運算一次只能託管一個遊戲工作階段。遊戲工作階段啟用逾時設定為 300 秒的預設值,同時啟用次數沒有限制。

  • 玩家可以使用 的單一連接埠設定連線到遊戲伺服器33435

  • 所有其他功能都會關閉或使用預設設定。

aws gamelift create-fleet \ --name MinimalFleet123 \ --description "A basic test fleet" \ --region us-west-2 \ --ec2-instance-type c5.large \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --runtime-configuration "ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, ConcurrentExecutions=10}]" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP"

建立完全設定的受管機群

下列範例請求會使用所有選用功能的設定建立生產機群。新機群具有下列特性:

  • 它指定遊戲伺服器建置,已上傳至 Amazon GameLift 並處於 READY 狀態。

  • 它使用 c5.large 隨需執行個體搭配符合所選遊戲建置的作業系統。

  • 它將機群的首頁設定為 , AWS 區域 us-west-2並將執行個體部署到主區域和一個遠端位置 sa-east-1

  • 根據執行期組態:

    • 機群中的每個運算都會執行 10 個具有相同啟動參數的遊戲伺服器程序,這表示每個運算最多可同時託管 10 個遊戲工作階段。

    • 每次運算時,只能同時啟動兩個遊戲工作階段。啟用遊戲工作階段必須準備好在 300 秒 (5 分鐘) 內託管玩家,或終止。

  • 玩家可以使用下列範圍的連接埠連線至遊戲伺服器33435 to 33535

  • 它會產生TLS憑證,用於遊戲用戶端和伺服器之間的加密通訊。

  • 機群中的所有遊戲工作階段都已開啟遊戲工作階段保護。

  • 個別玩家僅限於在 15 分鐘內建立新的三個遊戲工作階段。

  • 此機群的指標包含在指標群組 中AMERfleets,(在此範例中) 會彙總北美洲、中南美洲機群群組的指標。

aws gamelift create-fleet \ --name ProdFleet123 \ --description "A fully configured prod fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --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=33535,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "AMERfleets"

如果建立機群請求成功,Amazon 會 GameLift 傳回一組機群屬性,其中包含您請求的組態設定和新的機群 ID。 GameLift 然後,Amazon 會啟動機群啟用程序,並將機群狀態和位置狀態設定為。您可以使用下列CLI命令來追蹤機群狀態並檢視其他機群資訊:

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