概览
工作原理
这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。
Well-Architected 支柱
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
Amazon GameLift 可在全球范围内管理游戏服务器实例集,并在每个位置提供高可用性配置,让您可以配置游戏服务器实例集的扩展和运行方式。API Gateway、Lambda 和 DynamoDB 等无服务器服务可通过代您管理底层基础设施来减少运营工作量,让您可以专注于代码和配置。通过使用 CloudWatch 监控本指南的所有组件(包括指标和日志),您可以近乎实时地调查瓶颈或错误。
API Gateway 支持使用游戏客户端提供的 JSON Web 令牌和自定义身份组件提供的公有密钥对验证用户身份的请求进行身份验证。身份验证有助于确保玩家访问后端 Lambda 函数数据时身份属实。
Amazon GameLift 通过在多个可用区(AZ)托管游戏服务器实例,在所有区域提供高可用性。它还将自动替换任何失败的游戏服务器进程或实例。
匹配工单的 DynamoDB 表可以随着玩家负载的增加自动水平扩缩。DynamoDB 还托管在该区域的多个可用区中。匹配工单被视为是临时性的(并且会在 3 小时后自动删除),因此您无需在表中进行备份。
对于任何可用性问题的通知,除了 API Gateway 和 Lambda 层上的任何错误外,我们建议对来自 Amazon GameLift 游戏服务器的相应指标实施 CloudWatch 警报。
Amazon GameLift 可以实现客户端与服务器的直接通信,以优化近乎实时的性能。使用该架构图,开发人员可以使用 Amazon GameLift 在多个区域托管游戏服务器,从而减少游戏客户端和服务器之间的延迟。DynamoDB 会存储匹配结果,让您能够以个位数毫秒级的响应时间大规模检索这些结果。
DynamoDB 生存时间(TTL)特征于 3 小时后从您的表中删除项目,并且不会消耗任何写入吞吐量。如此,您便有足够的时间在需要时获得项目,同时又最大限度地减少了不必要存储的总体成本。
亚马逊 GameLift 允许您组合使用亚马逊弹性计算云 (亚马逊 EC2) 按需实例和竞价型实例。在同一个 Amazon GameLift 队列之后配置按需实例集和竞价型实例集有助于通过 Amazon GameLift 的内置竞价型优化算法降低成本,该算法在竞价型可用时优先选择竞价型。
Amazon GameLift 要求每个区域至少有一个实例,以提供适当的响应时间并启动服务扩展,但在流量较低时可以将位置扩展到 1,在开发和测试环境中可以扩展到 0。
此外,后端使用的无服务器服务(包括 DynamoDB、Lambda 和 API Gateway)可以根据需求进行扩展以匹配所需容量,从而减少了本指南的计算占用空间。
自信地进行部署
为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。
免责声明
找到今天要查找的内容了吗?
请提供您的意见,以便帮助我们提高页面内容的质量