本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon GameLift Servers FleetIQ 逻辑
下图说明了的角色 Amazon GameLift Servers FleetIQ 当它与亚马逊合作托 EC2管游戏时。其主要目标是找到最好 的游戏服务器来托管游戏会话,并为玩家提供最佳的游戏体验。Amazon GameLift Servers FleetIQ 将最佳资源定义为那些以最低成本提供最高游戏托管可行性的资源。Amazon GameLift Servers FleetIQ 通过两种关键方式实现这一目标:第一,在 Auto Scaling 组中仅允许可行的实例类型,其次是在该组的可用资源中有效地放置新的游戏会话。

使用最佳实例类型填充自动扩缩组
自动扩缩组的任务是启动新实例并停用旧实例,同时维护托管资源集合并扩展该集合以满足玩家需求。为此,自动扩缩组依赖于您所需的实例类型列表。的工作 Amazon GameLift Servers FleetIQ 就是不断检查这些所需实例类型的可行性,并更新 Auto Scaling 组的列表。此过程称为实例平衡。它可确保自动扩缩组中的实例不断刷新,以便始终仅使用当前可行的实例类型。
Amazon GameLift Servers FleetIQ 影响 Auto Scaling 组如何通过以下方式选择最佳实例类型:
-
它决定竞价型和/或按需型实例的使用情况。网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 Amazon GameLift Servers FleetIQ 游戏服务器组配置了平衡策略,这会影响 Auto Scaling 组使用竞价型和/或按需实例的方式。由于可用性波动和潜在的中断,竞价型实例的成本较低,这些限制包括 Amazon GameLift Servers FleetIQ 最小化游戏服务器托管。按需型实例成本更高昂,但在您需要时可提供更可靠的可用性。
-
它限制新实例只能在可行的实例类型上启动。A Amazon GameLift Servers FleetIQ 游戏服务器组维护着所需实例类型的主列表。实例平衡过程使用预测算法,持续评估列表中每种所需的实例类型,以确定游戏托管的可行性,该算法会查看该实例类型的最新可用性和中断率。作为这次评估的结果,Amazon GameLift Servers FleetIQ 不断更新 Auto Scaling 组的所需实例类型列表,使其仅包括当前可行的实例类型。
-
它会标记不可行的实例类型的现有实例。Amazon GameLift Servers FleetIQ 标识 Auto Scaling 组中当前不可行的实例类型的现有实例。这些实例标记为耗尽,这意味着将终止这些实例并使用新实例替换。对于已启用游戏服务器保护的实例,终止将推迟到任何活动的游戏会话正常结束。
随着自动扩缩组启动和停用实例,它将持续维护针对游戏托管进行优化的集合,即使低成本竞价型实例类型的可用性不断波动也是如此。平衡活动仅在具有活动实例的游戏服务器组上进行。在竞价平衡过程中了解有关此过程如何工作的详细信息。
有效地放置游戏会话
Amazon GameLift Servers FleetIQ 跟踪游戏服务器组中所有活跃的游戏服务器,并使用此信息来确定新游戏会话和玩家的最佳位置。
要启用 Amazon GameLift Servers FleetIQ 要跟踪游戏服务器,您的游戏服务器软件必须报告其状态。您的自定义 AMI 控制在每个实例上启动和停止新游戏服务器进程的方式。当新的游戏服务器启动时,它会注册到 Amazon GameLift Servers FleetIQ,表示它已准备好主持游戏会话。在注册后,游戏服务器定期报告其运行状况以及当前是否托管游戏会话。当游戏服务器关闭时,它会注销注册到 Amazon GameLift Servers FleetIQ.
要开始新的游戏会话,您的游戏客户端(或媒人或其他客户端服务)会将游戏服务器请求发送到 Amazon GameLift Servers FleetIQ. Amazon GameLift Servers FleetIQ 找到可用的游戏服务器,为新游戏会话申领该服务器,然后使用游戏服务器 ID 和连接信息进行响应。然后,游戏会提示游戏服务器更新其状态,并为进入的玩家启动新的游戏会话。
在选择游戏服务器来托管新的游戏会话时,Amazon GameLift Servers FleetIQ 使用以下决策过程来优化可行的低成本 Spot 实例的放置:
-
在可能的情况下,Amazon GameLift Servers FleetIQ 在已经托管其他游戏会话的实例上放置新的游戏会话。通过打包(但不过载)某些实例并保持其他实例为空闲状态,自动扩缩组能够在不需要空闲实例时快速缩减空闲实例,从而降低托管成本。
-
Amazon GameLift Servers FleetIQ 忽略被标记为耗尽的实例,即不适用于游戏托管的实例。这些实例仅为持现有的游戏会话而保持运行。除非没有其他游戏服务器可用,否则它们不能用于新的游戏会话。
-
Amazon GameLift Servers FleetIQ 标识在可行实例上运行的所有可用游戏服务器。
您可以为游戏服务器组启用游戏会话保护,以防止自动扩缩组终止具有正在运行游戏会话的实例。