AWS Cost and Usage Reports (CUR) offer a detailed breakdown of the expenses and usage associated with each AWS service. By regularly reviewing CUR, businesses can identify unused or underutilized resources contributing to cloud sprawl.
Managing an enterprise-level cloud environment is difficult. AWS services all have their own separate pricing models, from compute resources like EC2 to storage solutions like S3.
Because these resources are available on demand, teams and departments tend to spin up their own solutions for testing and forget to decommission them after use. Over time, as this sprawl adds up, it can get expensive.
Luckily, CUR provides the flexibility to view data in a way that’s most relevant to the organization, whether it’s grouping costs by linked accounts, tagging resources for better allocation, or filtering data by service or region.
This article discusses how to generate your own cost and usage reports to monitor and control cloud resources across your organization.
What is an AWS Cost and Usage Report (CUR)?
The AWS Cost and Usage Report (CUR) is a comprehensive report that gives insights into cloud resource usage and expenses. AWS designed it to help their customers better understand their spending, allowing them to optimize costs, allocate resources, and manage infrastructure more effectively.
Imagine you run a multi-tier web application on AWS with services like Amazon EC2, Amazon RDS, Amazon S3, and AWS Lambda. As your AWS bill increases over time, you want to have a detailed account of which resources contribute to the increased costs.
By setting up the CUR, you can:
- Identify which services (e.g., RDS, EC2, Lambda) incur the highest costs.
- Access detailed cost and usage data for specific AWS resources.
- Gain insights into cost and usage trends over specific time periods (hourly, daily).
- Identify underutilized RIs, providing opportunities for optimization or resale.
- Integrate with tools like Athena, Redshift, and Amazon QuickSight for deeper analysis and visualization.
- Get recommendations for better resource allocation and budgeting.
Where can you find AWS Cost and Usage Reports?
Before you access your AWS reports, you need to configure AWS CUR to publish your billing reports to one of your Amazon Simple Storage Service (Amazon S3) buckets. Once you’ve done that, access your organization’s Cost and Usage Reports via the AWS Management Console.
- Sign in: Navigate to the AWS Management Console and sign in with your AWS account credentials.
- Access the AWS Cost Explorer: In the AWS Management Console, locate the “Services” dropdown at the top left corner. Under the “Management & Governance” section, click on “Cost Explorer.”
- Navigate to Cost & Usage Reports: Once inside the Cost Explorer, you’ll find a navigation pane on the left side. Click on “Cost & Usage Reports” in the navigation pane.
- View or create reports: On the “Cost & Usage Reports” page, you’ll see a list of your existing reports. To create a new report, click on the “Create report” button. If you wish to view an existing report, click on the report name.
- Download or further analyze: Once you’ve selected a report, you can download it in various formats (e.g., CSV) for offline analysis. You can also integrate the report with other AWS services like Athena or Amazon Redshift for a more in-depth analysis.
How does this report work?
Every interaction with an AWS service generates metadata and usage metrics. AWS captures all of this data in real time.
Once collected, AWS aggregates the data based on the time of usage to provide detailed hourly, daily, or monthly breakdowns for each service or specific resource used. If users have set up tagging for their resources, AWS also processes this tagging data to allow for cost allocation based on these tags.
Once AWS has aggregated and processed the data, it generates a detailed report in CSV format. Users customize what data is included in the CUR, allowing them to focus on specific services, accounts, or time frames.
AWS then delivers the CSV report to a user-specified Amazon S3 bucket, where it retains detailed billing and historical data for 15 months, allowing users to go back and analyze.
Advantages of using AWS CURs
AWS CURs serve as a diagnostic tool. They offer in-depth insights into how and where businesses are using cloud resources across their organization and enable them to pinpoint inefficiencies in order to optimize their cloud spending.
Here’s a detailed breakdown of how CURs bring this value:
Better view of costs and usage
AWS CURs offer an unparalleled, comprehensive view of your AWS costs and usage. Instead of a mere overview, they dissect your expenses and provide a granular breakdown. This can be pivotal for budgeting and financial planning.
- Cost allocation tags: AWS allows you to tag resources for better organization, but not all these tags are reflected in your billing data. With the cost allocation tags, you can cherry-pick crucial tags and include them in the CUR. This selective inclusion provides clarity without overwhelming users with excessive data.
- Cost categories: Cost Categories are additional columns you can introduce into your CUR. They allow you to categorize charges based on rules you set, offering another layer of data organization. Common cost categories encompass aspects like projects or initiatives, specific teams, environments, or even the source of resource creation.
Improved cost details
The devil is in the details. That’s why AWS CURs furnish detailed cost information, encompassing resource-level data and discernible usage patterns. Understanding these patterns and resource costs equips organizations with the knowledge to allocate resources efficiently and forecast future expenses accurately.
Easier to identify cost-saving opportunities
With AWS CURs, spotting potential avenues for cost savings becomes less of a hunt and more of a guided tour. By analyzing the detailed data, organizations can make informed, data-driven decisions.
Example strategies you could derive from your CURs include:
- Reserved Instance optimization: By analyzing the utilization and idle patterns of EC2 instances, organizations can decide whether to purchase Reserved Instances or modify existing ones for better cost efficiency.
- Data transfer analysis: CURs can highlight expensive data transfer patterns, prompting a switch to more cost-effective solutions like AWS Direct Connect.
- Resource downsizing: Detailed resource-level data can reveal over-provisioned resources. Downsizing these resources or switching to a more cost-effective service can lead to significant savings.
Integration with cost management tools
Cost management tools and analytics services further amplify the potency of AWS. By feeding CUR data into tools like Amazon Athena, Redshift, or third-party solutions, organizations derive advanced insights, visualize data more effectively, and make more informed financial decisions.
Customizable reporting options
One size rarely fits all, especially in the realm of financial data. AWS CURs understand this, offering flexibility in report settings and data granularity. Whether you need a high-level overview or a deep dive into hourly costs, you can tailor CURs to meet your specific cost optimization requirements. By customizing these reports, organizations ensure they can equip them with the most relevant and actionable insights.
How to create a CUR in your AWS account
Before you can harness the insights of AWS Cost and Usage Reports (CURs), it’s pivotal to set them up correctly. These reports won’t gather data until you’ve properly configured them.
Let’s embark on a step-by-step journey, based on the official documentation, to set up a CUR in your AWS account.
Step 1: Navigate to the reports page
Start by signing into your AWS Management Console. Once inside, head to the “Services” dropdown menu.
From there, under the “Management & Governance” section, opt for “Billing.” Within the AWS Billing Dashboard, on the left navigation pane, you’ll spot the “Cost & Usage Reports” option under “Cost Management.” Click it.
Step 2: Configure your new report
On the following “Cost & Usage Reports” page, there’s a “Create report” button. After clicking on it, AWS will prompt you to name the report. This name should be self-explanatory so it’s easy to find again when needed.
As you continue, you’ll encounter options like data granularity, where you can choose between hourly, daily, or monthly breakdowns. There’ll also be an option to include resource IDs.
Step 3: Set up your cloud storage
Your CUR needs a home, and Amazon S3 has one. Specify an S3 bucket where AWS can deliver your report.
If you’re already in possession of a suitable S3 bucket, select it. If not, just create a new one. It’s imperative to give this bucket the right permissions to let AWS deposit the CUR files.
Step 4: Enable updates at regular intervals
Toggle the “Report Refresh” option. This ensures AWS updates your CURs with fresh data at regular intervals.
You can also customize the data landscape of your report. For example, you can choose whether you wish to encompass all data or filter it based on regions, services, or accounts.
Step 5: Review and generate your report
Before you seal the deal, take a moment to review. On your approval, AWS will begin processing and eventually deliver your report to the S3 bucket.
It’s worth noting at this point that AWS CURs generated as CSV files can get out of hand very quickly. In fact, a report with hourly granularity can be millions of lines even for a small organization, making it difficult to parse through the data.
This is why the Parquet format is often preferred over CSV, because it allows for seamless exporting to third-party analytics tools while keeping things more manageable.
Step 6: Use third-party platforms for further processing
You can export AWS CURs as CSV files for further analysis. However, given how granularly they track your resource usage, you may want to use a third-party platform for processing the huge amount of data you now have access to.
With your CUR comfortably stored inside the S3 bucket, you can integrate this data trove with third-party platforms for a deeper dive. Whether you lean towards Amazon Athena, Redshift, Quicksight, or any other analytics platform, AWS offers direct integration so you can pull your CUR reports into your favorite tools for more advanced insights.
ProsperOps can take your cost optimization to the next level
ProsperOps is a hands-free AWS rate optimization solution that aims to automatically reduce AWS costs without ongoing manual effort. Our approach is outcome-focused, automating tasks traditionally handled by human accountants.
We use algorithms round the clock to minimize long-term commitment risks and increase cloud computing discounts. ProsperOps has helped clients achieve up to 40% overall AWS compute discounts with short, flexible commitments.
Want to learn more about how ProsperOps can help you make better use of your AWS CURs to improve your cloud expense management strategy? Schedule a demo with our team today!