Close

Let's get on each others' calendars.

AWS Billing:

How to Understand and Optimize Your AWS Costs

AWS is an amazing service that helps to run a sizable portion of modern software and applications. Unfortunately, AWS documentation is legendarily bad. You’re lucky if you can find a help doc centered around the feature at hand, let alone one that actually solves your problem.

AWS Billing lives up to that legacy by being vital for anyone with an AWS account, but by being a nightmare to learn how to use.

That’s why we’re here to lay out what the AWS Billing console is, what you can do with it, how best to use it, and what you need to be wary of when starting out. We’ll cover:

  • What is AWS Billing?
  • AWS Billing elements
  • How to use AWS Billing
  • Issues to be wary of
  • How to optimize your AWS Billing

Let’s get right into it.

What is AWS Billing?

A screenshot of the AWS Billing console dashboard
Source

AWS can be an absolute nightmare when it comes to finances.

It’s almost comically easy to lose track of your costs, and any expansions tend to be poorly indicated in terms of how much extra you’ll be paying for them. Let alone the difficulty of interpreting your financial data to actually make sense of anything you can see.

AWS Billing console goes a little way to remedying this issue.

AWS Billing console provides you with an easy way to view and (to a certain extent) manage the financial side of your AWS account. This includes viewing your costs, seeing and paying invoices, forecasting and budgeting for future costs and consolidating your bills to make them easier to parse.

Think of it as your main introduction to being able to see and handle your AWS bills, and track what those costs are a result of.

For example, without AWS Billing you wouldn’t be able to see your costs in any detail beyond the amount getting charged to your bank account, let alone have any information on what that money is actually being spent on. Therefore, you would have no idea whether your costs look appropriate for what you’re getting out of it, and no warning for when they’re about to increase.

In other words, without it you’d have no insight into your AWS costs and have no way of easily verifying whether your costs are accurate.

Sounds great, right?

Unfortunately, that’s not the entire story of what AWS Billing is.

There are several issues which AWS Billing fails to address and some that it actively introduces. These include the inability to natively get your billing data from anywhere else, and the lack of context surrounding resource shifts and cost rises.

We’ll cover these in detail later in this post, but for now know that the Billing console itself leaves core elements to be desired.

For now, let’s dive into the details of what AWS Billing is and what it lets you do.

AWS Billing elements

A photo of a calculator and a stack of 100 dollar bills on a messy desk. The bills are wrapped with paper labeled "INVOICE"
Source by Nick Youngson, image used under license CC BY-SA 3.0

Explaining AWS Billing isn’t as simple as laying out XYZ features and calling it a day. It’s an entire console of elements that come together to form a vital piece of the AWS puzzle. These are:

  • Viewing invoices and historical data
  • Paying invoices
  • Forecasting
  • Budgeting and actions
  • Consolidating bills
  • Cost and Usage Reports (CURs)

Viewing invoices and historical data

The first element of AWS Billing console is the ability to view invoices and historical financial data. Not only is this pretty much the only way to view your AWS financial data, it also provides an invaluable way to see your past finances alongside your current costs.

In turn, this gives you enough information to get a sense of how your finances have been over time and start to unpack when spending spikes have occurred and why they happened.

Let’s say that you’ve been brought in to monitor and manage AWS finances, and you know that previously no data was shared beyond the final price for your AWS services. Now you can start to build an accurate picture of where those costs were coming from and even identify where that money is going to waste.

Paying invoices

A person holds hundreds of dollars worth of 20 dollar bills fanned out in their hands.
Source by Steven Depolo, image used under license CC BY 2.0

On a similar theme is the ability to see, manage, and pay your AWS bills all in one place, if you’re one of the lucky few that aren’t required to connect a corporate card for auto-payment of invoices. This saves you the hassle of having to pay each and every bill via manually drawn-up invoices.

It might not be the flashiest feature of AWS Billing, and we can guarantee that it will save you a massive amount of time and effort.

Forecasting

Forecasting allows your AWS Billing account to project your future costs to give you an idea of what you’ll need to pay if things continue as they are.

This is insanely handy for literally any and every team that uses AWS regularly. Surprise AWS bill increases can be a massive cause of alarm, and by forecasting your costs after any resource adjustments you can avoid landing in hot water by failing to plan for the extra cost.

Obviously this won’t account for any changes that you need to make to your workloads or account in general, so don’t take the forecasted amount as gospel. Instead use it to help influence your team’s decisions on whether to increase or decrease spending according to how much you have in the budget for AWS.

Speaking of budgeting…

Budget monitoring and actions

As we’ve discussed in our article on AWS Budgets, having the ability to set limits on your spending is incredibly useful if you’re on a tight budget. Thankfully, with AWS Budgets being part of the console, you can do precisely that!

Check out our full article on the feature for more details, but to summarize, you can set budgets for each individual workload in your AWS account. This lets you control exactly how much is being spent on each activity and set up warnings to trigger when you reach (or are on track to reach) your limits.

You can even set up specific actions to be carried out when a workload reaches its budget, such as shutting down activity to prevent further spending or even upping your budget automatically to temporarily allow for more work to be carried out.

Consolidating bills

Photo of a stack of papers tied up in yellow string as if they were a package and held with a hand.
Source by Marco Verch, image used under license CC BY 2.0

Having a mess of bills from several different accounts only adds to the nightmare that is AWS billing. Thankfully AWS Billing console lets you combine all of your member accounts into a single management account for the purposes of billing.

In other words, you can condense everything into a single bill.

This is fantastic for simplifying your finances, especially when you’re talking to other teams or upper management and having to both present and justify your spending. If there’s nothing that specifically needs to be focused on, you can simply give a high-level overview without having to manually find all of your costs and pull them together.

Keep in mind, if you operate multiple AWS organizations, or are a client of a reseller that requires your account to be a part of their AWS organization, you won’t be able to see a consolidated bill. That’s because this feature is limited to just one organization. You might want to check out Aimably's AWS Invoice Management Software for multi-organization invoice consolidation.

Cost and Usage Reports (CURs)

Finally, CURs break down your cost and usage statistics into a report that you can understand and use to gain insight into the health of your account.

We’ve also covered this feature in a separate post on Cost and Usage Reports which you should read for the full details, but we’ll cover the basics here too.

CURs let you see what you’re spending in detail and what your usage levels on those elements are. This allows you to see whether the money you’re spending is worthwhile for the level of usage you’re getting.

For example, if you have a high-cost low-usage workload, you can probably consider shrinking its resource allocation and saving money because those resources aren’t being used anyway.

How to use AWS Billing

An overhead photo of a person typing on a laptop sitting on a circular white desk that also features two pencils, a phone, some reading glasses, a notebook and a plant.
Source, image in the public domain

You know what makes up the AWS Billing console, so let’s get into some actionable tips for how best to use it.

Track your invoices and costs

The most obvious use of the AWS Billing console is to track your invoices and costs.

This is a vital aspect of effectively managing your AWS account as, outside of the console, AWS is pretty terrible at giving you this information otherwise, if not making it impossible to do so natively.

Keep an eye on your costs, pay your invoices promptly, and compare those amounts against the usage and general benefits you’re getting for your trouble.

If nothing else it’s vital to have a paper trail to be able to prove that you’re spending what you claim to be.

Compare spending to historical data

Once you have a handle on the current financial situation, take the time to do the same for any historical data you have.

By calculating the previous state of your AWS account you can see the relative health of your current state - whether your costs have increased significantly over time, and how the division of those costs has changed.

If nothing else you will be able to see whether or not your spending has increased at all. If not, and if your usage has begun to cap out regularly, it’s probably time to increase your spending.

Check for inconsistencies and cost spikes

A short depth of field photo taken of a multicolor line graph.
Source by freeimageslive.co.uk, image used under license CC BY 3.0

In a similar way, AWS Billing is great for checking when and why cost spikes have happened, and thus allowing you to more reliably know when future spikes will occur.

For example, let’s say that you notice a particular time of year that, in the past, has always resulted in a spike. This could be the result of a seasonal event triggering a boost in interest, but no matter the cause it has remained consistent for multiple years.

This lets you know that it might be worth increasing your resource allocation ahead of time to account for a potential upcoming spike. Doing this in advance may even allow you to get a better deal on those extra resources.

Consolidate your costs

Use the Billing console to pool together your member accounts and combine their bills under a single management account. This will let you manage everything by paying one bill instead of multiple smaller ones, saving you time and effort.

There’s no downside to this, as you can still separate your bill into its constituent parts to analyze and demonstrate where the money is going. All it does is make paying off what you owe easier to manage.

It also makes your bill easier to present or forward to finance, as you can send them a single figure which covers your entire AWS spend.

Issues to be wary of

The problems with AWS Billing console are very similar to those of other elements of AWS and, more specifically, Cost and Usage Reports in particular.

One issue is that there is no other way to natively see your billing data. If you want to see your AWS financial information (which you should), you have to use the Billing console - even third-party tools get their information through the console, so you’re forced to use it even if it’s indirectly.

This may not appear to be a bad thing, but this means that it’s very hard to validate that your AWS invoice is accurate. It’s your finance team’s job to check that you received the 10 reams of paper that Office Depot charged you for this month, and it’s also your finance team’s job to validate that you used all the AWS services listed on your bill. However, with this single source of truth, there’s no easy way to prove AWS’ invoice calculations are correct or incorrect. An expert decoder of Cost and Usage Reports can perform this validation, but not without incredibly complicated spreadsheet analysis.

The other main problem is that the AWS Billing only shows you how your costs rose or fell, but doesn’t tell you why.

You can’t leave notes relating to specific price increases or reductions, so you can’t provide the context of what discussions were held, what decisions were made, and what the intentions of the team at the time were. Unless you note these things down externally there will be no context as to why these things happened, which could render their whole point moot if those actions are later reversed.

How to optimize your AWS Billing

A woman sits in front of a laptop on a desk appearing to be working. Also on the desk are a cup of coffee, a phone and a notebook.
Source, image in the public domain

The AWS Billing console might be the only way to natively get your AWS financial information, but that doesn’t make it the best way to track and manage it. That’s where Aimably comes in.

Aimably’s suite of tools takes what AWS Billing can do and supercharges it.

Aimably’s AWS Spend Transparency Software lets you see everything you would in the different parts of your AWS Billing console in a single place. From tracking your day-to-day spending and forecasting future costs to warning you of when you’re reaching your budget, we’ve got you covered.

Meanwhile our AWS Invoice Management Software means that you can manage everything to do with your invoices without flitting between consoles and apps. Speed up your invoice review and approval process, quickly compare invoices to actual usage, and reduce interdepartmental tensions by making sure that everyone is working from the same transparent data.

You could even go one step further and use our AWS Financial Operations Services to assess and optimize the health of your AWS account, or take advantage of our AWS Cost Reduction Assessment to axe what you don’t need to be spending and save as much as possible.

What are you waiting for? Take your AWS account to the next level with Aimably.

AWS Deep Dive