日志记录差异:托管式 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 存储不同
推荐的容器日志记录设置
对于容器实例集,我们建议采用以下设置:
-
Amazon CloudWatch Logs 集成:配置您的容器定义以使用
awslogs日志驱动程序 -
结构化日志记录:使用结构化日志格式(JSON)提高可搜索性和分析能力
-
日志级别:实施适当的日志级别以控制详细程度和成本
-
保留策略:根据您的合规性和调试需求设置保留期