使用 AWS Cost and Usage Report 进行详细成本分析 - Athena 查询与可视化管道
通过 Athena 对资源级别的详细成本数据进行 SQL 分析,并用 QuickSight 可视化。介绍 CUR 2.0 的数据导出和分析基础设施的构建方法。
CUR 概述
Cost and Usage Report(CUR)是提供 AWS 最详细成本数据的报告。Cost Explorer 提供汇总视图,而 CUR 将资源 ID 级别的明细数据配送到 S3。可单独分析每个 EC2 实例、每个 S3 存储桶、每个 Lambda 函数的成本。
Athena 查询与可视化
将 CUR 以 Parquet 格式配送到 S3,通过 Glue 爬虫创建表后,即可在 Athena 中执行 SQL 查询。"上月成本最高的前 10 个 EC2 实例""未设置标签的资源成本总计""Savings Plans 的实际折扣率"等查询可实现 Cost Explorer 无法获得的详细分析。通过 QuickSight 连接 Athena 数据源构建自定义仪表板。 关于成本报告的详细信息,可参考相关书籍 (Amazon)。
CUR 2.0 与数据导出
CUR 2.0(Data Exports)是传统 CUR 的进化版,提供 Parquet 格式输出、列选择和基于 SQL 的过滤。通过仅导出所需列,可减少 S3 存储量和 Athena 扫描成本。资源级别的明细可确定各 EC2 实例和 S3 存储桶的成本,识别未标记的资源并推动标签治理。
CUR 的分析基础设施构建
将 CUR 以 Parquet 格式配送到 S3,通过 Glue 爬虫创建表后在 Athena 中执行 SQL 查询。在 QuickSight 中构建仪表板,可视化服务别成本趋势、标签别成本分配和 Savings Plans 覆盖率。大规模环境中 CUR 数据量每月可达数 GB,通过 S3 生命周期规则将旧报告转移到 Glacier 以管理存储成本。分区策略按年/月分区可大幅减少 Athena 的扫描量。
CUR 的费用
CUR 本身的生成和 S3 配送免费。产生费用的是 S3 存储费用和 Athena 查询费用。CUR 数据量与账户的资源数成正比,大规模环境每月可达数 GB 到数十 GB。Athena 查询每 TB 扫描约 5.00 美元,通过 Parquet 格式和列式分区可大幅减少扫描量。QuickSight 的费用根据用户数和 SPICE 容量另行计算。
总结
CUR 是提供资源级别详细成本数据的报告。通过 CUR 2.0 的列选择和 SQL 过滤高效导出数据,在 Athena 中执行 SQL 查询。通过 QuickSight 构建自定义仪表板,实现包含 Savings Plans 覆盖率和 RI 利用率的高级成本分析。