Understanding and Supplementing AWS Financial Data
An Introduction to AWS Billing
Like most cloud services, Amazon Web Services (AWS) bills monthly. However, unlike some other cloud providers (Azure, for example), AWS strictly enforces the monthly date boundaries for their billing cycles. As a result, when you receive an AWS bill for the month of August, that bill only includes usage from August 1st, 12am to August 31st, 12am UTC. You can view Amazon bills in the Billing Dashboard, and you can opt to receive PDF copies via email when the month is "finalized" (typically around the 3rd or 4th of the following month).
These bills give you a lot more information than just the total due for the month. Inside the Billing Dashboard you can drill down to see how the total is broken down across a variety of AWS services either as a whole or for each linked account under your billing account. For each service, you’ll see a breakdown of how that spending was spread across different AWS regions (including GovCloud if in use). From there it is possible to drill down further and see a breakdown of sub-services. For example, if you spent $128 on Elastic Cloud Compute (EC2) in the US East region, that breakdown could consist of EBS costs, Instance costs, costs associated with Nat Gateways, and so on. Finally, below each of these is the detail of the usage type, for example, “On Demand Linux t2.large Instance Hour”.
An Introduction to AWS Cost Explorer
While this AWS financial data is quite useful, the way it is organized by month and buried multiple layers deep can make it hard to interact with. This is especially true in the common case of trying to understand the financials of a grouping of accounts that represent a combined effort (for example, multiple lifecycle environments for a project). To help with this, AWS provides its Cost Explorer as a mechanism to observe and analyze resource costs and usage. Cost Explorer lets you slice and dice your spending in a lot of different ways, but this information can be challenging to decipher.
In the example below, we see in the AWS Invoice for July 2019 that my account spent $553.92 on EC2.
However, when I go into Cost Explorer and group my data for that month by service, I see three rows for EC2 (EC2-Instances, EC2-ELB, and EC2-Other). When added together these numbers are roughly $50 over the invoiced total and on subservices, where you would think they would match up 1:1 (for example, ELB), we see a difference of over $7.
Supplementing AWS Financial Data with cloudtamer.io
This is not to say that AWS financial data is not useful; it’s simply important to understand that AWS Billing and AWS Cost Explorer are separate systems with separate objectives. This is where cloudtamer.io can add value and make it easier to get insights from financial data. By ingesting the data that drives both of these AWS reports and reorganizing this data, cloudtamer.io can provide intuitive rollups by, for example, grouping a set of lifecycle environments below a single project. This lets you see exactly how much you are being invoiced for a group of accounts.
cloudtamer.io displays the totals for your services that match the totals shown on the invoice page. Customers are then able to view resource level pricing and effectively plan/forecast to business requirements.
cloudtamer.io also lets a user roll in costs outside of AWS, such as costs from another cloud service provider. The screenshot below shows a project with costs from AWS and Azure. Not only does cloudtamer.io allow you to see and understand these costs, but it lets you track them against the various funding streams used in your organization.
Having a holistic picture of your cloud spend makes for increased financial visibility and flexibility such that, moving forward, your company can apply the appropriate levels of budget enforcement. As you and your organization step into the cloud and scale, cloudtamer.io helps ensure you’ve established proper controls to effectively govern your cloud workload.
Hasnat is a technical delivery manager at cloudtamer.io. David Konigsberg, who leads software development at cloudtamer.io, contributed to this post.