如何 GameLift FleetIQ 工作 - Amazon GameLift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

如何 GameLift FleetIQ 工作

TheThethe GameLift FleetIQ 解决方案是一个游戏托管层,补充了您所获得的全套计算资源管理工具 Amazon EC2 和 Auto Scaling. 除了为游戏托管提供一系列特色功能, GameLift FleetIQ 提供额外的逻辑层,使得游戏托管可以使用低成本的现货实例。此解决方案可让您直接管理 Amazon EC2 和 Auto Scaling 根据需要与其他AWS服务进行资源并进行集成。

使用 GameLift FleetIQ,您准备启动 Amazon EC2 实例:使用您的游戏服务器软件制作亚马逊机器图像(AMI),创建一个 Amazon EC2 启动模板,并定义配置设置 Auto Scaling 组。但是,而不是创建 Auto Scaling 您可以创建 GameLift FleetIQ GameServerGroup Amazon EC2 和 Auto Scaling 资源和配置。此操作提示 GameLift FleetIQ 创建游戏服务器组和相应的 Auto Scaling 组。游戏服务器组链接至并管理其中的 Auto Scaling 组。

在 Auto Scaling 组已创建,您可以完全访问 Amazon EC2 和 Auto Scaling 资源。您可以更改您的 Auto Scaling 组、添加多级扩展策略或负载平衡器,并与其他AWS服务集成。您可以直接连接到组中的实例。作为优化逻辑的一部分, GameLift FleetIQ 也定期更新某些 Auto Scaling 组属性。您可以跟踪由 Auto Scaling 组。

您可以暂时暂停 GameLift FleetIQ 游戏服务器组的活动。您还可以选择删除游戏服务器组,但保留相应的自动缩放组。

GameLift FleetIQ 逻辑

下图说明了 GameLift FleetIQ 在与 Amazon EC2 对于游戏托管。其主要目标是找到 最佳 可能的游戏服务器举办游戏会议,为玩家提供最佳游戏体验。 GameLift FleetIQ 定义 最佳 为最低成本提供最高游戏托管活动的资源。 GameLift FleetIQ 以两种关键方式接近此目标:首先允许只允许存活的实例类型 Auto Scaling 在整个团队的可用资源中有效地将新游戏课程进行分组。


                    GameLift FleetIQ 与  结合使用Amazon EC2

使用最佳实例类型填充 Auto Scaling 组

TheThethe Auto Scaling 团队的工作是启动新实例,然后退出旧实例,维护托管资源集合,并扩展其以满足您的播放器需求。创建游戏服务器组时,您可以定义一个实例类型列表 Auto Scaling 要使用的组。工作 GameLift FleetIQ 是为了持续检查您所需实例类型的可行性,并更新此列表 Auto Scaling 组。这个过程称为实例平衡, GameLift FleetIQ 确保仅在当前可行的实例类型中启动新实例,并且已经停用并替换了非可用实例类型上的现有实例。 GameLift FleetIQ 影响 Auto Scaling 组通过以下方式选择最佳实例类型:

  • A GameLift FleetIQ 游戏服务器组配置了平衡策略,这些策略决定 Auto Scaling 组使用现场或按需实例。由于可用性和潜力波动,现货实例的成本较低中断,限制了 GameLift FleetIQ 最大程度减少托管GameServer的情况。按需实例,虽然更昂贵,但在需要时为您提供更加可靠的可用性。

  • GameLift FleetIQ 实例平衡过程评估游戏服务器组所需的每种实例类型游戏的可行性。此过程使用预测算法,评估实例类型的最近可用性和中断率。如果游戏服务器中断的机会太高, GameLift FleetIQ 从 Auto Scaling 组的所需实例类型列表。

  • GameLift FleetIQ 标识 Auto Scaling 组中当前不可行实例类型的现有实例。这些实例被标记为 排水,这意味着它们被终止,并替换为新实例。对于已启用游戏服务器保护的实例,终止将推迟到任何活动的游戏会话正常结束。

作为 Auto Scaling 集团推出和退休实例,它保持了一个针对游戏托管优化的系列,即使低成本现货实例类型的可用性也有所波动。平衡活动仅在具有活动实例的游戏服务器组上进行。在中了解有关此过程如何工作的详细信息。点平衡过程.

有效地放置游戏会话

GameLift FleetIQ 跟踪游戏服务器组中所有活动的游戏服务器,并使用此信息来确定如何最好地放置新游戏会话和玩家。

要启用 GameLift FleetIQ 跟踪游戏服务器,您的游戏服务器软件必须报告其状态。您的自定义 AMI 控制在每个实例上启动和停止新游戏服务器进程的方式。当新的游戏服务器启动时,它会注册到 GameLift FleetIQ,表示它已准备好承载游戏会话。在注册后,游戏服务器定期报告其运行状况以及当前是否托管游戏会话。当游戏服务器关闭时,它会取消注册 GameLift FleetIQ.

要开始新的游戏会话,您的游戏客户(或匹配者或其他客户服务)将游戏服务器的请求发送到 GameLift FleetIQ... GameLift FleetIQ 定位可用游戏服务器,索赔新游戏会话,并使用GameServerID和连接信息回复。然后,游戏会提示游戏服务器更新其状态,并为进入的玩家启动新的游戏会话。

选择游戏服务器来托管新的游戏会话时,GameLift FleetIQ 使用以下决策过程以通过可行的低成本 Spot 实例优化放置:

  1. 在可能的情况下,GameLift FleetIQ 在已经托管其他游戏会话的实例上放置新的游戏会话。通过打包(但不过载)某些实例并保持其他实例为空闲状态,Auto Scaling 组能够在不需要空闲实例时快速缩减空闲实例,从而降低托管成本。

  2. GameLift FleetIQ 忽略标记为 排水,这是游戏托管不可行的。这些实例仅为持现有的游戏会话而保持运行。除非没有其他游戏服务器可用,否则它们不能用于新的游戏会话。

  3. GameLift FleetIQ 确定在可行的实例上运行的所有可用游戏服务器。

您可以为游戏服务器组启用游戏会话保护,以防止 Auto Scaling 组终止具有正在运行游戏会话的实例。

关键资源和组件

在使用 设置游戏托管资源之前,请在您的 AWS 账户中创建以下资源。GameLift FleetIQ. 作为最佳做法,在通过游戏服务器组使用这些资源之前,使用这些资源开发和测试游戏服务器部署。

  • Amazon 系统映像 (AMI) AMI 是您希望随 Amazon EC2 实例一起启动的特定软件配置的模板。对于游戏托管,AMI 包括操作系统、游戏服务器二进制文件或容器,以及游戏服务器所需的其他运行时软件。有关创建AMI的更多信息,请参阅 Amazon机器图像 在 Amazon EC2 用户指南(适用于 Linux 实例). AMI 是特定于区域的。您可以将AMI从一个区域复制到另一个区域,如所述 复制AMISAmazonEC2用户指南.

  • Amazon EC2 launch-template 启动模板提供了在 Auto Scaling 组中启动和管理实例的说明。它指定 AMI,提供合适的实例类型列表,设置网络、安全性和其他属性。有关创建启动模板的更多信息,请参阅 从启动模板启动实例 AmazonEC2用户指南. 启动模板特定于区域。

  • AWS IAM 角色。 IAM 角色定义了一组允许对 AWS 资源进行有限访问的权限。受信任的实体(如另一个 AWS 服务)可以代入角色并继承其权限。使用 GameLift FleetIQ,您必须提供IAM角色,其中包含一个允许 GameLift FleetIQ 在AWS帐户中创建和访问自动缩放组和ec2实例资源。IAM 角色不是特定于区域的。

GameLift FleetIQ 直接管理以下资源,并对其拥有直接权限。

  • GameLift 游戏服务器组。. 游戏服务器组包含配置设置,其定义如何 GameLift FleetIQ 与相应的 Auto Scaling 集团提供低成本游戏托管。游戏服务器组是区域特定的。当您在某个区域中创建游戏服务器组时,会在同一区域的 AWS 账户中自动创建一个新的 Auto Scaling 组。游戏服务器组与 Auto Scaling 组关联,并且有权(通过担任 IAM 角色)管理和修改其部分设置。游戏服务器组是一个长寿命的资源;开发人员应预期很少创建它们。游戏服务器组也是托管在 Auto Scaling 组中的实例上并注册到 的游戏服务器的功能分组资源。GameLift FleetIQ.

  • GameLift 游戏服务器。 游戏服务器资源表示正在与 GameLift FleetIQ 游戏服务器组关联的实例上运行的游戏执行。当游戏服务器注册时创建此资源 GameLift FleetIQ 并标识其属于的游戏服务器组。 GameLift FleetIQ 跟踪每个已注册游戏服务器的利用率和索赔状态,这使其能够监控游戏服务器的可用性。游戏服务器特定于区域,因为它们与特定于区域的游戏服务器组相关联。当您的游戏请求新的游戏服务器时,它会指定游戏服务器组和区域。

这些资源是通过 GameLift FleetIQ 资源创建的。它们在您的 AWS 账户中创建,您对它们具有完全控制权限。

  • Amazon EC2 Auto Scaling 组 Auto Scaling 组启动和管理 EC2 实例集合,并自动扩展组容量。使用 GameLift FleetIQ,游戏服务器组和 Auto Scaling 组之间存在一对一的关系。虽然您可以更新 Auto Scaling 组的所有设置,但 GameLift FleetIQ 作为其逻辑的一部分定期覆盖和更新某些设置,以平衡 Spot 实例来实现游戏托管可行性。有关详细信息,请参阅 自动调整组Amazon EC2 Auto Scaling 用户指南. Auto Scaling 组是特定于区域的;它们创建在与游戏服务器组相同的区域中。

  • Amazon EC2 实例 实例 是 云中的虚拟服务器。实例类型具有指定计算、内存、磁盘和网络资源的特定硬件配置。它们通常由具有 AMI 的 Auto Scaling 组启动。实例可以是 Spot 或按需实例,具体取决于可用性。通过使用 GameLift FleetIQ,实例可以运行一个或多个游戏服务器进程,每个进程都可以承载多个游戏会话。实例特定于区域,因为它们与特定于区域的 Auto Scaling 组相关联。