本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建Amazon GameLift Servers托管 EC2 舰队
本主题介绍如何创建Amazon GameLift Servers托管 EC2 舰队。托管队伍使用针对多人游戏托管进行了优化的亚马逊弹性计算云 (Amazon EC2) 计算实例。您可以创建托管队列,将计算部署到全局 Amazon Web Services 区域 和支持的 Local Zones。Amazon GameLift Servers
创建新的托管 EC2 舰队资源时,会立即启动队列创建的第一阶段。在Amazon GameLift Servers部署 EC2 实例、安装运行时环境和在实例上构建游戏服务器以及开始启动游戏服务器时,托管队列的创建会经历几个阶段。根据您的游戏服务器构建所需的运行时环境,在创建队列时Amazon GameLift Servers部署最新版本的 Amazon 系统映像 (AMI)(队列中所有未来的实例都将使用相同的版本)。您可以在控制台中或使用 Amazon Command Line Interface (Amazon CLI) 监控队列的状态。当舰队准备好举办游戏会话时,状态会更改为ACTIVE
。有关创建托管队列的更多信息,请参阅以下主题:
注意
作为最佳实践,我们建议每 30 天更换一次舰队,以维护托管游戏服务器的安全 up-to-date运行环境。这需要创建一个新的舰队并将玩家流量迁移到该舰队。有关更多指导,请参阅Amazon GameLift Servers 的安全最佳实践。
创建托管 EC2 车队
使用Amazon GameLift Servers控制台或 Amazon Command Line Interface (Amazon CLI) 创建托管 EC2 队列。
- Console
-
创建托管 EC2 车队
-
在Amazon GameLift Servers控制台
的导航窗格中,选择 Fleets。 -
在实例集页面上,选择创建实例集。
-
选择 “托管” EC2。
-
在实例集详细信息页面上,执行以下操作:
-
对于名称,输入新名称。我们建议将实例集类型(竞价型或按需型)包含在实例集名称中。这使得在查看实例集列表时可以更轻松地识别实例集类型。
-
在描述中,提供对实例集的简短描述。
-
对于二进制类型,选择 B uild 或 S cript 以定义Amazon GameLift Servers部署到此队列的游戏服务器类型。
-
从已上传的脚本或构建的下拉列表中选择脚本或构建。
-
-
(可选)在其他详细信息下显示以下内容:
-
对于实例角色,请指定一个 IAM 角色,该角色授权游戏构建中的应用程序访问您账户中的其他 Amazon 资源。有关更多信息,请参阅 与舰队中的其他 Amazon 资源进行沟通。要创建具有实例角色的实例集,您的账户必须拥有 IAM
PassRole
权限。有关更多信息,请参阅 的 IAM 权限示例 Amazon GameLift Servers。无法在创建实例集后更新这些设置。
-
对于指标组,输入新的或现有实例集指标组的名称。可以通过将多个实例集添加到同一个指标组来聚合指标。
实例集创建后,您无法更新指标组。
-
-
选择下一步。
-
在选择位置页面上,选择一个或多个其他远程位置来部署实例。系统会根据您访问控制台的区域自动选择主区域。如果您选择其他位置,则实例集实例也将部署在这些位置。
重要
要使用默认情况下未启用的区域,请在您的中将其启用 Amazon Web Services 账户。
如果您在 2022 年 2 月 28 日之前创建的未启用区域的实例集不受影响。
要创建新的多位置实例集或更新现有的多位置实例集,请先启用您选择使用的任意区域。
有关默认情况下未启用的区域以及如何启用这些区域的更多信息,请参阅《Amazon Web Services 一般参考》中的管理 Amazon Web Services 区域。
-
选择下一步。
-
在定义实例详细信息页面上,选择
此实例集的按需型或竞价型实例。有关实例集类型的更多信息,请参阅按需型实例和竞价型实例。
从筛选架构菜单中选择 x64 或 Arm。
注意
Graviton Arm 实例需要在 Linux 操作系统上构建Amazon GameLift Servers服务器。C++ 和 C# 需要服务器软件开发工具包 5.1.1 或更高版本。Go 需要服务器软件开发工具包 5.0 或更高版本。这些实例不 out-of-the-box支持在亚马逊 Linux 2023 (AL2023) 或亚马逊 Linux 2 (AL2) 上安装 Mono。
有关 Amazon A EC2 rm 架构的信息,请参阅 Amazon Graviton Processor 和
A mazon EC2 实例类型 。
有关支持的实例类型的信息Amazon GameLift Servers,请参阅 CreateFleet() 请求参数下的
EC2InstanceType
值。 -
从列表中选择一个 Amazon EC2 实例类型。有关选择实例类型的更多信息,请参阅实例类型。创建实例集后无法更改实例类型。
-
选择下一步。
-
在配置运行时系统页面的运行时配置下,执行以下操作:
-
对于启动路径,键入您的构建或脚本中游戏可执行文件的路径。在 Windows 实例上,游戏服务器构建到路径
C:\game
。在 Linux 实例上,游戏服务器的构建到/local/game
。示例:C:\game\MyGame\server.exe
、/local/game/MyGame/server.exe
或MyRealtimeLaunchScript.js
。 -
(可选)对于启动参数,输入要作为一组命令行参数传递给游戏可执行文件的信息。示例:
+sv_port 33435 +start_lobby
。 -
对于并发进程,请选择要在实例集中的每个实例上同时运行的服务器进程数。查看并发服务器进程数量的Amazon GameLift Servers限制
。 对每个实例的并发服务器进程数的限制应用到所有配置的并发进程总数上。如果配置实例集超出限制,实例集无法激活。
-
-
在游戏会话激活下,提供在此实例集中的实例上激活新游戏会话的限制:
-
对于最大并发游戏会话激活,输入实例中同时激活的游戏会话的数量。当启动多个新的游戏会话可能会对在实例上运行的其他游戏会话造成性能影响时,此限制非常有用。
-
对于新激活超时,输入等待会话激活的时长。如果游戏会话在超时之前未
ACTIVE
变为状态,则Amazon GameLift Servers终止游戏会话激活。
-
-
(可选)在 “EC2 端口设置” 下,执行以下操作:
-
选择添加端口设置以定义连接到部署在此实例集上的服务器进程的入站流量的访问权限。
-
对于类型,选择自定义 TCP 或自定义 UDP。
-
对于端口范围,输入允许入站连接的端口号范围。端口范围必须使用格式
nnnnn[-nnnnn]
,值介于 1026 和 60000 之间。示例:1500
或1500-20000
。 -
对于 IP 地址范围,输入 IP 地址的范围。使用 CIDR 表示法。示例:
0.0.0.0/0
(此示例允许尝试连接的任何人的访问。)
-
-
(可选)在游戏会话资源设置下,执行以下操作:
-
对于游戏扩展保护策略,请打开或关闭扩展保护。 Amazon GameLift Servers如果他们正在托管活跃的游戏会话,则不会在缩小规模活动期间终止有保护的实例。
-
对于资源创建限制,输入策略期限内玩家可以创建的最大游戏会话数。
-
-
选择下一步。
-
(可选)通过输入键和值对向构建添加标签。选择下一步继续查看实例集创建。
-
选择 “创建”。 Amazon GameLift Servers为新舰队分配一个 ID 并开始舰队激活过程。您可以在实例集页面上跟踪新实例集的状态。
您可以随时更新实例集的元数据和配置,无论实例集状态如何。有关更多信息,请参阅 更新Amazon GameLift Servers舰队配置。您能在实例集进入 ACTIVE 状态之后更新实例集容量。有关更多信息,请参阅 通过以下方式扩展游戏托管容量 Amazon GameLift Servers。您还可以添加或删除远程位置。
-
- Amazon CLI
-
使用
create-fleet
命令创建计算类型的队列 EC2
。 Amazon GameLift Servers以您当前的默认值创建舰队资源 Amazon Web Services 区域 (或者您可以添加--region标签来指定其他资源 Amazon Web Services 区域)。创建最小托管式实例集
以下示例请求创建了一个新实例集,该实例集具有执行以下操作所需的最低设置:部署一个实例集,其中包含游戏客户端可以连接到的正在运行的游戏服务器。新实例集具有以下特征:
-
它指定了游戏服务器版本,该版本已上传到Amazon GameLift Servers并处于
READY
状态。 -
它使用 c5.large 按需型实例,这种实例的操作系统与所选游戏生成包匹配。
-
它将舰队的总部设置 Amazon Web Services 区域 为该区域,
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 按需型实例,这种实例的操作系统与所选游戏生成包匹配。
-
它将舰队的总部设置 Amazon Web Services 区域 为所在地区
us-west-2
和一个远程位置,并将实例部署到主区域和一个远程位置sa-east-1
。 -
根据运行时配置:
-
实例集中的每个计算运行 10 个具有相同启动参数的游戏服务器进程,这意味着每个计算最多可以同时托管 10 个游戏会话。
-
在每个计算上,仅允许同时激活两个游戏会话。激活的游戏会话必须在 300 秒(5 分钟)内准备好托管玩家,否则会被终止。
-
-
玩家可以使用范围为
33435 to 33535
的端口连接到游戏服务器。 -
实例集中的所有游戏会话都会开启游戏会话保护。
-
单个玩家在 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 命令跟踪实例集的状态并查看其他实例集信息:
您可以使用以下命令,根据需要更改实例集的容量和其他配置设置:
-