← Insights · October 2026 · 7 min read
Is a $10k a Month AWS Bill Normal? What’s Usually Inside It
“Normal” isn’t a number. It’s a shape. Most companies paying AWS $5,000 to $15,000 a month with one to three engineers and nobody who owns the bill end up with the same shape, and the same 20–30% of waste hiding in the same five places.
The typical shape of a small-company bill
Open Cost Explorer, group by service, and a $10k bill almost always breaks down close to this. The ranges come from the accounts we review, not from AWS, so treat them as a sanity check rather than a benchmark.
| Line | Typical share | What inflates it |
|---|---|---|
| EC2 instances | 35–50% | Oversized instances, previous-generation families, dev and QA running 24/7, everything on-demand |
| RDS and other managed databases | 15–25% | Multi-AZ on non-production, oversized classes, zero reservations (Savings Plans don’t cover RDS) |
| EBS, snapshots, S3 | 8–15% | gp2 volumes, orphaned volumes, snapshot chains nobody prunes, logs sitting in S3 Standard forever |
| Data transfer, NAT, load balancers | 5–15% | NAT gateway processing, cross-AZ chatter, public IPv4 addresses, load balancers with nothing behind them |
| Everything else | 5–10% | CloudWatch log ingestion with no retention, a Support plan nobody opens tickets on, KMS, Route 53, Secrets Manager |
If your top line is something other than compute or a database, that is the first thing worth a look. A bill where “EC2-Other” or “Data Transfer” sits in the top three is almost always carrying waste.
The five lines that are almost always inflated
- On-demand compute with no commitments. If more than 70% of your steady-state EC2 and Fargate usage is on-demand, you are paying roughly 25–40% more than you need to for the same servers. A one-year, no-upfront Compute Savings Plan sized to 70–80% of your baseline is the lowest-risk fix on AWS. Rightsize first, then commit; we cover the order in Reserved Instances vs. Savings Plans.
- Non-production running 168 hours a week. Your developers use dev and QA for maybe 50 of those hours. In small accounts non-prod is often 25–35% of the whole bill, so stopping it nights and weekends is frequently the single largest saving available, and it needs no architecture change.
- EC2-Other. This line is where storage and networking hide: EBS volumes, snapshots, NAT gateway hours and data processing, and public IPv4 addresses. Every public IPv4 costs about $3.65 a month whether anything uses it or not. A NAT gateway is about $33 a month plus $0.045 for every gigabyte through it, and we routinely find one per availability zone in accounts with one small workload.
- Databases nobody rightsized since launch. Multi-AZ on a dev database doubles its cost for no reason. A
db.m5ordb.r5class moved to the Graviton equivalent (db.m7g,db.r7g) is about 20% cheaper with no application change. And because Savings Plans do not apply to RDS, a healthy compute commitment with zero database reservations is the most common gap we see. - CloudWatch Logs with no retention. Log ingestion is $0.50 per GB in the standard log class, and a single chatty service at debug level can add a few hundred dollars a month. Set retention on every log group and move noisy, rarely-read groups to the Infrequent Access class, which halves the ingestion price.
Six signals that you are overpaying
- Average CPU under 10% on most instances in CloudWatch.
- Savings Plan or Reserved Instance coverage under 50% on workloads that have run for more than six months.
- Dev and test environments costing more than 30% of what production costs.
- EC2-Other larger than 20% of your EC2 instance spend.
- No cost allocation tags, so nobody can say what one application or team costs.
- The bill has grown faster than traffic or headcount for three months in a row.
Two or more of these and there is real money on the table. Four or more and 25–35% is a realistic target.
What a healthy $10k bill looks like
Same workload, same traffic, run well: 70–80% of steady compute under a commitment, non-prod below 25% of the total, Graviton on managed services, lifecycle rules on logs and backups, a budget that emails somebody at 80%, and tags that let you answer “what does this cost?” in one click. In our experience the same $10,000 of usage lands at $6,500–$8,000 a month once that work is done, and stays there.
What to do this afternoon
Start with the 20-minute Cost Explorer walkthrough so you can see your own version of the table above. Then ship the five quick wins: gp3, orphaned volumes, idle IPs, non-prod scheduling, S3 lifecycle. Those alone usually take 5–15% off before anyone touches an instance size.
Want someone to do this for you?
The AWS Bill Review is a fixed $2,500, takes one week, and gives you a ranked savings plan with the exact steps. If we can’t find at least $5,000 a year in savings, it’s free.
Written by Ruben Rivero, AWS Certified Solutions Architect – Professional. 12+ years running enterprise AWS environments.