使用 AWS Cost and Usage Report 进行详细成本分析 - Athena 查询与可视化管道
用 Athena 对资源级别的详细成本数据进行 SQL 分析,并在 Amazon Quick Sight(旧称 Amazon 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 中无法得到的详细分析。在 Quick Sight 中以 Athena 为数据源构建仪表板,并以自动更新的方式共享按团队 / 按项目的成本报告。
CUR 2.0 与数据导出
CUR 2.0(Data Exports)是传统 CUR 的进化版,提供 Parquet 格式的输出、列的选择以及基于 SQL 的筛选。通过只导出所需的列,可以减少 S3 的存储量和 Athena 的扫描成本。借助资源级别的明细,确定各个 EC2 实例和 S3 存储桶的成本,并且也追踪未添加标签的资源的成本。从 CUR 的列中分析 Savings Plans 和 RI 的应用情况(覆盖率、利用率、实际费率),并用于优化购买选项。如果从 Organizations 的合并账单账户输出 CUR,就可以在 1 份报告中分析所有成员账户的成本。
构建 CUR 分析基础
将 CUR 以 Parquet 格式传送到 S3,并用 Glue 爬网程序创建表后,就可以在 Athena 中执行 SQL 查询。在 Quick Sight 中构建仪表板,将按服务的成本变化、按标签的成本分配、Savings Plans 的覆盖率可视化。由于在大规模环境中 CUR 的数据量每月会达到数 GB,因此通过 S3 的生命周期规则将旧报告迁移到 Glacier。通过 Parquet 格式和分区(年/月)优化 Athena 的查询成本,避免全表扫描。CUDOS(Cost and Usage Dashboards Operations Solution)是 AWS 提供的 Quick Sight 仪表板模板,可以快速构建 CUR 的分析基础。
CUR 的费用
CUR 本身的生成和向 S3 的传送是免费的。产生费用的是 S3 的存储费用和 Athena 的查询费用。CUR 的数据量与账户的资源数量成正比,在大规模环境中每月为数 GB 到数十 GB。Athena 的查询费用为每扫描 1 TB 约 5.00 美元,通过 Parquet 格式和列式分区可以大幅减少扫描量(截至 2026 年 8 月)。Quick Sight 的 SPICE 存储为 Author 包含 10 GB,追加部分为每 GB 每月约 0.25 美元。
与 Cost Explorer 的选用
成本分析有 Cost Explorer 和 CUR 两种,根据目的选用。Cost Explorer 适合快速查看汇总后的视图,适用于日常的趋势把握和购买推荐的确认。另一方面,CUR 是包含资源级别全部明细的最详细的数据,在需要 Cost Explorer 无法达到的粒度的分析时使用。平时用 Cost Explorer 纵览全局,在深入挖掘特定成本或制作独有报告的场景中使用 CUR 和分析基础,这样的角色分工是务实的。
理解明细数据的粒度
要正确分析 CUR,理解数据的结构必不可少。每一行表示一条使用明细,使用量、费用、所应用的折扣、目标资源的标识符等作为列排列。将承诺购买的折扣按期间均摊分配的摊销金额与实际的账单金额看起来不同,因此根据目的选择参照的列。如果使用标签的列,也可以按项目或环境进行分摊。通过掌握每一列的含义,可以避免错误的汇总,并得出可靠的分析。
在 FinOps 中的运用
CUR 会成为让组织扎根成本意识的 FinOps 的实践基础。可以按团队或项目将成本可视化,构建向各部门展示使用情况的 showback,以及实际分配费用的 chargeback 等机制。每月分析成本的变化和原因,定量追踪削减浪费和购买优化的效果。检测到异常的成本增长时,可以追溯到 CUR 的明细,确定导致问题的资源。以详细数据为基础,支撑持续管理 / 改进成本的文化,是 CUR 本质上的价值。
总结
CUR 是提供资源级别详细成本数据的报告。利用 CUR 2.0 的列选择和 SQL 筛选高效地导出数据,并在 Athena 中执行 SQL 查询。在 Quick Sight 中构建自定义仪表板,实现包括 Savings Plans 覆盖率和 RI 利用率在内的高级成本分析。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。