

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

# 建立Amazon GameLift Servers受管 EC2 機群
<a name="fleets-creating"></a>

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

當您建立新的受管 EC2 機群資源時，您會立即啟動機群建立的第一階段。當 部署 EC2 Amazon GameLift Servers 執行個體、在執行個體上安裝執行期環境和遊戲伺服器組建，並開始啟動遊戲伺服器時，受管機群建立會經過數個階段。根據遊戲伺服器建置所需的執行時間環境， Amazon GameLift Servers 會在機群建立時部署最新版本的 Amazon Machine Image (AMI) （且機群中的所有未來執行個體將使用相同的版本）。您可以在 主控台或使用 AWS Command Line Interface () 監控機群的狀態AWS CLI。當機群準備好託管遊戲工作階段時，狀態會變更為 `ACTIVE`。如需受管機群建立的詳細資訊，請參閱下列主題：

**注意**  
根據最佳實務，我們建議您每 30 天替換一次機群，以維護託管遊戲伺服器的安全up-to-date執行期環境。這需要建立新的機群，並將玩家流量遷移到其中。如需詳細的指導方針，請參閱 [Amazon GameLift Servers 的安全最佳實務](security-best-practices.md)。

**建立受管 EC2 機群**

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

------
#### [ Console ]

在 [Amazon GameLift Servers主控台](https://console.aws.amazon.com/gamelift/)中，使用導覽窗格開啟**受管 EC2、機群**頁面。選擇**建立受管 EC2 機群**以開始機群建立工作流程。

**步驟 1 定義受管 EC2 機群詳細資訊**  
**如需最少的機群組態：**  
+ 提供機群名稱。
+ 選擇**二進位類型：建置**。從您先前上傳至 的伺服器組建清單中選擇組建Amazon GameLift Servers。
+ 略過其他詳細資訊和標籤區段以使用預設設定。

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

   1. 輸入機群**名稱**。機群名稱僅為描述性，適用於排序或篩選機群清單。它們不需要是唯一的。

   1. 提供簡短機群**描述**，以包含您想要擷取的機群相關自訂資訊。

   1. 選取**二進位類型、組建**，並使用下拉式清單來選擇您先前上傳至 的遊戲伺服器組建Amazon GameLift Servers。

1. 視需要設定**其他詳細資訊**。

   1. 如果您的遊戲伺服器可執行檔需要存取帳戶中的其他 AWS 資源，請指定具有必要許可的 IAM **執行個體角色**。如需詳細資訊，包括如何授權其他伺服器端應用程式 （例如 CloudWatch 代理程式），請參閱 [將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。在您建立機群之後，就無法變更此設定。

      您必須先建立角色，才能建立使用該角色的機群。此外，若要使用執行個體角色建立機群，您的 AWS 使用者必須具有 IAM `PassRole`許可 （請參閱 [的 IAM 許可範例 Amazon GameLift Servers](gamelift-iam-policy-examples.md))。

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

   1. Amazon GameLift Servers 會為每個個別機群發出指標資料。如果您想要合併多個機群的指標資料，請指定**指標群組**名稱。針對您要結合指標的所有機群，使用相同的指標群組名稱。使用 CloudWatch 來檢視彙總指標群組資料。

1. 將**標籤**新增至機群資源。每個標籤皆包含由您定義的一個金鑰與一個選用值。將標籤指派給您要分類 AWS 的資源，例如依用途、擁有者或環境。為您要新增的每個**標籤選擇新增**標籤。

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

**步驟 2 定義執行個體詳細資訊**  
在此步驟中，選取要用於遊戲伺服器的硬體資源類型，並指定您要部署它們的位置。透過選擇多個位置，您可以將遊戲伺服器部署到更寬廣的地理位置，讓它們更接近您的玩家，並將延遲降至最低。機群中的所有 EC2 執行個體必須為相同類型。並非所有執行個體類型都可在所有位置使用。  
**如需最少的機群組態：**  
+ 從僅部署到主位置開始。您不需要為初始開發和測試新增遠端位置。
+ 將機群類型設定為「隨需」。Spot 機群需要額外的設定工作。
+ 將執行個體類型設定為 "c5.large"。此常用執行個體類型適用於所有 AWS 區域。您可以稍後最佳化硬體用量。

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

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

      若要進一步了解支援的位置，包括如何使用預設未啟用 AWS 區域 的 ，請參閱 [Amazon GameLift Servers 服務位置](gamelift-regions.md) 以取得受管託管。同時檢閱每個機群位置的Amazon GameLift Servers[配額](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift)。

   1. 選擇為此機群使用**隨需**或 **Spot** 執行個體。如需機群類型的詳細資訊，請參閱 [隨需執行個體與 Spot 執行個體的比較](gamelift-compute.md#gamelift-compute-spot)。

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

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

   如需選擇執行個體類型的詳細資訊，請參閱 [執行個體類型](gamelift-compute.md#gamelift-compute-instance)。若要進一步了解 Amazon EC2 Arm 架構，請參閱 [AWS Graviton 處理器](https://aws.amazon.com/ec2/graviton/)和 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。如需 支援的執行個體類型完整清單Amazon GameLift Servers，請參閱 [EC2InstanceType](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateFleet.html#gamelift-CreateFleet-request-EC2InstanceType) () 的 API 參考`CreateFleet()`。
**注意**  
Graviton Arm 執行個體需要 Linux AMI 的伺服器建置。C\+\+ 和 C\# 需要伺服器 SDK 5.1.1 或更新版本。Go 需要伺服器 SDK 5.0 或更新版本。這些執行個體不提供out-of-the-box可用的 Amazon Linux 2023 (AL2023) 或 Amazon Linux 2 (AL2) 上單機安裝支援。

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

**步驟 4 設定執行時間**  
在此步驟中，描述您希望機群中的每個執行個體如何執行遊戲伺服器軟體。為每個要在執行個體上執行的可執行檔定義個別的伺服器程序明細項目，並決定要同時執行多少個伺服器程序。在每個執行個體上開啟連接埠，以允許玩家直接連線到遊戲伺服器。您可以隨時更新這些機群設定。  
**如需最少的機群組態：**  
+ 為您的遊戲伺服器可執行檔定義單一伺服器程序明細項目。如果您的遊戲伺服器需要執行其他程序，也請為每個程序建立定義。
+ 為每個明細項目使用預設的並行程序數目 (1)。
+ 略過遊戲工作階段啟用設定。
+ 指定單一連接埠號碼。
+ 略過遊戲工作階段資源設定。

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

   1. 輸入建置中可執行檔的**啟動路徑**。在 Windows 執行個體上，遊戲伺服器可執行檔會建置到路徑 `C:\game`。在 Linux 執行個體上，遊戲伺服器建置於 `/local/game`。例如：​**C:\\game\\MyGame\\server.exe**​ 或 **/local/game/MyGame/server.exe**​。

   1. 輸入選用的**啟動參數**以傳遞至您的遊戲可執行檔。範例：**\+sv\_port 33435 \+start\_lobby**。

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

      檢閱每個執行個體伺服器程序的Amazon GameLift Servers[配額](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift)。這些配額適用於所有組態的總並行程序。如果您將機群設定為超過它們，則機群無法啟用。

1. 使用**遊戲工作階段啟用**預設值或為您的遊戲自訂它們。如果執行時間組態呼叫每個執行個體的多個並行遊戲伺服器程序，這些設定會決定新遊戲工作階段的啟動速度。

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

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

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

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

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

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

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

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

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

**步驟 5 檢閱和建立**  
建立機群之前，請先檢閱您的設定。雖然某些設定可以稍後更新 （請參閱 [更新Amazon GameLift Servers機群組態](fleets-editing.md))，但在建立機群之後，不允許變更下列設定：  
+ 運算類型：您無法將受管 EC2 機群轉換為 Anywhere 機群。
+ 遊戲伺服器二進位檔：若要將更新部署到您的遊戲伺服器組建，您必須建立新的機群。
+ 其他選項，包括執行個體角色和產生 TLS 憑證。
+ 執行個體詳細資訊，包括機群類型 (Spot 或隨需） 和 EC2 執行個體類型。
當您準備好部署新機群時，請選擇**建立**。 會Amazon GameLift Servers立即開始機群啟用程序，指派唯一的 ID 並將機群置於 `NEW` 狀態。從機群****頁面追蹤機群進度。查看機群的詳細資訊頁面，然後前往**事件**索引標籤。  
您可以在機群達到 ACTIVE 狀態後調整機群的託管容量。 Amazon GameLift Servers最初會在每個機群位置中部署具有單一執行個體的機群。 並透過將執行個體新增至每個位置來調整容量。如需詳細資訊，請參閱[使用 擴展遊戲託管容量 Amazon GameLift Servers](fleets-manage-capacity.md)。

------
#### [ AWS CLI ]

使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/create-fleet.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/create-fleet.html)命令來建立運算類型 的機群`EC2`。 會在您目前的預設值中Amazon GameLift Servers建立機群資源 AWS 區域 （或者您可以新增 --region 標籤來指定不同的 AWS 區域)。

**建立最少的受管機群**

下列範例請求會建立具有部署機群所需的最低設定的新機群，該機群具有執行遊戲用戶端可連線的遊戲伺服器。新機群具有下列特性：
+ 它指定遊戲伺服器組建，已上傳至 Amazon GameLift Servers並處於 `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 Servers並處於 `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 Servers傳回一組機群屬性，其中包含您請求的組態設定和新的機群 ID。 Amazon GameLift Servers然後啟動機群啟用程序，並將機群狀態和位置狀態設定為**新增**。您可以追蹤機群的狀態，並使用這些 CLI 命令檢視其他機群資訊：
+ [describe-fleet-events](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-events.html)
+ [describe-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-attributes.html)
+ [describe-fleet-capacity](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-capacity.html)
+ [describe-fleet-port-settings](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-port-settings.html)
+ [describe-fleet-utilization](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-utilization.html)
+ [describe-runtime-configuration](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-runtime-configuration.html)
+ [describe-fleet-location-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-location-attributes.html)
+ [describe-fleet-location-capacity](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-location-capacity.html)
+ [describe-fleet-location-utilization](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-location-utilization.html)

您可以使用以下命令，視需要變更叢集的容量及其他組態設定：
+ [update-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-attributes.html)
+ [update-fleet-capacity](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-capacity.html)
+ [update-fleet-port-settings](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html)
+ [update-runtime-configuration](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-runtime-configuration.html)
+ [create-fleet-locations](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet-locations.html)
+ [delete-fleet-locations](https://docs.aws.amazon.com/cli/latest/reference/gamelift/delete-fleet-locations.html)

------