At one point in time, AWS had only one tool for tracking your resource spending: the AWS Detailed Billing Report (DBR) which was a log of billing records. But that report has since been deprecated in favor of the Cost and Usage Report (CUR) along with other bill analysis tools. As the AWS ecosystem continues to grow and evolve every year, new functionalities and APIs have emerged–each with their own value for resource optimization or usage forecasting. 

With so many new ways to analyze costs, it can be difficult to know which AWS billing tools to use and when, even before you leverage third-party tools with their own specialized value-add. In this article, we will map out the various cost management tools currently available from AWS and their main use cases.

AWS Bill Analysis Use Cases

In the table below, we have grouped various AWS cost tools by use case. We have associated each use case with a single verb to help simplify the concept in our reader’s mind, and we have listed the corresponding AWS tools relevant to each use case.  

Use Cases
Capabilities
AWS Resources
Access
Track billing information across the organization in a consolidated view.
Control
Establish effective governance mechanisms with the right guardrails in place.
Organize
Construct your cost allocation and governance foundation and  tagging strategy.
Purchase
Leverage discount programs based on workload pattern.
Inspect
Stay up-to-date with resource deployment and cost optimization opportunities.
Report
Raise awareness and accountability with reporting by cost-center..
Forecast
Estimate your resource utilization and spend with forecast dashboards..
Budget
Keep your spend in check with custom budget thresholds and auto alert notifications.
Scale
Scale and schedule your services based on expected utilization patterns and needs.
Rightsize
Align your service allocation size to actual workload demand.

AWS Bill Analysis Best Practices

In this section, we list ten best practices that will help you stay on top of your spending. These best practices have been chosen based on recommendations from practitioners, along with convenient hyperlinks to AWS web pages introducing the relevant AWS tools.  

1. Allocate and Group Costs

Use the AWS Enterprise Billing Console you to check your actual usage rates and allocate costs across the accounts in your consolidated billing family. A key feature of the Enterprise Billing Console is the ability to create billing groups; use these billing groups to apply custom pricing plans or analyze your savings by performing a margin analysis on each billing group. You can also configure Cost and Usage Reports (CUR) on each billing group.

AWS Dashboard Graphs are also a key feature of the AWS Billing and Cost Management console. Dashboard Graphs provide a default view into your spend summary, month-to-date spend by service, and month-to-date top services by spend. 

2. Track Estimated Spend

Use AWS Billing Alarms to monitor your estimated AWS charges. This feature calculates your estimated charges daily using CloudWatch metric data collection. Alerts are sent via email whenever your actual spending exceeds the threshold specified. You can review billing data and receive alerts for each linked account when using consolidated billing, provided the management account has “Receive Billing Alerts” enabled. 

Note that AWS Billing Alarms cannot be used for accounts that are part of the Amazon Partner Network (APN). 

3. Track Actual Spend  

Use AWS Budgets to define custom budgets that track your cost and usage. You can set up alerts (via email or SNS) on actual or forecasted usage thresholds. For example, you might want to receive an alert when your RI or Savings Plan utilization drops below a certain threshold. 

To take action on cost and usage-related events, set up AWS Budget Actions. These actions can be executed either automatically or with your approval.  

AWS Budgets integrates with other AWS services, such as AWS Cost Explorer, AWS Chatbot, and AWS Service Catalog.  

Use Budget Reports to monitor your budgets. Budget Reports supports up to 50 reports per account. You can send this report to a maximum 50 email addresses to keep your team and stakeholders informed. Each report sent costs $0.01. 

4. Explore The Past Year’s Billing Data

Use the Cost Explorer to view and analyze up to 12 months of your AWS costs and usage. There are several ways to explore your data within Cost Explorer, including: the main graph, CUR, or the Cost Explorer Reserved Instances (RI) reports. You can also use the Cost Explorer to forecast spending and get recommendations for RI purchases. 

Cost Explorer provides several preconfigured views for analyzing your cost trends, making it an excellent starting point for analyzing your AWS bill.  While using the Cost Explorer through the AWS Console is free, accessing this data via the API incurs a charge of $0.01 per request. 

5. Receive Cost and Usage Reports 

Use Cost and Usage Reports to see detailed billing information categorized by additional metadata (such as cost allocation tags).  After you set up CUR for the first time, the current month’s billing data is delivered to your designated S3 bucket.  You have the option to receive hourly, daily, or monthly reports broken down by product, resource, or tags. CUR updates this report at least once each day.

6. View Spend by Cost Categories 

Use AWS Cost Categories to group cost and usage data in a way that makes sense for your business. You can map these categories to your data using configurable rules that support logic on metadata such as account, tag, service, charge type, and other cost categories. Cost categories become viewable in AWS Cost Explorer, AWS Budgets, and AWS CUR at the beginning of the following month. 

7. Monitor Cost Anomalies 

Use AWS Cost Anomaly Detection to create cost monitors powered by machine learning that detect the root cause of anomalous spending. Cost monitors help segment your spend by account, cost category, cost allocation tag, and more. After setup, you can review any detected anomalies through the dashboard — even if they fall below your defined thresholds. 

8. Reduce Resource Waste 

Use the AWS Trusted Advisor to receive real-time resource provisioning recommendations that follow AWS best practices. Trusted Advisor measures service limits by checking your service usage against an 80% threshold. This helps avoid overage fees (over-utilization), especially for resources that handle workloads that experience regular spikes or regular growth. This tool also optimizes costs by removing idle or unused resources from your inventory and by making resource reservations.  

9. Discover Price Changes

Use AWS Price Update Notifications to stay up-to-date on AWS pricing, including: AWS price cuts, new instance launches, and new service announcements. You can receive daily notifications via SNS, which include all price changes applied during a given day.

You can also directly query for AWS service pricing through the AWS Price List Service API and the AWS Price List API

10. Review Billing and Cost Logs

Use CloudTrail to capture billing events as a log across your accounts. Billing and Cost events are recorded for actions taken by users, roles, and AWS services from either the console or via an API.

You can monitor when a linked AWS account has been closed, has changed owners, has redeemed a discount code, and has updated its RI/Savings/Credit sharing settings (via the SetRISharing and SetCreditSharing events). The example below shows the format for the event SetContactAddress. 


{
"eventVersion": "1.05",
"userIdentity": {
"accountId": "111122223333",
"accessKeyId": "AIDACKCEVSQ6C2EXAMPLE"
},
"eventTime": "2018-05-30T16:44:04Z",
"eventSource": "billingconsole.amazonaws.com",
"eventName": "SetContactAddress",
"awsRegion": "us-east-1",
"sourceIPAddress": "100.100.10.10",
"requestParameters": {
"website": "https://amazon.com",
"city": "Seattle",
"postalCode": "98108",
"fullName": "Jane Doe",
"districtOrCounty": null,
"phoneNumber": "206-555-0100",
"countryCode": "US",
"addressLine1": "Nowhere Estates",
"addressLine2": "100 Main Street",
"company": "AnyCompany",
"state": "Washington",
"addressLine3": "Anytown, USA",
"secondaryPhone": "206-555-0101"
},
"responseElements": null,
"eventID": "5923c499-063e-44ac-80fb-b40example9f",
"readOnly": false,
"eventType": "AwsConsoleAction",
"recipientAccountId": "1111-2222-3333"
}

Conclusion

AWS has introduced many new tools, APIs, and functionalities in recent years. The choices may be overwhelming to newcomers. We recommend adopting an essential subset such as the Cost Explorer and Cost Allocation Tags, and consider third-party vendors who leverage AWS’ APIs to offer a simpler user experience in a single pane of glass.