View a markdown version of this page

为托管式实例集选择计算资源 - 亚马逊 GameLift 服务器

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

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

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

注意

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

地理位置

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

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

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

Multi-location 舰队

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

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

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

  • 本地区域可用性 — 如果要使用本地区域,则必须创建一个多地点舰队,将本地区域设为远程 AWS 区域 位置。本地区域是它的扩展 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 版本的更多信息,请参阅亚马逊 GameLift 服务器 AMI 版本。

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

实例类型

托管式实例集的实例类型决定了为所有实例集部署的硬件类型,并且实例类型通常有多种规格可供选择。所有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 或更高版本。这些实例不为在 Amazon Linux 2023(AL2023)或 Amazon Linux 2(AL2)上安装 Mono 提供开箱即用的支持。

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

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

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

On-Demand 实例与竞价型实例

Amazon EC2 On-Demand 实例和竞价型实例提供相同的硬件和性能,但它们的可用性和成本不同。

On-Demand 实例

您可以在需要时获取一个 On-Demand 实例,并根据需要将其保留多长时间。 On-Demand 实例具有固定成本,这意味着您只需为使用它们的时间付费。无长期承诺。

竞价型实例

通过利用未使用的 AWS 计算容量,竞价型实例可以为 On-Demand 实例提供具有成本效益的替代方案。竞价型实例价格根据每个地点每种实例类型的供需而波动。 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 团队使用发布问卷来确定您的游戏的正确配额和限制。