Most AWS bills don't spike because of one big mistake. They creep up: a test server nobody switched off, a database sized for a launch that never happened, a snapshot policy that keeps everything forever.
Here are seven checks you can run in an afternoon. None of them needs new tooling, only access to the AWS console and Cost Explorer.
1. Find what's running but not used
Open Cost Explorer, group by Service, and look at the last three months. Any line that keeps growing without a matching growth in customers deserves a question. Then check the usual suspects:
- EC2 instances with near-zero CPU over the last 14 days
- Load balancers with no healthy targets
- NAT gateways in environments nobody uses
2. Delete unattached storage
When an EC2 instance is terminated, its EBS volumes are not always deleted with it. In the EC2 console, filter volumes by State: available. Those are volumes attached to nothing, and you're still paying for them. Snapshot them if you're unsure, then delete.
3. Right-size before you reserve
It's tempting to buy a Savings Plan first. Don't. Reserve capacity only after you've shrunk what you run, otherwise you commit to paying for an oversized instance for one to three years. AWS Compute Optimizer gives right-sizing recommendations for free.
4. Switch off non-production out of hours
Development and staging environments rarely need to run at 3 a.m. Scheduling them to stop in the evenings and on weekends can cut their compute cost by more than half. AWS Instance Scheduler or a simple Lambda on a schedule does the job.
5. Put lifecycle rules on S3
Logs, backups and exports pile up. Add a lifecycle rule that moves objects to a cheaper storage class after 30–90 days and expires what you'll never read. Also check for incomplete multipart uploads, which are invisible in most views and still billed.
6. Check data transfer
Data leaving AWS, or crossing availability zones, is billed and easy to overlook. If Cost Explorer shows a large data-transfer line, find which service produces it. Putting CloudFront in front of public content is often cheaper than serving it directly.
7. Set budgets and alerts
Create an AWS Budget with an alert at 80% of your expected monthly spend, sent to a mailbox someone reads. Turn on Cost Anomaly Detection as well. It's free and catches the surprise before the invoice does.
Do this on a schedule
A one-off cleanup helps, but costs creep back. Put a monthly 30-minute review on the calendar: open Cost Explorer, compare with last month, and chase anything that moved.
If you'd rather not do this by hand, InfraMind scans your account for idle and oversized resources as part of its analysis. And if you want a person to look at your setup, our team at SolidStack provides AWS cloud and DevOps consulting in the UAE — get in touch.