$3,523/month in potential AWS savings identified
Prepared for DemoCo (fictional) · Reviewed by the eXommerce cloud optimization team
The short version
23.8% of the monthly bill is idle, oversized or uncommitted. About a third of it can be removed this week with near-zero risk.
Monthly savings by type of action
Ordered from least to most effort. Hover a bar for details.
Ranked by monthly savings
Each finding includes the resources affected, how we measured it, and a dry-run script in the delivery bundle.
| # | Finding | Action | Risk | Effort | $/month |
|---|---|---|---|---|---|
| 1 | Steady EC2 usage on on-demand pricing Commitments · ~$4,200/mo of flat baseline usage | 1-year no-upfront Compute Savings Plan at ~$4.30/hr commitment | ◆ Review | 15 min | $1,050 |
| 2 | Production RDS oversized Rightsizing · db.r5.2xlarge Multi-AZ, avg CPU 9% | Downsize to db.r5.xlarge in the maintenance window | ▲ Medium | 1 hr | $730 |
| 3 | 4 app servers at 12% average CPU Rightsizing · m5.2xlarge behind an ALB | Move to m5.xlarge, one instance at a time | ▲ Medium | 1 hr | $561 |
| 4 | 3 idle EC2 instances Cleanup · m5.xlarge, CPU <2% for 14 days, tagged env=staging | Snapshot, then stop or terminate | ● Low | 10 min | $420 |
| 5 | 380 snapshots older than 90 days Cleanup · ~6.4 TB billed, source volumes deleted | Delete, keeping the latest per volume | ● Low | 10 min | $320 |
| 6 | 14 unattached EBS volumes Cleanup · 2.1 TB gp2, detached 30–210 days | Snapshot, then delete | ● Low | 10 min | $210 |
| 7 | 9 volumes still on gp2 Rightsizing · 4.5 TB attached | Convert to gp3 live (no downtime) | ● Low | 20 min | $90 |
| 8 | Log groups set to never expire Cleanup · 1.8 TB in CloudWatch Logs | Set 30-day retention (export first if needed) | ● Low | 5 min | $54 |
| 9 | 2 load balancers with no targets Cleanup · ALBs from a retired service | Delete | ● Low | 5 min | $33 |
| 10 | NAT gateway in an unused dev VPC Cleanup · 0 GB processed in 30 days | Delete | ● Low | 5 min | $33 |
| 11 | 6 unassociated Elastic IPs Cleanup · $0.005/hr each | Release | ● Low | 2 min | $22 |
| Total | ~3.5 hrs | $3,523 |
Risk: ● Low no service impact expected · ▲ Medium brief restart or failover, schedule it · ◆ Review financial commitment, no infrastructure change.
Status: every figure here is a potential saving. Each becomes a validated recommendation only after checks for disaster-recovery standbys, scheduled jobs, auto-scaling, DNS and vendor dependencies and backup retention, and is implemented only once approved. Nothing in the account is changed automatically.
What every finding looks like
In the full report, each of the 11 findings gets this treatment. Two are shown here.
#6 · 14 unattached EBS volumes
$210/mo- Resources
- 14 gp2 volumes, 2,100 GB total (full list in the CSV bundle)
- Evidence
- State
available(not attached) for 30–210 days. No attach events in CloudTrail over the last 90 days. - Calculation
- 2,100 GB × $0.10/GB-month (gp2, us-east-1) = $210/month
- Risk
- ● Low Script snapshots each volume before deletion, so every one is recoverable.
# cleanup-ebs.sh — DRY RUN by default. Add --apply to execute. $ ./cleanup-ebs.sh --region us-east-1 [dry-run] vol-0a1b2c3d4e5f60001 200 GB gp2 detached 210d -> would snapshot + delete [dry-run] vol-0a1b2c3d4e5f60002 500 GB gp2 detached 146d -> would snapshot + delete ... [dry-run] 14 volumes, 2,100 GB, est. saving $210.00/month. Nothing changed.
#2 · Production RDS oversized
$730/mo- Resource
democo-prod-db, db.r5.2xlarge, MySQL, Multi-AZ- Evidence
- 30-day average CPU 9% (peak 31%). Freeable memory never below 38 GB of 64 GB. Connections peak at 140.
- Recommendation
- db.r5.xlarge (4 vCPU, 32 GB). Projected peak CPU ~62%, still comfortable headroom.
- Calculation
- ($2.00 − $1.00/hr, Multi-AZ on-demand) × 730 hrs = $730/month
- Risk
- ▲ Medium Multi-AZ resize fails over with ~60 seconds of connection drops. Do it in the maintenance window; reversible the same way.
Three steps to capture it
Start with the safe wins, then resize, then commit to the new, smaller baseline.
Clean up
Findings 4–6 and 8–11. Run the dry-run scripts, review, then apply. About 45 minutes total.
Resize
Findings 2, 3 and 7. gp3 conversion is live; schedule the RDS and EC2 changes in maintenance windows.
Commit
Finding 1. Buy the Savings Plan after resizing, so you commit to the smaller footprint, not today's.
Access used & method
Access (read-only)
- One IAM role, External ID-locked to this audit
ViewOnlyAccess,AWSBillingReadOnlyAccess,ComputeOptimizerReadOnlyAccess- No data access (S3 objects, database rows, secrets)
- No changes made to the account
Data sources
- Cost Explorer: last 3 months by service and usage type
- CloudWatch: 14–30 day utilization metrics
- AWS Compute Optimizer recommendations
- Resource inventory across scanned regions
Delivery bundle: this report (PDF), findings CSV with every resource ID, dry-run cleanup scripts, and access-removal commands.
Every audit is reviewed by the eXommerce cloud optimization team before results are shared. Each finding in this report was checked against the account's own cost and usage data.
Want this for your AWS account?
Start with the free audit: receive your initial findings within 24 hours of successful AWS access, then decide whether you want our help acting on them.
Get my free audit →Sample only. DemoCo is fictional and not an eXommerce client. Prices are AWS us-east-1 on-demand list prices and may differ from your account's pricing, region or discounts. © eXommerce LLP
