How to Master Cost Explorer to Lower Costs

AWS Cost Explorer is a great place to start by lowering costs.

My clients (of all sizes) always ask me: My costs are SOOO high, where do I start?

Lowering costs is critical for all businesses. There are reserved instances, savings plans, spot instances, and other ways you can cut costs, but I always like to start with the basics. Where are your costs coming from? What services, what regions, what resources? I like to think of myself as a 3 Star (from the michelin star rating system) AWS Cost Explorer Master Chef. This comes from lots of practice, preset views that are engrained in my head that I usually help clients check out. AWS COST EXPLORER is a great place to start.

About How Route 53 Rundown Got Started

I have worked with hundreds of clients who spend millions or hundreds of thousands annually on AWS. I have seen what common weak spots are in Dev Ops / Engineering teams. (Somewhat of a Cloud Consultant you could say), and I have found many hidden secrets that AWS doesn’t advertise, so I want to share it here in the form of a short, sweet, free yet hopefully impactful blog. If you ever have questions, feel free to reach out to [email protected].

What is AWS Cost Explorer?

AWS Cost Explorer is a tool that empowers you to see where your AWS costs are coming from. You can filter by accounts, regions, usage type, resources, charge type, and a lot more. 

Let’s start with the basics, below is Cost Explorer. You have many different filters that allow you to dive deep into more specific views.

Here are all the different cost explorer filters:

Service, Linked account, Region, Instance type, Usage type, Usage type group, Resource, Cost category, Tag, Charge type, Availability zone, Platform, Purchase option, Tenancy, Database engine, Legal entity, Billing entity, API operation

Here are all the MORE IMPORTANT cost explorer filters I use regularly:

  • Service: As it sounds, this filters is probably the most common and helpful filter, so you can see where your costs are coming from.

  • Linked account: very helpful for if you have more than one AWS account.

  • Region: Sometimes, when focusing in a specific region, I find people notice instances that are running in a different region after looking at this filter.

  • Instance type: Very helpful when diving deep into a specific service like EC2, RDS, ElastiCache, OpenSearch or something else.

  • Resource Type: As the name implies, you can filter based on resources. It needs to be enabled by you, does cost extra, and resource-level data will reduce your dataset to the past 14 days of usage.

  • Usage Type: specific type of resource usage, such as compute hours, data transfer, or API operations.

  • Tag: If you use cost allocation tags, you can use this to dive really deep on how much different projects are costing.

There are two ways to sort (and you can use both at the same time), Group by and Filters. Group by takes the data you have selected based on time and filters, and the filters allow you to zoom in on specific data. For example, I could filter my data for the first week of March and filter to just include RDS. When I could group by instance type.

See below:

The first thing on your mind might be “Why does it say no instance type.” This is likely because this account is using RDS serverless. Or, as I mentioned in a previous blog that if they are storing tons of data and have tons of expensive backups enabled, this could be due to that.

While cost explorer is always the best place to start when you need to investigate a problem, cost explorer can also be a great place to check the health of your costs with AWS. There is a Reports tab that enables you to create saved reports, with saved filters and group-by preferences. This allows you to save time and quickly dive deep into different usage types for services that are main cost drivers, or see how many credits have been credited in a given month (using charge type and including credits).

You can also aggregate costs by…

  • Unblended costs: Your costs on the day it was charged. This represents your costs on a cash basis of accounting. Under the Unblended view, Reserved Instances and Savings Plan fees are shown on the day you are charged.

  • Amortized costs: Your costs reflect the effective cost spread across the billing period. This represents your costs on an accrual method of accounting. With this view, the costs are amortized over the billing period.

  • Blended costs: Your average cost of usage across the consolidated billing family. Blended rates are average costs of Reserved Instances, Savings Plans, On-Demand Instances, and pricing tiered products.

  • Net unblended costs: Your unblended costs after all discounts are applied.

  • Net amortized costs: Your amortized costs after all discounts are applied.

You might use unblended costs to track actual cash outflows and reconcile invoices, as they show charges on the day they’re billed. Blended costs are used to average rates across a consolidated billing family, simplifying cost sharing and reporting.

Example One:

In this example, I have my selected date range, and filtered the service to just be EC2 - Other. The dimension is still service, so the bars are just blue for all days. I selected EC2-Other because perhaps I am curious to see why my costs for EC2-other have been so high lately!

Now I want to figure out what this is coming from. I start with the region. Based on the below image, we see it’s all coming from Us East (Ohio) also known as US East

Next, I’ll use the usage type dimension.

The usage type "USE2-EBS:VolumeUsage.gp2" dominates the cost on September 18, contributing $182.38 out of the total $185.17 for that day. This is a significant portion of the cost, indicating that this usage type is the most heavily utilized in terms of cost.

  • What is USE2-EBS:VolumeUsage.gp2?

    • "USE2" refers to the AWS region (US East 2, likely Ohio).

    • "EBS" stands for Elastic Block Store, a block storage service provided by AWS.

    • "VolumeUsage.gp2" indicates the usage of General Purpose SSD (gp2) volumes, which are commonly used for EBS storage in AWS for a variety of workloads like databases, boot volumes, and general-purpose applications.

The primary cost is the usage of General Purpose SSD (gp2) volumes in the US East 2 region, likely for storage needs associated with EC2 instances or other AWS services. It might make sense based on this to evaluate storage needs, using more cost-effective storage types like gp3, or implementing lifecycle policies for snapshots) could be a good starting point.

In another case, I was working with a client where we noticed that some (maybe 10%) of RDS costs were coming from us-west-2. What I noticed is they mentioned they were only using us-east-1. Yet why was there some cost in us-west-2! What was happening in that region? We took a look, and it turned out they were running an RDS instance for quite some time storing some older data. We turned it off, and saved 15% for RDS on the infra layer.

Example Two:

In the above image, you can see the cost of CloudWatch for this account has been increasing over the first three months.

After further investigation, we can see some usage types are staying constant, while others are increasing by a bit. This was all done thank to Cost Explorer!

Hopefully this helps you understand how powerful Cost Explorer could be to helping companies get their costs under control.

Yaddle Out.