本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为竞价型实例构建队列
通过使用 Spot 队列,您可以潜在地显著节省托管成本。有关竞价型实例集及其使用方法的更多详细信息,请参阅On-Demand 实例与竞价型实例。
如果您的游戏托管解决方案包括竞价型实例集,则必须使用游戏会话放置队列。Amazon GameLift Servers 使用队列在多个游戏托管资源中进行搜索,并选择最佳资源来托管新游戏会话。对于竞价型实例集,队列对于最大限度地降低托管成本和避免竞价型实例可能出现的中断尤为重要。本主题可帮助您设置弹性队列,即使出现中断、减速和故障,该队列也可以继续为玩家托管游戏。您可以根据多个因素(包括托管成本),自定义队列如何确定可用托管资源的优先级。
您是否在使用 FlexMatch 进行对战? 您可以将队列与竞价型实例集配合使用,以便进行对战游戏会话放置。
实施竞价型实例集任务
在创建或更新您的游戏托管解决方案以便使用竞价型实例集时,请完成以下任务。有关如何构建可优化竞价型实例可用性和弹性的队列的更多详细指南,请参阅借助竞价型实例集降低游戏托管成本。
-
为您的游戏会话队列选择并创建一组实例集目标。
首先决定您想让队列放置游戏会话的位置。队列可以在多个实例集中搜索以找到最佳位置。每个实例集仅包含一种实例类型,但可覆盖多个地理位置。如果队列关联的实例集在位置和实例类型上均具备多样性,则更有可能实现成功的游戏会话放置。请参阅这些设计有效且弹性强的 Spot-optimized 队列的最佳实践。
-
创建 Spot-optimized 游戏会话队列。
创建队列并针对您的竞价型实例集进行配置。请参阅创建游戏会话队列以帮助您创建和配置新队列。您可以使用Amazon GameLift Servers控制台或 AWS CLI 来创建或编辑队列。
-
添加步骤 1 中的实例集目标位置。
-
根据需要确定目标位置的优先顺序。默认情况下,Amazon GameLift Servers 会优先按成本排序,其次才考虑目标区域,因此仅当不同区域间的最低成本相同时,才会根据目标区域顺序进行分配。
-
如果您希望将游戏托管成本的优先级置于玩家延迟之上,请提供自定义放置优先级。请参阅优先考虑游戏会话放置。
-
-
更新解决方案中的其他组件以使用新队列。
当您的解决方案使用 Spot-optimized 队列启动新的游戏会话时,该队列会自动避免与极有可能中断的舰队进行游戏会话。相反,它会在所有可行的实例集中搜索与您定义的优先级相匹配的资源,包括玩家延迟、托管成本和目的地顺序。
-
如果你不使用 FlexMatch — 更新你的后端服务,在游戏会话请求中指定新 Spot-optimized 队列。后端服务代表您的游戏客户端(使用
StartGameSessionPlacement())向 Amazon GameLift Servers 发出 API 请求,并且每个请求都必须指定队列名称。要获得在游戏客户端中实施游戏会话放置的帮助,请参阅创建游戏会话。 -
如果您使用的是 FlexMatch —更新您的配对配置,将游戏会话请求发送到新队 Spot-optimized 列. 当对战系统形成玩家匹配时,它会向指定队列发送游戏会话放置请求,以开始该对战的新游戏会话。只有 FlexMatch 模式设置为“托管”的对战配置才能指定放置队列。你可以使用 AWS CLI 或Amazon GameLift Servers控制台更新配对配置(参见编辑配对配置)。
-
-
评估 竞价型实例集和队列的性能。
在Amazon GameLift Servers控制台中或通过亚马逊查看Amazon GameLift Servers指标 CloudWatch 以查看绩效。有关 Amazon GameLift Servers 指标的更多信息,请参阅 监控 亚马逊 GameLift 服务器 和亚马逊合作 CloudWatch。关键指标包括:
-
中断率 — 使用
InstanceInterruptions和GameSessionInterruptions指标来跟踪实例和游戏会话 Spot-related 中断的次数和频率。回收实例的游戏会话的状态为TERMINATED,状态原因为INTERRUPTED。 -
队列有效性 – 跟踪放置成功率、平均等待时间和队列深度,以确认竞价型实例集不会影响队列性能。
-
实例集使用情况 – 监控有关实例、游戏会话和玩家会话的数据。 On-Demand 队列的使用量可能表明队列避免进入竞价型队列以避免中断。
-
带有竞价型实例集的队列的最佳实操
在为竞价型实例创建实例集和队列时,请使用以下最佳实践。
-
扩大队列的地理覆盖范围。即使您的玩家聚集在一个队列中 AWS 区域,也要将相邻的位置添加到您的竞价舰队中。这种方法提高了队列在区域减速、中断和 Spot 中断期间保持容量的能力。 Multi-location 队列同时使用竞价和 On-Demand 实例。
-
使队列的实例类型覆盖范围多样化。Amazon GameLift Servers 会根据实例类型评估竞价型实例可行性,因此拥有具有各种实例类型的竞价型实例集可以减少多个竞价型实例集同时不可用的可能性。在每个位置至少包括两个具有不同实例类型的竞价型队列。
注意
定价基于您使用的实例,而不是实例集的数量。运行五个队列,每个队列有 10 个实例,与运行 50 个成本相似的实例的实例集相同。定价因实例类型、大小和位置而异。
对竞价型实例类型进行分组的提示:
-
使用同一系列中的实例类型,例如
m6g.medium、m6g.large和m6g.xlarge。实例类型越大,成本越高,但也可以同时托管更多的游戏会话。 -
选择广泛可用的实例类型。通常,旧一代系列(例如 C5、M5 和 R5)和常见规模(例如 .large、.xlarge 和 .2xlarge)具有更好的可用性。
-
在 Amazon GameLift Servers 控制台中查看 30-90 天的定价历史记录。寻找可用性模式一致的实例类型。
-
使用 Amazon GameLift Servers 控制台(实例集创建工具)来探索实例类型的位置覆盖范围。
-
-
为备用容量添加 On-Demand 舰队。每当 Spot 队列不可用时,游戏托管就可以切换到 On-Demand 舰队。在每个位置至少放置一 On-Demand 支舰队,以保持较低的玩家延迟。为您的备份 On-Demand 队列添加自动缩放功能,这样您就可以一直缩小它们的规模,直到需要为止。
-
为所有实例集目的地分配别名。为队列的每个目的地创建别名。别名可以让您在需要更换实例集时更轻松、更高效地操作。
-
应用队列优先级策略。您可以自定义队列如何确定游戏会话放置位置的优先顺序(有关更多详细信息,请参阅优先考虑游戏会话放置)。对于 Spot-optimized 队列,按成本进行优先级排序可确保尽可能使用低成本的 Spot 队列。
您还可以通过指定目的地顺序来确定某些实例集的优先级。例如,一些用户指定一组主实例集供常规使用,并将一组辅助实例集指定为备用。在此情况下,将实例集的目标顺序设置为首先列出主实例集。然后,配置队列的优先顺序,先是目的地,然后是成本。