AWS Cost Optimization Audit

Find out why your AWS bill is high — in two weeks, with every finding priced

Most AWS bills are not high for one big reason. They are high for seven small ones nobody owns. We run a fixed-scope, two-week audit against a read-only role, quantify every finding in dollars per month, and hand you a ranked remediation plan. Nothing installed, no long-term contract, no percentage of savings.

FINOPSEC2EKSRDSS3NAT GATEWAYSAVINGS PLANSCUR

2 weeks

Fixed scope, fixed price, defined deliverable

Read-only

One IAM role. No agents, nothing installed in your account

Priced

Every finding quantified in dollars per month, not percentages

Yours to keep

The plan is written so your team can implement it without us

Your bill is not high because of one mistake. It is high because of seven.

Teams asking why their AWS bill is so high usually expect one dramatic answer. There almost never is one. What we find instead is a stack of ordinary things: EC2 and RDS instances sized for a load test that ran two years ago, non-production environments that run at full size overnight and at weekends, EBS volumes still billing months after the instance they were attached to was terminated, a NAT Gateway charging per gigabyte for traffic that should be going through a VPC endpoint, chatty services split across availability zones paying cross-AZ transfer in both directions, years of forgotten snapshots and untagged ECR images, a handful of unused Elastic IPs, EKS node groups provisioned for a peak that arrives twice a year, and steady-state usage sitting entirely on on-demand rates with no Savings Plan coverage. Individually, not one of them is worth calling a meeting about. Together they are routinely a quarter to a third of the bill.

The reason they persist is not that they are hard to fix — most of them are an afternoon of work. They persist because nobody owns them. Cost falls into the gap between the platform team, who did not choose the workload, the product teams, who cannot see what their own service costs, and finance, who can see the total and nothing underneath it. Everyone can name a suspect. Nobody has the mandate, the data and an uninterrupted week to go and check.

A cost dashboard does not close that gap. It will tell you what you spent, sliced more ways than before, and it will be accurate. It will not tell you that your NAT Gateway charge is an architectural decision rather than a usage spike, that two RDS instances are running Multi-AZ for a workload that does not need it, or which three changes to make first given your release calendar. That is a judgement about your systems, and it takes an engineer who has read your bill line by line. That is what this audit is.

Core Capabilities

[01]

Bill & Usage Analysis

We load your Cost and Usage Report into Athena and query it properly — by account, service, usage type, tag and hour. Cost Explorer shows you the shape of the bill; the CUR shows you the line items that make it.

[02]

Compute Right-Sizing

EC2, RDS, ElastiCache and Lambda measured against fourteen days of CloudWatch metrics rather than a guess. Idle instances, oversized families, wrong generation, Multi-AZ where single-AZ is fine, and non-production schedules that nobody set.

[03]

Commitment & Savings Plan Strategy

How much of your steady-state usage should be covered, at what term, in which mix of Compute Savings Plans and Reserved Instances — modelled against your actual baseline, with the risk of over-committing stated explicitly.

[04]

Storage & Data Transfer Waste

Unattached EBS volumes, orphaned snapshots, S3 without lifecycle rules or the wrong storage class, unpruned ECR registries, unused Elastic IPs, and the two line items that surprise almost everyone: NAT Gateway data processing and cross-AZ transfer.

[05]

Kubernetes & EKS Cost Allocation

Node utilisation against pod requests, over-provisioned node groups, requests set once and never revisited, and per-namespace or per-team attribution so a shared cluster stops being a single unexplainable line on the bill.

[06]

Ongoing FinOps Practice Setup

Tagging policy that is actually enforceable, budgets and anomaly alerts wired to the right people, showback by team, and a monthly review that takes thirty minutes — so the bill does not quietly drift back over the next two quarters.

Audit vs. FinOps tool vs. doing nothing

These three are usually framed as alternatives. They are not — they solve different halves of the problem, and one of them is genuinely better than us at what it does.

Zenthos auditFinOps SaaS toolInternal effort
What you getA ranked, dollar-priced remediation plan and a walkthrough with the engineer who wrote itA live dashboard, anomaly alerts and continuous per-team attributionWhatever someone gets to between sprints
Time to first savingTwo weeks to the plan; quick wins are usually actioned the week afterDays to see the data — the saving still waits on a human doing the workUnpredictable, and typically the quarter after finance escalates
Ongoing costOne-off, fixed priceMonthly subscription, sometimes a percentage of spend under managementEngineering time, taken out of the roadmap
Finds architectural wasteYes — NAT Gateway paths, cross-AZ chatter, unnecessary Multi-AZ, wrong storage classRarely — a tool reports the charge, not the design decision that causes itYes, if the person looking knows the system and has protected time
Implements the fixOptional — the plan is written so your team can, or we can on a separate engagementNo — tools recommend, humans still change thingsYes, that is the entire point
Best whenYou want to know what to do, in what order, with the numbers attachedSpend is large, multiple teams share accounts, and you need continuous attributionSomeone senior already owns cost and has the calendar space to act on it

If cost is a recurring conversation at your company, the honest answer is to do both. Buy a FinOps tool for continuous tracking and anomaly alerts — CloudZero, Vantage and Cast AI are all good at that, and a one-off audit is not. Then run an audit once, because the architectural findings — the NAT Gateway path, the cross-AZ chatter, the commitment gap, the cluster sized for a peak that never comes — are the ones no dashboard will ever raise as a ticket.

Our Process

01

Read-Only Access & Kickoff — Day 1

You create one IAM role with the AWS-managed ReadOnlyAccess and Billing policies, scoped to an external ID. We install no agents and deploy nothing into your account. A 45-minute kickoff covers your architecture, what is production, what is disposable, and any change freezes we need to respect.

02

Automated & Manual Analysis — Days 2 to 6

Automated passes over the CUR, Compute Optimizer, Trusted Advisor and CloudWatch catch the mechanical waste. Then an engineer reads the bill by hand, because the expensive findings are almost always architectural and no tool flags them as anomalies — they have been steady-state for a year.

03

Findings Priced & Ranked — Days 7 to 9

Every finding gets a monthly dollar figure, an implementation effort in hours or days, and a risk rating. They are then ranked by return against effort and risk, so the list opens with things you can safely do this week and closes with the ones that need a design discussion.

04

Walkthrough Session — Day 10

A 90-minute session with your engineering and finance stakeholders, walking the findings with the engineer who produced them. You get the written report, the underlying queries, and a remediation backlog you can paste straight into Jira or Linear.

05

Implementation — Optional

Most teams take the plan and run it themselves; it is written for that. If you would rather not spend the sprint capacity, we can implement the changes — right-sizing, lifecycle rules, VPC endpoints, commitment purchases, Karpenter rollout — under a separate, separately scoped engagement.

Tech Stack

We choose the right tool for the job — not the trendiest one.

AWS logoAWS
AWS Cost Explorer
CUR / Athena
Compute Optimizer
Kubernetes logoKubernetes
Karpenter
Kubecost
Terraform logoTerraform
Python logoPython

Frequently Asked Questions

Why is my AWS bill so high?
In our experience it is almost never one thing. The recurring pattern is a handful of small, boring problems compounding: instances sized for a load that no longer exists, non-production running twenty-four hours a day, unattached EBS volumes and old snapshots, NAT Gateway data processing charges for traffic that should use a VPC endpoint, cross-AZ transfer between services that could be zonal, EKS nodes provisioned for peak, and steady-state usage with no Savings Plan coverage. None of them individually justifies a project. Together they are usually where the money went.
How much can we realistically save?
On a bill that has not been reviewed in a while, an audit of this kind typically identifies savings somewhere in the 20–40% range of the audited spend — and how much of that you capture depends entirely on how much of it you implement. Some estates come in well under that because the team has already done the obvious work; some come in over it because nobody has looked in three years. Anyone quoting you a number before they have seen your Cost and Usage Report is guessing. We will not, and we would treat a promise of 60% from a vendor who has not looked at your bill as a reason to be careful.
What access do you need?
A read-only IAM role with the AWS-managed ReadOnlyAccess and Billing policies, assumed with an external ID, plus access to the Cost and Usage Report — either the S3 bucket or a fresh export. That is it. We do not need write permissions, we do not install agents or sidecars, and we deploy nothing into your account. If your security team wants the role scoped down further, send us the policy and we will tell you what we lose.
How long does the audit take?
Two weeks from the day access lands. Day one is kickoff, days two to six are analysis, days seven to nine are pricing and ranking findings, day ten is the walkthrough. The scope and the price are fixed before we start, so it does not quietly become a six-week discovery phase. Larger estates — dozens of accounts, several regions — are still two weeks; we just prioritise the accounts carrying the spend.
Do you implement the fixes, or just report?
The audit is a report, deliberately. It is written so your own team can execute it without us: each finding has the change, the effort, the risk and the monthly dollar impact. Most clients run the quick wins themselves within a fortnight. If you would rather not spend the sprint capacity, we can do the implementation as a separate engagement — but that is your choice to make after you have seen the findings, not a condition of getting them.
Will any of this break production?
The audit itself cannot: it is read-only, and nothing runs inside your account. The recommendations are a different matter, which is why every finding carries a risk rating rather than a blanket assurance. Deleting an unattached EBS volume is zero risk. Downsizing a database ahead of your busiest trading week is not, and we will say so in the ranking. We also flag anything we could not verify — a resource with no tags, no owner and no obvious traffic gets marked for you to confirm, never for you to delete on our word.
Do we need to buy a FinOps tool as well?
Possibly, and we have no incentive either way. If your spend is large and shared across several teams, a tool like CloudZero, Vantage or Cast AI earns its subscription on continuous attribution and anomaly alerting — things a one-off audit genuinely cannot do. What a tool will not do is tell you that your NAT Gateway bill is an architecture problem, or which of eleven findings to do first. The two are complements. If you already own a tool, we will use its data rather than duplicating it.
Do you work with companies in the US, UK and EU?
Yes — most of our cost work is with teams in the US, UK and EU. We work in overlapping hours with both US coasts and European time zones, and we are used to operating inside client security reviews, DPAs and procurement. For EU clients we can keep all analysis and exported data within an EU region if data residency is a requirement.

Related Articles

View all →

Want to know where your AWS money actually goes?

Send us your Cost Explorer top ten services for last month. We will tell you within a couple of days whether there is enough on the table to justify an audit — and if there is not, we will say so rather than sell you one.