

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建 Amazon GameLift Servers 托管式容器实例集
<a name="containers-build-fleet"></a>

创建Amazon GameLift Servers托管容器舰队，以便在云端部署和托管您的容器化游戏服务器。 AWS 创建容器实例集时，需指定容器组定义，其中还要指定一个或多个容器映像（至少一个需包含游戏服务器生成包）和配置设置。

创建新的托管式容器实例集资源时，会立即开始实例集创建过程的第一阶段。托管式实例集的创建需经历多个阶段：Amazon GameLift Servers 首先预调配一个 EC2 实例，然后安装运行时环境，将容器组部署到实例上，最后开始启动游戏服务器进程。根据游戏服务器生成包所需的运行时环境，Amazon GameLift Servers 会在创建实例集的过程中部署最新版本的亚马逊机器映像（AMI），且实例集内的所有后续实例都将使用同一版本。您可以在控制台中或使用 AWS Command Line Interface (AWS CLI) 监控舰队的状态。当实例集准备就绪并可托管游戏会话时，其状态会变更为 `ACTIVE`。有关实例集创建问题的帮助，请参阅[调试 Amazon GameLift Servers 队组问题](fleets-creating-debug.md)。

您可以选择创建一个空的集装箱舰队，然后稍后添加或更新该舰队的容器组定义。如果您创建的实例集没有容器组定义，该实例集将无法进入活动状态。

**注意**  
作为最佳实践，我们建议每 30 天更换一次舰队，以维护托管游戏服务器的安全 up-to-date运行环境。这需要创建一个新实例集并将玩家流量迁移到该实例集。有关更多指导，请参阅[Amazon GameLift Servers 的安全最佳实践](security-best-practices.md)。

使用 [Amazon GameLift Servers 控制台](https://console.aws.amazon.com/gamelift/)或 AWS Command Line Interface （AWS CLI）创建容器实例集。

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

在[Amazon GameLift Servers控制台](https://console.aws.amazon.com/gamelift/)中，选择要创建队列 AWS 区域 的位置。容器组定义必须与您要创建实例集的区域保持一致。

打开控制台的左侧导航栏，并选择**托管容器：实例集**。在实例集页面上，选择**创建容器实例集**。

**步骤 1：定义托管式容器实例集详细信息**

1. 在**容器实例集详细信息**部分，输入实例集描述。

1. 为实例集指定 **IAM 角色**。此角色具有 Amazon GameLift Servers 代表您管理容器实例集所需的权限。要获取创建所需服务角色的帮助，请参阅[为 Amazon GameLift Servers 设置 IAM 服务角色](setting-up-role.md)。

1. 选择**日志配置**选项。默认情况下，该 CloudWatch 选项处于选中状态。根据所选选项提供所需信息。

1. 向实例集添加容器组。此为可选步骤。您可以选择创建不带容器组的实例集，并计划后续再添加。没有任何容器组的实例集不会部署任何实例集实例，且尚无法托管任何游戏，但会创建实例集资源。
   + 选择游戏服务器容器组定义。（可选）指定要部署的定义版本。如果不指定版本号，Amazon GameLift Servers 会自动使用最新版本。
   + （可选）添加每个实例的容器组定义和版本。如果不指定版本号，Amazon GameLift Servers 会自动使用最新版本。

1. 在**其他详细信息**中，您可以设置一些可选的自定义项。创建容器实例集时，不需要这些设置。

**步骤 2：定义实例详细信息**

1. 在**实例部署**中，选择一个或多个远程位置来部署实例。系统会自动选择主区域（即创建实例集的所在区域）。如果您选择其他位置，则实例集实例也将部署在这些位置。
**重要**  
要使用默认情况下未启用的区域，请在您的中将其启用 AWS 账户。  
对于在 2022 年 2 月 28 日之前创建的、包含未启用区域的实例集，此要求不会对其产生影响。
要创建新的多位置实例集或更新现有的多位置实例集，请先启用您选择使用的任何区域或 Local Zones。
有关默认情况下未启用的区域以及如何启用这些区域的更多信息，请参阅《AWS 一般参考》**中的[管理 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。请参阅《AWS Local Zones 用户指南》**中的 [Local Zones 入门](https://docs.aws.amazon.com/local-zones/latest/ug/getting-started.html)。

1. 为实例集选择一个**实例配置**。控制台会自动计算所需的最低 vCPU 和内存（基于您为每个容器组设置的总限制）。它会根据资源需求和您输入的位置，筛选可用实例类型的完整列表。您可以根据需要添加其他筛选条件。

   有关选择实例类型的更多信息，请参阅[配置容器实例集](containers-design-fleet.md#containers-design-fleet-config)。您选择的实例类型的大小将影响游戏服务器容器组打包到每个实例集实例上的方式。根据您的选择，可以考虑查看每个实例所需的游戏服务器容器组的设置。

**步骤 4：审核并创建**
+ 检查实例集配置设置。

  您可以随时更新实例集的元数据和配置，无论实例集状态如何。有关更多信息，请参阅 [更新 Amazon GameLift Servers 实例集配置](fleets-editing.md)。您能在实例集进入 ACTIVE 状态之后更新实例集容量。有关更多信息，请参阅 [利用 Amazon GameLift Servers 扩展游戏托管容量](fleets-manage-capacity.md)。您还可以添加或删除远程位置。

  检查完成后，选择**创建**。

  如果请求成功，控制台将显示新实例集资源的详细信息页面。初始状态为 `NEW`，此时 Amazon GameLift Servers 已启动实例集创建流程。您可以在**实例集**页面上跟踪新实例集的状态。当实例集进入 `ACTIVE` 状态时，即表示已准备好托管游戏会话。

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

要使用创建集装箱舰队 AWS CLI，请打开命令行窗口并使用`create-container-fleet`命令。有关此命令的更多信息，请参阅《AWS CLI 命令参考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/create-container-fleet.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/create-container-fleet.html)。

下面显示的示例 `create-container-fleet` 请求将创建一个具有以下特征的新容器实例集：
+ 仅 ContainerGroupsConfiguration 指定游戏服务器容器组定义:`MyAdventureGameContainerGroup`. 将部署到每个实例集实例的游戏服务器容器组的数量由 Amazon GameLift Servers 计算。
+ 该实例集默认使用 c5.large 按需型实例。
+ 默认情况下，实例集会按照 Amazon GameLift Servers 的计算结果，开放一组连接端口和入站权限端口。它会将容器组部署到以下位置：

```
aws gamelift create-container-fleet \
    --fleet-role-arn arn:aws:iam::MyAccount:role/MyContainersRole \
    --game-server-container-group-definition-name "rn:aws:gamelift:us-west-2:111122223333:containergroupdefinition/MyAdventureGameContainerGroup:2" \
```

如果创建实例集请求成功，Amazon GameLift Servers 将返回一组实例集属性，其中包含您请求的配置设置和新的容器实例集 ID。然后，Amazon GameLift Servers 会将实例集状态和位置状态设置为 **New**，并启动实例集激活流程。您可以使用以下 CLI 命令跟踪实例集的状态并查看其他实例集信息：
+ [describe-fleet-events](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-events.html)
+ [describe-container-fleet](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-fleet.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-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-container-fleet](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-container-fleet.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)
+ [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)

------

