AWS Cost and Usage Report
The most detailed AWS billing data: CUR 2.0 exports in AWS Data Exports, hourly line items with resource IDs and tags, delivery to S3, querying with Athena, Redshift, and Quick Sight, access, and cost.
6 min read · Last reviewed · SAA-C03
Sign in to bookmark tutorials and track what you have read.
On this page
What it is
The AWS Cost and Usage Report (CUR) is the most comprehensive set of AWS cost and usage data available. Instead of showing charts in the console, it delivers files to an Amazon S3 bucket that you own, with a line item for each combination of service, usage type, and operation you used, broken down by hour, day, or month, and optionally by individual resource.
You analyze those files with your own tools: Amazon Athena for SQL (Structured Query Language)The standard language for querying and changing data in relational databases. Analytics services such as Amazon Athena and Amazon Redshift also use SQL.Glossary entry queries, Amazon Redshift for a cost Data warehouseA database designed for analytics, holding cleaned, structured data from many sources, so that reports and queries across years of history run fast. Amazon Redshift is the AWS data warehouse.Glossary entry, or Amazon Quick Sight for dashboards. That makes CUR the answer when a question needs the finest detail, custom analysis, or billing data fed into another system, such as a chargeback process.
CUR 2.0 and AWS Data Exports
Today you create the report as an export in AWS Data Exports, in the Billing and Cost Management console.
- CUR 2.0 is the new and recommended way to receive detailed cost and usage data. Compared with the original report, now called legacy CUR, it has a fixed schema, so columns do not change from month to month, and nested columns for tags, cost categories, product, and discount details. It adds columns such as account names.
- With Data Exports, you can choose columns and filter rows with basic SQL, so an export can leave out sensitive data or accounts you do not need.
- Data Exports also offers other tables, such as FOCUS (an open, vendor-neutral billing format), cost optimization recommendations from Cost Optimization Hub, and carbon emissions data.
- Legacy CUR is still available, but new reports should use CUR 2.0.
Options when creating an export
- Time granularity: hourly, daily, or monthly line items.
- Include resource IDs: a separate line item for each resource, such as each EC2 instance or S3 bucket. This can make the export much larger.
- Split cost allocation data: costs of shared container clusters split down to individual Amazon ECS tasks and Amazon EKS pods.
- File format: Apache Apache ParquetAn open-source columnar file format for analytics that stores compressed columns along with the schema. Querying Parquet files with Amazon Athena scans less data than CSV or JSON, so it is faster and cheaper.Glossary entry (best for Athena), or gzip or zip compressed CSV (for Redshift and spreadsheets).
- File versioning: overwrite the previous file, or keep a new version with each update.
- Destination: an S3 bucket in this account or in another account. Only Data Exports can deliver to another account's bucket; legacy CUR can't.
How the data arrives
- The first export can take up to 24 hours. After that, the export is refreshed up to once a day and each update holds the month to date.
- Charges during the month are estimates. The month's data is finalized after the invoice, and later refunds, credits, or support fees can still update it.
Tags and cost categories
Activated cost allocation tags and cost categories appear as columns, so each line item can be assigned to a team, project, or cost center. This is what makes chargeback and showback reports possible.
Security, resilience, performance, and cost
Security
- The destination bucket needs a bucket policy that lets the Data Exports service (
bcm-data-exports.amazonaws.com) write objects, limited byaws:SourceAccountandaws:SourceArnto the account that created the export. The service gets no permission to read or delete the files. - Control who can read the files with S3 bucket policies and IAM, and keep S3 Block Public Access on; billing data reveals your architecture and spend.
- In AWS Organizations, both the management account and member accounts can create reports; a member account's report covers only its own cost and usage. The management account can use a SCP (Service control policy)An AWS Organizations policy that sets the maximum permissions for IAM users and roles in member accounts. It grants nothing by itself, and it does not apply to the management account.Glossary entry to stop member accounts from creating reports.
- Use column selection and row filters to remove data that a recipient should not see.
Resilience and performance
- Because the data lives in S3, you keep history as long as you like and can protect it with S3 versioning, replication, and lifecycle rules.
- Exports with hourly granularity and resource IDs can reach gigabytes and millions of rows. Use Parquet and Athena, which reads only the columns a query needs, instead of spreadsheets.
Cost
- You pay standard Amazon S3 rates to store the exports, plus the services you use to analyze them, such as Athena per data scanned, Redshift, or Quick Sight.
- Parquet, overwriting old versions, selecting only the columns you need, and S3 lifecycle rules keep those costs down.
Monitoring
- The export appears in the Data Exports console with its status; an Invalid bucket error usually means the bucket policy or ownership changed.
- Use S3 event notifications or a scheduled query to process each new delivery.
CUR or another tool?
| Cost and Usage Report | Cost Explorer | |
|---|---|---|
| Where the data is | Files in your S3 bucket | Charts and tables in the console |
| Detail | Every line item, hourly, with resource IDs | Aggregated, daily or monthly by default (hourly for 14 days at extra cost) |
| History | As long as you keep the files | 13 months by default, up to 38 months |
| Analysis | Your own SQL, warehouse, or BI tools | Built-in filters, forecasts, and recommendations |
| Best for | Chargeback, custom reports, feeding other systems | Quick exploration and forecasting |
Reverse mindmap: when the question points here
- Yes, when the question says
- Most detailed cost data, hourly, per resource leads to CUR 2.0 with resource IDs
- Query billing data with SQL leads to CUR in S3 queried with Athena
- Load costs into a data warehouse leads to CUR loaded into Redshift
- Build custom cost dashboards leads to CUR with Quick Sight
- Charge each team back for its usage leads to CUR with cost allocation tags
- Shape the export
- Container costs per ECS task or EKS pod leads to Split cost allocation data
- Only some columns or accounts leads to Data Exports column selection and row filters
- Billing data in an open standard format leads to FOCUS export
- Secure it
- Only the export service may write to the bucket leads to Bucket policy for bcm-data-exports
- Deliver to a central finance account leads to Export to another account's bucket
- No, when the question says
- Quick charts and a forecast leads to AWS Cost Explorer
- Alert when spend crosses a limit leads to AWS Budgets
Key takeaways
- CUR is the most detailed cost and usage data, delivered as files to S3.
- Create CUR 2.0 in AWS Data Exports; legacy CUR remains but is no longer the recommended choice.
- Choose hourly, daily, or monthly granularity, resource IDs, split cost allocation for containers, and Parquet or CSV.
- Analyze it with Athena (Parquet), Redshift, or Quick Sight; tags and cost categories make chargeback possible.
- A bucket policy lets
bcm-data-exports.amazonaws.comwrite the files; you pay for S3 storage and analysis.
Sources
- AWS Data Exports User Guide: What are AWS Cost and Usage Reports?
- AWS Data Exports User Guide: What is AWS Data Exports?
- AWS Data Exports User Guide: Migrating from CUR to Data Exports CUR 2.0
- AWS Data Exports User Guide: Creating a standard export
- AWS Data Exports User Guide: Setting up an Amazon S3 bucket for data exports
- AWS Data Exports User Guide: Using Cost and Usage Reports for AWS Organizations
- AWS Data Exports User Guide: Querying Cost and Usage Reports using Amazon Athena
- AWS Billing User Guide: Organizing and tracking costs using AWS cost allocation tags
- AWS Billing User Guide: Organizing costs using AWS Cost Categories