为托管式实例集选择计算资源 - Amazon GameLift Servers

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

为托管式实例集选择计算资源

对于托Amazon GameLift Servers管主机(包括托管 EC2 和托管容器),该服务会将您的游戏服务器部署到中的计算资源队列中。 AWS 云创建托管式实例集时,您需要配置最适合您游戏的托管资源。本主题讨论了选择和配置游戏托管式实例集时的关键决策点。

注意

如果您要同时使用 Anywhere 和 Amazon GameLift Servers 托管式实例集构建混合解决方案,请使用这些主题来设计托管式实例集,以补充您自己的自管理资源。请参阅为 Amazon GameLift Servers 部署托管实例集

地理位置

考虑一下您计划部署游戏服务器的位置。通常,为提供最佳玩家体验,应将游戏服务器部署在尽可能靠近玩家的位置。对于托Amazon GameLift Servers管主机,您可以选择将游戏服务器放置在任何支持的区域 AWS 区域 和 Local Zones 中。如果您正在构建混合解决方案,请考虑托管式实例集部署如何能够补充您自行管理的 Amazon GameLift Servers Anywhere 实例集的部署位置。

对于大多数开发和测试场景,部署到单一位置即可满足需求。当您为游戏发布及后续运营做准备时,选择跨多个地理位置部署则具有多重优势,包括为广泛的玩家群体提供支持,以及提高游戏托管的整体弹性和可靠性。此外,多位置部署还能加快游戏会话放置速度,并在针对延迟和成本优化放置时提供更多选择,从而提升玩家体验。

有关 Amazon GameLift Servers 支持的位置列表以及关于所有实例集类型的位置的更多信息,请参阅 Amazon GameLift Servers 服务位置

多位置实例集

单个托管式实例集可以将资源部署到多个位置。您可以针对多位置实例集中的每个独立位置,手动设置容量。

使用多位置实例集的优势:

  • 简化实例集部署和管理:您只需提供游戏服务器软件和实例集配置,然后 Amazon GameLift Servers 会将其部署到多个位置的实例集实例(一次构建,随处部署)。在生产实例集中,您可以查看和管理实例集中的所有位置,而不必管理位于不同区域的多个实例集。

  • 本地区域可用性-如果要使用本地区域,则必须创建多地点舰队,将 AWS 区域 总部位置和本地区域作为远程位置。Local Zones 是它的扩展 AWS 区域 ,可以为有需要的区域和客户提供更低的延迟。您可以将 Local Zones 添加到任何多位置实例集中;无需包括 Local Zones 的父 AWS 区域。

  • 与游戏会话队列兼容:您可以构建包含一个或多个多位置实例集的游戏会话放置队列。此方法使队列在优先选择和确定用于托管新游戏会话的位置时更具灵活性。

  • 高效的资源利用率:开启自动扩缩功能后,Amazon GameLift Servers 可以更好地优化实例集中所有位置的容量扩展。

使用多位置实例集的提示:

  • 查看每个 AWS 区域 或车队的位置数量的配额。请参阅 Amazon GameLift Servers 服务限额

  • 并非所有实例类型都在所有位置可用。实例类型选择可能有限,具体取决于您选择的位置。Amazon GameLift Servers 控制台提供了有用的工具,可帮助您在位置和实例类型之间找到适当的平衡。

  • 考虑使用 UDP ping 信标来收集所有实例集位置的玩家延迟数据。Amazon GameLift Servers 可以使用这些数据来优化游戏会话以实现低延迟,并防止玩家加入延迟过高的会话。这些特殊端点接受 UDP 消息,而不是传统的 ICMP ping 消息,同时提供准确的延迟测量,有助于您选择最佳实例集位置。

操作系统

托管式实例集中的所有实例均使用亚马逊机器映像(AMI)进行部署,该映像可为游戏服务器软件提供完整的运行时环境。对于托管 EC2队列,您可以在将游戏服务器版本上传到Amazon GameLift Servers时指定游戏服务器版本的操作系统。对于托管式容器实例集,您可以在容器组定义中指定操作系统。有关最新 AMI 版本的更多信息,请参阅Amazon GameLift Servers AMI 版本

AMI 版本会定期更新。创建新实例集时,Amazon GameLift Servers 会分配您为游戏生成包选择的 AMI 的最新可用版本。部署在该实例集中的所有实例都使用相同的版本。要使您的 AMI 版本与最新的安全和软件更新保持同步,您需要定期更换实例集。作为最佳实践,我们建议每 30 天更换一次托管式实例集,以便为游戏服务器维护运行时环境。有关指南,请参阅Amazon GameLift Servers 的安全最佳实践

实例类型

托管式实例集的实例类型决定了为所有实例集部署的硬件类型,并且实例类型通常有多种规格可供选择。所有Amazon GameLift Servers托管队列都使用 Amazon EC2 实例,并支持多种实例类型,这些实例类型提供计算能力、内存、存储和联网功能的不同组合。实例类型的可用性因您选择的位置而异。

Amazon GameLift Servers 控制台提供了有用的工具,可帮助您找到适合游戏生成包和部署位置的正确实例类型。对于托管式容器实例集,控制台还提供有关游戏的 CPU 功率和内存要求的指导。

在为您的游戏选择可用实例类型时,请考虑:

  • 游戏服务器的计算架构:x64 或 Arm(AWS Graviton)。

    注意

    Graviton Arm 实例需要一个针对 Linux AMI 的服务器生成包。C++ 和 C# 需要服务器软件开发工具包 5.1.1 或更高版本。Go 需要服务器软件开发工具包 5.0 或更高版本。这些实例不 out-of-the-box支持在亚马逊 Linux 2023 (AL2023) 或亚马逊 Linux 2 (AL2) 上安装 Mono。

  • 您的游戏服务器构建的计算、内存和存储要求。

  • 您的实例类型的大小。除了满足游戏服务器软件可执行文件的要求外,更大的实例类型还可以在每个实例上运行多个游戏服务器进程 and/or 容器。需要考虑的因素包括成本(运行少量大型实例与运行多个小型实例相比,哪种方案更经济)。还要考虑在实例集扩展事件期间,或关闭运行状况不佳的实例时,实例的增减可能会对游戏会话容量产生何种影响。如果每个实例同时运行多个游戏服务器进程,则添加或移除实例可能会严重影响游戏托管容量。

有关实例类型的更多信息,请参阅 Amazon EC2 实例类型

按需型实例和竞价型实例

Amazon EC2 按需实例和竞价型实例提供相同的硬件和性能,但它们在可用性和成本上有所不同。

按需型实例

您始终可以在需要按需型实例时获取它并将它保存任意长的时间。按需型实例具有固定成本,意味着您只需为使用这些实例的时间量付费。无长期承诺。

竞价型实例

通过利用未使用的 AWS 计算容量,竞价型实例可以为按需实例提供经济实惠的替代方案。竞价型实例的价格根据每个地点每种实例类型的供需情况而波动。 AWS 只要竞价型实例需要恢复容量,就可以在两分钟通知的情况下回收竞价型实例,并且在回收的实例上正在运行的游戏会话会被中断。

Amazon GameLift Servers 提供了多种工具,可帮助降低竞价型实例中断对您游戏会话造成影响的可能性。竞价可行性算法会跟踪实例类型的历史数据,以预测中断风险何时达到临界点,并避免在该类型的竞价型实例上放置新的游戏会话。如果确实发生了中断,您的游戏服务器可以使用通知正常结束玩家的游戏会话。

使用竞价型实例集托管游戏时,必须通过队列来放置游戏会话。队列可以根据竞价型实例集的可行性、成本和其他因素来确定游戏会话放置的优先级。有关如何利用竞价型实例托管游戏服务器的更多信息,请参阅以下主题:

服务配额

您可以使用以下工具查看 Amazon GameLift Servers 的默认服务配额和 AWS 账户 的当前配额状态:

  • 有关 Amazon GameLift Servers 的通用服务配额信息,请参阅《AWS 一般参考》中的 Amazon GameLift Servers 端点和配额

  • 要查看账户每个位置的可用实例类型列表,请打开 Amazon GameLift Servers 控制台的服务配额页面。该页面还会显示您的账户在每个位置的每种实例类型的当前使用情况。

  • 要查看您的账户当前每个区域的实例类型配额列表,请运行 AWS Command Line Interface (AWS CLI) 命令describe-ec2-instance-limits。此命令返回您在默认区域(或您指定的其他区域)中拥有的活动实例数量。

在准备发布游戏时,请在 Amazon GameLift Servers 控制台中填写发布问卷。Amazon GameLift Servers 团队使用发布问卷来确定您的游戏的正确配额和限制。