How to Reduce Your AWS Bill Without Sacrificing Performance
A practical order of operations for cutting AWS spend — rightsizing, storage tiers, data transfer, and commitments — without degrading latency or reliability.
A practical order of operations for cutting AWS spend — rightsizing, storage tiers, data transfer, and commitments — without degrading latency or reliability.
Most AWS cost advice starts in the wrong place. It tells you to buy Reserved Instances, which locks in whatever you are currently over-provisioning. The order matters: measure, remove, rightsize, tier, then commit. Commit last, because a commitment on wasteful usage just makes the waste cheaper per unit, not smaller.
This is the sequence we run when a client hands us an AWS account and a bill they cannot explain.
Open Cost Explorer and group by service, then by usage type, for the last 90 days. Almost every SMB bill we see concentrates in four places:
Turn on Cost Allocation Tags before you change anything. Without Environment, Service, and Owner tags you are optimizing blind, and you cannot prove afterwards that the savings came from your change and not from a quiet month.
Deletion is the only optimization with zero performance risk. Before touching instance sizes, sweep for resources nothing is using:
This pass alone typically removes 10–20% of a neglected bill and costs you nothing in latency.
Rightsizing is where teams get nervous, so anchor it in data rather than instinct. Use CloudWatch metrics over a full business cycle — at least four weeks, so you capture month-end batch jobs — and look at p95, not average. Average CPU hides the spike that matters.
A workable rule: if p95 CPU is under 30% and p95 memory is under 50% across four weeks, drop one instance size and watch p95 latency for a week. One size at a time. Two sizes at once means you cannot attribute a regression.
Two structural wins usually beat any amount of instance tuning:
m7g/r7g/c7g instances and Graviton RDS run roughly 20% cheaper than the equivalent x86 size at comparable or better performance for most JVM, Go, Node, and Python workloads. The migration cost is a rebuild of your container images for arm64, which is usually a one-line change in a multi-arch build.Spot Instances belong on stateless, interruption-tolerant work — batch jobs, CI runners, async workers, and stateless web tiers behind a load balancer. They can cut that compute by 60–90%. They do not belong under a stateful primary database or anything with a long, non-resumable startup.
Storage tiering is the highest-ratio saving with the least performance exposure, provided you match the tier to the access pattern:
Add S3 Lifecycle rules so this keeps working without anyone remembering to run it, and set an expiration on incomplete multipart uploads — a common source of storage nobody can see in the console.
This is the line item most teams discover late.
Only after the four steps above have settled — otherwise you are locking in waste for one to three years.
Savings Plans (Compute Savings Plans in particular) are more flexible than Reserved Instances: they apply across instance families, sizes, regions, and to Fargate and Lambda, in exchange for a slightly lower discount than a standardized RI. For most SMBs the flexibility is worth more than the extra few points.
Commit to your stable floor, not your peak. Look at the last 90 days of post-optimization spend, take the level your usage never drops below, and commit to roughly 70% of it on a one-year term. Let variable load ride on-demand or Spot. A three-year commitment on infrastructure you might re-architect next quarter is a bet, not a saving.
Cost optimization that is not monitored regresses within two quarters. Three controls hold the line:
We take on AWS cost and infrastructure work as fixed-scope engagements: a review of your account against the sequence above, the Terraform to implement what we agree on, and the code in your repo and your cloud account at handoff. If you want the bill explained before you commit to changing anything, get in touch.
Need this built? Our team does fixed-scope devops & cloud — scoped, priced and delivered in weeks.