创建 Amazon GameLift 托管实例集 - Amazon GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建 Amazon GameLift 托管实例集

使用 Amazon GameLift 控制台或 Amazon Command Line Interface (Amazon CLI) 创建托管实例集。

在您创建新的托管 EC2 实例集之后,在 Amazon GameLift 部署实例集并安装和启动游戏服务器的过程中,实例集的状态需要经过多个阶段。当实例集进入 ACTIVE 状态时,即表示已准备好托管游戏会话。有关实例集创建问题的帮助,请参阅调试 Amazon GameLift 实例集问题

Console
创建托管 EC2 实例集
  1. Amazon GameLift 控制台的导航窗格中,选择实例集

  2. 实例集页面上,选择创建实例集

  3. 选择托管 EC2

  4. 实例集详细信息页面上,执行以下操作:

    1. 对于名称,输入新名称。我们建议将实例集类型(竞价型或按需型)包含在实例集名称中。这使得在查看实例集列表时可以更轻松地识别实例集类型。

    2. 描述中,提供对实例集的简短描述。

    3. 对于二进制类型,选择构建脚本来定义 Amazon GameLift 部署到此实例集的游戏服务器类型。

    4. 从已上传的脚本或构建的下拉列表中选择脚本构建

  5. (可选)在其他详细信息下显示以下内容:

    1. 对于实例角色,请指定一个 IAM 角色,该角色授权游戏构建中的应用程序访问您账户中的其他 Amazon 资源。有关更多信息,请参阅与您的实例集中的其他 Amazon 资源进行通信。要创建具有实例角色的实例集,您的账户必须拥有 IAM PassRole 权限。有关更多信息,请参阅Amazon GameLift 的 IAM 权限示例

      无法在创建实例集后更新这些设置。

    2. 对于指标组,输入新的或现有实例集指标组的名称。可以通过将多个实例集添加到同一个指标组来聚合指标。

      实例集创建后,您无法更新指标组。

  6. 选择下一步

  7. 选择位置页面上,选择一个或多个其他远程位置来部署实例。系统会根据您访问控制台的区域自动选择主区域。如果您选择其他位置,则实例集实例也将部署在这些位置。

    重要

    要使用默认情况下未启用的区域,请在您的 Amazon Web Services 账户中将其启用。

    • 您在 2022 年 2 月 28 日之前创建的具有未启用区域的实例集不受影响。

    • 要创建新的多位置实例集或更新现有的多位置实例集,请先启用您选择使用的任意区域。

    有关默认情况下未启用的区域以及如何启用这些区域的更多信息,请参阅《Amazon Web Services 一般参考》中的管理 Amazon Web Services 区域

  8. 选择下一步

  9. 定义实例详细信息页面上,选择

    1. 此实例集的按需型竞价型实例。有关实例集类型的更多信息,请参阅按需型实例和竞价型实例

    2. 筛选架构菜单中选择 x64Arm

      注意

      Graviton Arm 实例需要基于 Linux 操作系统的 Amazon GameLift 服务器构建。C++ 和 C# 需要服务器软件开发工具包 5.1.1 或更高版本。Go 需要服务器软件开发工具包 5.0 或更高版本。这些实例不为 Amazon Linux 2023 (AL2023) 或 Amazon Linux 2 (AL2) 上安装 Mono 提供开箱即用的支持。

      有关 Amazon EC2 Arm 架构的信息,请参阅 Amazon Graviton 处理器Amazon EC2 实例类型

    有关 Amazon GameLift 支持的实例类型的信息,请参阅 CreateFleet() 请求参数下的 EC2InstanceType 值。

  10. 从列表中选择 Amazon EC2 实例类型 有关选择实例类型的更多信息,请参阅实例类型。创建实例集后无法更改实例类型。

  11. 选择下一步

  12. 配置运行时系统页面的运行时配置下,执行以下操作:

    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 对并发服务器进程数量的限制

      对每个实例的并发服务器进程数的限制应用到所有配置的并发进程总数上。如果配置实例集超出限制,实例集无法激活。

  13. 游戏会话激活下,提供在此实例集中的实例上激活新游戏会话的限制:

    1. 对于最大并发游戏会话激活,输入实例中同时激活的游戏会话的数量。当启动多个新的游戏会话可能会对在实例上运行的其他游戏会话造成性能影响时,此限制非常有用。

    2. 对于新激活超时,输入等待会话激活的时长。如果游戏会话在超时之前没有变为 ACTIVE 状态,Amazon GameLift 将终止游戏会话激活。

  14. (可选)在EC2 端口设置下,执行以下操作:

    1. 选择添加端口设置以定义连接到部署在此实例集上的服务器进程的入站流量的访问权限。

    2. 对于类型,选择自定义 TCP自定义 UDP

    3. 对于端口范围,输入允许入站连接的端口号范围。端口范围必须使用格式 nnnnn[-nnnnn],值介于 1025 和 60000 之间。示例:15001500-20000

    4. 对于 IP 地址范围,输入 IP 地址的范围。使用 CIDR 表示法。示例:0.0.0.0/0(此示例允许尝试连接的任何人的访问。)

  15. (可选)在游戏会话资源设置下,执行以下操作:

    1. 对于游戏扩展保护策略,请打开或关闭扩展保护。即使具有保护的实例托管了活动游戏会话,在缩减事件中 Amazon GameLift 将不会终止该实例。

    2. 对于资源创建限制,输入策略期限内玩家可以创建的最大游戏会话数。

  16. 选择下一步

  17. (可选)通过输入对向构建添加标签。选择下一步继续查看实例集创建。

  18. 选择创建。Amazon GameLift 会分配一个 ID 至新实例集并开始实例集激活过程。您可以在实例集页面上跟踪新实例集的状态。

您可以随时更新实例集的元数据和配置,无论实例集状态如何。有关更多信息,请参阅管理 Amazon GameLift 实例集。您能在实例集进入 ACTIVE 状态之后更新实例集容量。有关更多信息,请参阅扩展 Amazon GameLift 托管容量。您还可以添加或删除远程位置。

Amazon CLI

要使用 Amazon CLI 创建实例集,请打开命令行窗口,然后使用 create-fleet 命令。有关 create-fleet 命令的更多信息,请参阅《Amazon CLI 命令参考》中的 create-fleet

下面显示的示例 create-fleet 请求将创建一个具有以下特征的新实例集:

  • 该实例集将 c5.large 按需型实例与适合所选游戏构建的操作系统一起使用。

  • 它部署指定的游戏服务器构建,以下位置必须处于准备就绪状态:

    • us-west-2(主区域)

    • sa-east-1(远程位置)

  • 该实例集中的每个实例将并发运行十个相同的游戏服务器进程,从而使每个实例能够同时托管多达 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 命令跟踪实例集的状态并查看其他实例集信息:

您可以使用以下命令,根据需要更改实例集的容量和其他配置设置: