日志记录差异:托管式 EC2 与容器实例集 - Amazon GameLift Servers
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

日志记录差异:托管式 EC2 与容器实例集

托管式 EC2 实例集和容器实例集之间的日志记录行为存在显著差异。在从 EC2 迁移到容器或根据日志记录需求选择合适的实例集类型时,了解这些差异至关重要。

主要区别概述

功能 托管式 EC2 实例集 容器实例集
日志存储 游戏会话结束后自动上传到 Amazon S3 必须配置 Amazon CloudWatch Logs 或自定义日志记录解决方案
GetGameSessionLogUrl API 可用 - 返回用于下载日志的 Amazon S3 URL 不可用 - 日志不会自动存储在 Amazon S3 中
日志保留 在 Amazon S3 中保留 14 天(自动) 取决于日志记录配置
实时监控 有限 - 日志仅在游戏会话结束后可用 可与 Amazon CloudWatch Logs 集成
设置复杂性 自动 - 无需额外配置 需要明确的日志记录配置

托管式 EC2 实例集日志记录

对于托管式 EC2 实例集,Amazon GameLift Servers 提供自动日志管理:

  • 自动上传:游戏会话结束后,服务器日志会自动上传到 Amazon S3

  • GetGameSessionLogUrl API:使用此 API 检索用于从 Amazon S3 下载日志的预签名 URL

  • 14 天保留期:日志在 Amazon S3 中保留 14 天,然后自动删除

  • 大小限制:每个游戏会话的日志文件都有大小限制(请参阅 Amazon GameLift Servers 端点和配额

有关更多信息,请参阅记录服务器消息(自定义服务器)以及 API 参考中的 GetGameSessionLogUrl

容器实例集日志记录

容器实例集需要您明确配置日志记录:

  • 不自动上传到 Amazon S3:日志不会自动上传到 Amazon S3

  • GetGameSessionLogUrl 不可用:此 API 不适用于容器实例集

  • Amazon CloudWatch Logs 集成:将容器配置为向 Amazon CloudWatch Logs 发送日志,以实现集中式日志记录

  • 自定义日志记录解决方案:使用日志驱动程序或附加容器实施自己的日志记录基础架构

  • 实时访问:通过适当的配置,可以在游戏会话期间实时访问日志

有关详细的容器日志记录选项,请参阅容器实例集的工作原理

迁移注意事项

从托管式 EC2 迁移到容器实例集时,请考虑以下日志记录更改:

  • 更新日志检索代码:将 GetGameSessionLogUrl API 调用替换为 Amazon CloudWatch Logs 查询或您的自定义日志记录解决方案

  • 配置日志保留:在 Amazon CloudWatch Logs 或您的日志记录系统中设置适当的保留策略

  • 实现实时监控:利用实时日志访问来提高可观测性

  • 查看日志卷和成本:Amazon CloudWatch Logs 的定价与托管式 EC2 实例集中包含的 Amazon S3 存储不同

对于容器实例集,我们建议采用以下设置:

  1. Amazon CloudWatch Logs 集成:配置您的容器定义以使用 awslogs 日志驱动程序

  2. 结构化日志记录:使用结构化日志格式(JSON)提高可搜索性和分析能力

  3. 日志级别:实施适当的日志级别以控制详细程度和成本

  4. 保留策略:根据您的合规性和调试需求设置保留期