Detailed Cost Analysis with AWS Cost and Usage Report - Athena Queries and Visualization Pipelines

Analyze resource-level detailed cost data with SQL in Athena and visualize it in Amazon Quick Sight (formerly Amazon QuickSight). This article introduces CUR 2.0 data exports and how to build an analytics foundation.

Overview of CUR

Cost and Usage Report (CUR) is a report that provides the most detailed cost data in AWS. Whereas Cost Explorer provides an aggregated view, CUR delivers line-item data at the resource ID level to S3. You can analyze the cost of each EC2 instance, each S3 bucket, and each Lambda function individually.

Athena Queries and Visualization

If you deliver CUR to S3 in Parquet format and create a table with a Glue crawler, you can run SQL queries in Athena. Queries such as "the top 10 EC2 instances with the highest cost last month," "the total cost of untagged resources," and "the effective discount rate of Savings Plans" make detailed analysis possible that you cannot get from Cost Explorer. You build a dashboard in Quick Sight with Athena as the data source and share cost reports by team / by project with automatic updates.

CUR 2.0 and Data Exports

CUR 2.0 (Data Exports) evolves the traditional CUR and provides output in Parquet format, column selection, and SQL-based filtering. By exporting only the columns you need, you can reduce the amount of S3 storage and the Athena scan cost. With resource-level line items, you identify the cost of individual EC2 instances and S3 buckets, and you also track the cost of resources that have no tags. You analyze the application status of Savings Plans and RIs (coverage, utilization, effective rate) from the CUR columns and use it to optimize purchase options. If you output CUR from the consolidated billing account of Organizations, you can analyze the costs of all member accounts in one report.

Building a CUR Analytics Foundation

If you deliver CUR to S3 in Parquet format and create a table with a Glue crawler, you can run SQL queries in Athena. You build dashboards in Quick Sight to visualize cost trends by service, cost allocation by tag, and Savings Plans coverage. Because the volume of CUR data reaches several GB per month in large-scale environments, you move old reports to Glacier with S3 lifecycle rules. You optimize Athena query costs with Parquet format and partitions (year/month) and avoid full scans. CUDOS (Cost and Usage Dashboards Operations Solution) is a Quick Sight dashboard template provided by AWS, and it lets you build a CUR analytics foundation quickly.

CUR Pricing

Generating CUR itself and delivering it to S3 are free. The costs that arise are S3 storage charges and Athena query charges. The volume of CUR data is proportional to the number of resources in the account, and in large-scale environments it ranges from several GB to several tens of GB per month. Athena queries cost about $5.00 per TB scanned, and you can significantly reduce the amount scanned with Parquet format and columnar partitioning (as of August 2026). Quick Sight SPICE storage includes 10 GB for Authors, and additional storage costs about $0.25 per GB per month.

Choosing Between CUR and Cost Explorer

There are two options for cost analysis, Cost Explorer and CUR, and you choose between them depending on your purpose. Cost Explorer is suited to quickly checking an aggregated view, and it fits everyday trend tracking and checking purchase recommendations. CUR, on the other hand, is the most detailed data, containing all line items at the resource level, and you use it when you need analysis at a granularity that Cost Explorer cannot reach. A practical division of roles is to look over the whole picture with Cost Explorer day to day and to use CUR and an analytics foundation in situations where you dig into specific costs or build your own reports.

Understanding the Granularity of Line-Item Data

To analyze CUR correctly, understanding the structure of the data is essential. Each row represents a usage line item, and items such as usage, charges, applied discounts, and the identifier of the target resource are arranged as columns. Amortized amounts, which spread the discount of a commitment purchase evenly over its term, look different from the amounts actually billed, so you choose the columns to refer to according to your purpose. If you use the tag columns, allocation by project or environment is also possible. By grasping what each column means, you can avoid incorrect aggregation and arrive at reliable analysis.

Using CUR for FinOps

CUR becomes the foundation for practicing FinOps, which embeds cost awareness in an organization. You can visualize costs by team or project and build mechanisms such as showback, which shows each department its usage, and chargeback, which actually allocates expenses. You analyze cost trends and their drivers monthly and quantitatively track the effects of reducing waste and optimizing purchases. When you detect an abnormal cost increase, you can trace back to the CUR line items and identify the resource that caused it. The essential value of CUR is that, with detailed data as its base, it supports a culture of continuously managing / improving costs.

Summary

CUR is a report that provides resource-level detailed cost data. You export data efficiently with the column selection and SQL filtering of CUR 2.0 and run SQL queries in Athena. You build custom dashboards in Quick Sight and achieve advanced cost analysis that includes Savings Plans coverage and RI utilization.

References (Official AWS Resources)

The primary sources for this page are the official AWS website and documentation. Check the official pages below for the latest specifications and pricing.

If this page and the official documentation disagree, treat the official documentation as authoritative.

Share