借助竞价型实例集降低游戏托管成本
使用 Amazon GameLift Servers 托管式托管服务托管多人游戏服务器时,竞价型实例可作为按需型实例的高性价比替代方案。竞价定价模式提供与按需型定价模式相同的硬件配置和性能表现,但可节省大量成本(高达 70-90%)。不过这些实例存在一项限制:当 AWS 需要回收容量时,可以提前两分钟发送中断通知并回收实例。
Amazon GameLift Servers 降低了游戏服务器托管中断的风险。Amazon GameLift Servers 会预测各类竞价型实例的中断概率,避免在高风险实例上部署游戏会话。如果发生罕见的中断情况,您可借助中断通知为玩家平稳结束当前游戏会话。
Amazon GameLift Servers 如何与竞价型实例集协同工作
为游戏托管设置竞价型实例集后,Amazon GameLift Servers 会持续评估竞价型实例集中实例类型和位置,以确定游戏托管的可行性。
-
竞价型实例可行性算法会按位置分析竞价型实例类型的近期可用性模式和历史中断率。
-
根据此分析,Amazon GameLift Servers 会识别出游戏会话中断风险不可接受的竞价型实例类型和位置。它将执行以下操作:
-
将该实例类型和位置的组合标记为暂时不可行。
-
新增游戏会话时不再考虑这些不可行的竞价型实例集位置,确保游戏会话仅部署在中断风险低、托管稳定性高的竞价型实例集位置。
-
即使 AWS 未主动回收资源,也会逐步下线该竞价型实例集位置的既有实例,避免为无法用于游戏托管的实例付费。如果开启游戏会话保护,实例仅在当前活跃游戏会话结束后才会关闭。
-
-
Amazon GameLift Servers 会持续重新评估您的竞价型实例集中实例类型和位置,以确定游戏托管的可行性。当历史数据更新显示某类曾不可行的实例类型恢复可行时,您可重新纵向扩展该竞价型实例集,Amazon GameLift Servers 也会恢复在该类型实例上部署游戏会话。
设计注意事项
在设计使用竞价型实例集的解决方案时,需考量以下问题:
-
评估游戏会话时长 - 游戏会话的平均时长会影响竞价型实例在游戏中的表现情况。游戏会话时长较短时,快速周转机制可确保游戏会话始终运行在基于最新历史数据判定的可行实例类型上。而时长较长的游戏会话会持续运行在初始实例类型上,不再评估近期可行性数据,随着时间推移面临更高的中断风险。
-
评估实例类型可用性 - 并非所有实例集位置都提供全类型的竞价型实例。为竞价型实例集选择实例类型时,可使用 Amazon GameLift Servers 控制台实例集创建工具来帮助您在所需位置找到竞价型实例类型。使用此工具,您可以选择实例集位置,然后查看这些位置的实例类型可用性。
-
创建多位置竞价型实例集 - 您可以创建具有多个位置的竞价型实例集。单个多位置竞价型实例集会将同类型实例部署至多个 AWS 区域或 Local Zones。竞价型实例可行性算法根据实例类型和位置综合评估可行性。如果某个竞价型实例集位置被评估为不可行,则它不会影响实例集中的其他位置,这些位置仍可正常托管游戏会话。
-
创建具有竞价型实例集多样性的队列 - 如果您使用竞价型实例集托管游戏,则需设置游戏会话放置队列。队列会针对每个新游戏会话请求查找可用游戏托管资源并选择最优方案。针对竞价型实例集,建议队列支持跨多个实例集搜索(覆盖不同位置和实例类型),且至少包含一个按需型实例集作为备份容量。设计完善的多实例集队列可提供多样化放置选项,能有效抵御中断、性能下降及服务中断等风险。有关为竞价型实例设计队列的更多指导,请参阅为竞价型实例构建队列。
-
平移处理中断 - 设置游戏服务器,以最大限度地降低竞价型实例中断对玩家的影响。当 AWS 回收竞价型实例时,Amazon GameLift Servers 会通过服务器 SDK 回调函数
onProcessTerminate()向所有受影响的服务器进程推送终止通知。游戏需实现该回调函数,以平稳结束游戏会话。有关更多信息,请参阅 回应服务器进程关闭通知。注意
AWS 会尽一切努力在回收实例之前提供通知,但 AWS 可能会在警告到达之前回收竞价型实例。您还需配置游戏服务器以应对突发中断情况。
-
为备份实例集配置自动扩缩,保障竞价型实例中断期间的服务连续性。目标跟踪型自动扩缩可保持容量缓冲并根据需求自动扩展。借助自动扩缩,备份实例集(竞价型或按需型)会在收到的游戏会话请求量增加时,自动开始提升容量。
当竞价型实例集判定为不可行时,可借助自定义扩展机制,利用队列及实例集的可用指标触发备份实例集的快速横向扩展,以迅速补充丢失的容量。可通过
FirstChoiceOutOfCapacity、FirstChoiceNotViable和PercentAvailableGameSessions等指标检测竞价型实例集的不可行状态。通过分析近期PlacementsStarted指标数据预估替换容量需求。待备份实例集扩展至满足即时需求后,即可切换回常规自动扩缩模式。 -
与 FlexMatch 集成 - 如果您的解决方案使用 FlexMatch 对战构建器,则对竞价型实例集无特殊要求。您可将对战构建器配置为使用含竞价型实例集的队列。Amazon GameLift Servers 会自动优先处理竞价型实例集和按需型实例集间的对战部署,包括新游戏会话部署及现有游戏会话中空玩家位置的回填操作。