Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

通过目标跟踪自动扩展

目标跟踪根据单个关键队组指标调整容量级别:“可用游戏会话所占百分比”。该指标衡量当前容量下的可用游戏会话槽数量,也即,可以立即开始的其他游戏会话。实际上,该指标表示队组的缓冲区应对玩家需求激增的情况。

维护容量缓冲区的主要原因是玩家等待时间。当游戏会话槽准备就绪并等待时,可以测量新玩家进入游戏会话所花的时间 (以秒为单位)。如果没有资源可用,玩家必须等待现有游戏会话结束或新资源变为可用。启动新实例和服务器进程可能需要数分钟时间。

在设置目标跟踪时,您只需指定您希望队组维护的缓冲区的大小。由于指标“可用游戏会话所占百分比”衡量可用资源的百分比,因此,实际缓冲区大小为总队组容量的百分比。Amazon GameLift 会添加或删除所需数量的实例以维护目标缓冲区大小。选择缓冲区大小取决于:您如何设定最大程度地减少玩家等待时间相对于控制托管成本的优先级。如果缓冲区较大,则会最大程度地减少等待时间,但您也要为可能未使用的额外资源付费。如果您的玩家更能容忍等待时间,则可通过设置较小的缓冲区来降低成本。

设置目标跟踪 (控制台)

  1. https://console.amazonaws.cn/gamelift/ 打开 Amazon GameLift 控制台。

  2. Fleets (队列) 页面上,单击活动队列的名称以打开队列的详细信息页面。(您也可以通过 Dashboard (控制面板) 访问队列的详细信息页面。)

  3. 打开 Scaling (扩展) 选项卡。此选项卡显示队组的历史扩展指标,并包含用于调整当前扩展设置的控件。扩展设置位于指标图表下方。

  4. Instance Limits (实例限制) 下,请检查最小和最大限制是否适用于队组。启用自动扩展后,容量可能会调整至这两个限制之间的任何级别。

  5. Auto-Scaling Policies (自动扩展策略) 下,选中选项 Maintain a buffer of X percent game session availability (维护 X% 的游戏会话可用性缓冲区)。设置缓冲区大小,然后单击复选标记按钮 以保存自动扩展设置。在您保存设置后,新的基于目标的策略会立即添加到 Scaling policies (扩展策略) 表中。

  6. 要启用队组的自动扩展,请验证选项 Disable all scaling policies in the fleet (在队组中禁用所有扩展策略) 已取消选中。如果选中此选项,您的所有策略 (包括新的目标跟踪策略) 都会被禁用。此状态反映在 Scaling policies (扩展策略) 表中。

设置目标跟踪 (AWS CLI)

  1. 设置容量限制。 使用 update-fleet-capacity 命令设置其中一个限制值,或同时设置这两个限制值。有关帮助信息,请参阅设置容量限制 (AWS CLI)

  2. 创建新策略。 打开命令行窗口,并使用 put-scaling-policy 命令来设定您的策略的参数设置。要更新现有策略,请指定策略的名称并提供完整版本的更新策略。

    --fleet-id <unique fleet identifier> --name "<unique policy name>" --policy-type <target- or rule-based policy> --metric-name <name of metric> --target-configuration <buffer size>

    例如:

    $aws gamelift put-scaling-policy --fleet-id "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa" --name "My_Target_Policy_1" --policy-type "TargetBased" --metric-name "PercentAvailableGameSessions" --target-configuration "TargetValue=5"

    可复制版本:

    $aws gamelift put-scaling-policy --fleet-id "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa" --name "My_Target_Policy_1" --policy-type "TargetBased" --metric-name "PercentAvailableGameSessions" --target-configuration "TargetValue=5"