亚马逊 GameLift FleetIQ 最佳实践 - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊 GameLift FleetIQ 最佳实践

亚马逊 GameLift FleetIQ 是一个低级逻辑层,可帮助您管理用于游戏托管的 Amazon EC2 资源。特别是,Amazon GameLift FleetIQ 通过最大限度地减少游戏会话中断的几率,优化了适用于游戏托管的 Spot 实例的使用。它还提供基本的游戏托管功能,以跟踪可用的游戏服务器,并将游戏路由到低成本、高可行性的游戏服务器。

Amazon GameLift FleetIQ 作为一项独立功能不提供完全托管的亚马逊GameLift解决方案所提供的高级功能,该解决方案还使用 FleetIQ 来最大限度地降低托管成本。如果您需要配对、基于延迟的玩家路由、游戏会话和玩家会话管理以及版本控制等功能,请查看亚马逊解决方案。GameLift

以下是一些最佳实践,可以帮助您从亚马逊 GameLift FleetIQ 中获得最大收益。

  • 将亚马逊 GameLift FleetIQ 用于基于会话的游戏。Amazon GameLift FleetIQ 在不断将玩家引导到不太可能出现游戏会话中断的实例时效果最佳。维持长时间的会话会干扰 Amazon F GameLift leetIQ 平衡过程,这会增加游戏会话中断的可能性。理想的工作流程是让玩家从对战(或服务器选择)到进入游戏。游戏结束后,玩家会返回到对战,并路由到新实例上的另一个游戏服务器。对于会话时间少于两小时的游戏,我们建议使用亚马逊 GameLift FleetIQ。

  • 提供多种实例类型以供选择。设置游戏服务器组时,您提供要使用的实例类型列表。您包含的实例类型越多,Amazon GameLift FleetIQ 使用具有高可行性的竞价型实例进行游戏托管的灵活性就越大。例如,您可以列出同一个实例系列中的多种大小(c5.large、c5.xlarge、c5.2xlarge、c5.4xlarge)。对于大型实例,您可以在每个实例上运行更多的游戏服务器,从而可能降低成本。对于小型实例,自动缩放可以更快地响应玩家需求的变化。请记住,所需实例类型列表未按优先顺序排列,Auto Scaling 组将使用可行实例类型的平衡来维持组的弹性。

  • 在所有实例类型上测试您的游戏。确保游戏服务器在为游戏服务器组配置的每个实例类型上正常运行。

  • 使用实例容量加权。如果您将游戏服务器组配置为使用某个实例大小范围(如 c5.2xlarge、c5.4xlarge、c5.12xlarge),请包括每种实例类型的容量加权信息。有关更多信息,请参阅 Amazon EC2 自动扩展用户指南中的 Amazon EC2 自动扩展的实例权重

  • 使用亚马逊 GameLift FleetIQ 进行游戏会话。在游戏服务器上放置一组玩家时,请使用 Amazon GameLift API ClaimGameServer()。Amazon GameLift FleetIQ 避免将玩家置于游戏会话中断几率更高的实例上。

  • 向亚马逊 GameLift FleetIQ 报告游戏服务器状态。使用 Amazon GameLift API 定期报告服务器运行状况和利用率状态UpdateGameServer()。保持准确的游戏服务器状态有助于 Amazon GameLift FleetIQ 提高游戏效率。它还有助于避免在竞价平衡活动期间终止游戏处于活跃状态的实例。

  • 设置自动扩展策略。您可以创建目标跟踪扩展策略,以根据玩家利用情况和预期需求维护您的主机容量。Amazon GameLift FleetIQ 指标PercentUtilizedGameServers用于衡量您的主机容量当前正在使用多少。大多数游戏希望维护未使用的游戏服务器的缓冲区,以便新玩家能够快速进入游戏。您可以创建一个保持特定缓冲区大小的扩展策略,随着玩家需求的波动添加或删除实例。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的目标跟踪扩展策略

  • 在开发和生产环境中使用不同的Amazon帐户。跨账户将您的开发配置与生产配置分开,可以减少影响现场玩家的配置错误风险。

  • 为使用中的游戏服务器组启用游戏会话保护。为了保护您的玩家,请开启游戏会话保护,防止活跃的游戏会话因缩放或平衡活动而提前终止。

  • 在将您的游戏与亚马逊 GameLift FleetIQ 集成之前,请先在 EC2 上测试您的游戏。我们建议首先您在 EC2 上启动并运行您的游戏来进行调整。然后,您可以使用相同的启动模板和 AMI 创建游戏服务器组。

    如果您使用的是 Kubernetes,我们建议您首先将标准 EC2 实例添加到 Kubernetes 集群中,然后使用您在 Kubernetes 集群中为工作线程节点创建的启动模板来创建游戏服务器组。如果您使用的是 EKS,请单独创建 EKS 集群和游戏服务器组。对于游戏服务器组,请将 EKS 优化的 AMI 与合适的用户数据以及用于 EKS 集成的启动模板配置结合使用。在 Amazon EKS 优化 Linux AMI 指南中可查看有关 EKS 工作线程节点和 EKS 优化 AMI 的更多信息。

  • 使用游戏服务器组平衡策略来ON_DEMAND_ONLY获得可靠的游戏服务器可用性。这种平衡策略生效后,不使用竞价型实例。这是一个有用的工具,可在您最需要时确保服务器的可用性,例如在功能发布或其他特殊活动期间。您可以根据需要将游戏服务器组从 Spot 策略切换到按需策略。

另请查看以下Amazon最佳实践: