亚马逊AWS官方博客

Amazon GameLift FleetIQ 与竞价型实例 – 最高节约 90% 的游戏服务器托管成本

Amazon GameLift 是一种云运行时环境,面向基于会话的多玩家游戏,具有扩展性好的特点。您只需上传游戏包,告诉 Amazon GameLift 需要托管哪种类型的 EC2 实例,即可放手让 Amazon GameLift 设置会话以及维护大小适中的 EC2 实例 Fleet。这种自动扩展功能可让您容纳不断变化的需求,同时又无需在低谷时段预留计算资源。

使用竞价型实例

上周,我们增加了一项新的功能,以进一步降低在 Amazon GameLift 上托管游戏时的每玩家每小时成本。在推出该功能前,Amazon GameLift 实例始终以按需实例的方式启动。此类实例始终按固定价格收费,详见 Amazon GameLift 定价页面。

而现在您可以在 GameLift Fleet 中使用 Amazon GameLift 竞价型实例。这些实例属于未使用容量,价格将会不时上涨和下降。虽然具体结果可能各有差异,但与按需实例相比,您最高可节约 90% 的成本。

竞价型实例不仅是一个简单的省钱利器,此外还有许多其他有意义的使用案例。每个游戏都它的生命周期,在您最终拔掉插头,停止服务器前,总有忠诚的玩家在玩。您可以创建由低成本竞价型实例组成的 Amazon GameLift Fleet,尽可能保持游戏始终在线,但又避免成本涨上天。在这一切的幕后,Amazon GameLift 队列综合使用竞价型实例和按需实例,平衡价格和可用率,以让您以最低的成本获得最佳的服务。

如我以前所提到,竞价型实例代表未被按需实例使用的容量。在此容量下降时,现有的竞价型实例可能会在两分钟通知中断,然后终止。但幸好又大量的容量,从统计上看,终止的情形十分罕见。为了进一步降低终止的频率,Amazon GameLift 队列现在包含了一项新的功能,我们称之为 FleetIQ。

FleetIQ 以竞价型实例的历史定价和终止数据为依托,加上在选择实例类型上采取非常保守的策略,进一步降低了任何特定游戏将被通知和中断的几率。 游戏服务器进程中的 onProcessTerminate 回拨功能将在相关竞价型实例将要中断时激活。这时您有两分钟的时间来关闭游戏,保存日志,释放资源,并通告其他方式重新启动。在执行这一操作时,您可以调用 GetTerminationTime 来查看剩余多少时间。

创建 Fleet

如要利用竞价型实例和 FleetIQ,您可以使用 Amazon GameLift 控制台或 API 设置由多个竞价型实例和按需实例 Fleet 组成的队列。为每个队列添加更多的 Fleet,将可为 FleetIQ 提供更多选项以提高在延迟、中断率和成本方面的性能。如要在某个实例上启动新的游戏会话,FleetIQ 会首先选择对所有玩家而言延迟最低的区域,然后选择中断率和成本最低的 Fleet。

下面我们来看详细过程。我将按如下顺序创建一个按需实例 Fleet 和一个竞价型实例 Fleet:

以及:

我会在验证和激活 Fleet 期间快速休息一下:

然后我会为游戏创建一个队列。我选择将作为队列目的地的 Fleet:

如果我搭建的游戏将拥有全球性的用户基础,我可以在额外的 AWS 区域创建 Fleet,使用将让游戏会话在适当的区域创建的玩家延迟策略:

如要了解更多关于此功能的信息,请参阅竞价型 Fleet 集成指南

现已开放

您现在可以使用 Amazon GameLift 竞价型实例 Fleet 来托管基于会话游戏!看一看,试一试,然后告诉我您的意见。

如果您计划参加今年的 GDC,请多来 1001 展厅转转。请访问我们的 GDC 2018 网站,了解更多有关我们的开发日交流、课堂会话和展厅展示的信息。

Jeff