TL;DR: An idle RDS instance is pricier than an idle EC2 instance, harder to verify as truly idle, and scarier to delete — so teams freeze on it, and it bills 24×7 with zero connections. You can't "stop and forget" (RDS auto-restarts a stopped instance after 7 days, and Multi-AZ can't be stopped at all), so the durable fix is snapshot-and-delete: the final snapshot preserves the data at ~3% of the live cost, restorable in minutes. A Multi-AZ SQL Server instance doing nothing can be a $2,000+/month single-line win.
The numbers
- Flagged after 7 consecutive days of zero connections — conservative; many flagged instances have been idle for months.
- Idle-cost samples (Multi-AZ): db.t3.medium MySQL + 100 GB ≈ $140/mo; db.m5.large PostgreSQL + 200 GB ≈ $340/mo; db.r5.xlarge + 500 GB io1 ≈ $1,100/mo; db.r5.2xlarge SQL Server Std ≈ $2,200/mo (license fees dominate; Multi-AZ ≈ doubles instance cost).
- Snapshot-and-delete math: running db.m5.large + 200 GB ≈ $340/mo vs a 200 GB snapshot ≈ $10/mo (~97% cut), restorable to any size/type/region.
- Field examples: a SaaS retired 8 idle instances (incl. SQL Server) for
$3,100/mo ($37K/yr); a forgotten db.r5.4xlarge SQL Server Enterprise = $5,400/mo → snapshot at$60/mo ($64K/yr saved).
Do this
- Sort the finding by estimated savings descending — Multi-AZ and commercial-engine (SQL Server/Oracle license-included) instances are where the dollars are.
- Verify idle across four sources: CloudWatch
DatabaseConnectionsover 30 and 7 days, IaC/app-config grep for the endpoint, Route 53, and Secrets Manager (a secret referencing it means someone expects to connect). - Snapshot-and-delete as the default — the console's "final snapshot" on delete becomes a durable manual snapshot; name it
<db>-final-<date>and set a 90-day (or policy) reminder to delete the snapshot too. - For short-term doubt, stop first (single-AZ only, 7-day window) and watch for connection errors; convert a Multi-AZ instance to single-AZ first (halves cost immediately, then it's stoppable).
- Replace fake "Multi-AZ DR" with real DR — a same-region Multi-AZ standby isn't regional DR; a cross-region snapshot copy costs ~$20–100/mo vs $700–3,000/mo for the standby.
Gotchas
- "Stopped" isn't durable for RDS — auto-restart after 7 days (you keep paying storage meanwhile), and Multi-AZ can't be stopped at all. The only lasting stop is snapshot-and-delete.
- Automated backups vanish on deletion — only the manual/final snapshot survives; take one to capture current state.
- Read replicas, deletion protection, and RI commitments all complicate deletion — you can't delete a primary with active replicas, must clear the protection flag, and an RI keeps billing after the instance is gone.
- RDS Proxy pools connections — a proxy-fronted DB can show low
DatabaseConnectionswhile genuinely in use; check the proxy metrics. - Some "your" RDS instances are AWS-service-managed (QuickSight, etc.) — check tags before deleting.
Skip this if
- The instance is a quarterly reporting or compliance DB that's idle by design — verify against the 30-day connection view and tag it as an exception rather than deleting.
- You want a short-term pause rather than teardown — see RDS Instance Stop/Start (single-AZ, 7-day max); for highly variable workloads, Aurora Serverless Sizing auto-pauses instead. Same-shape but lower-stakes cleanup: Trusted Advisor — Idle Load Balancers; mind Reserved Instances before deleting. Parent: Trusted Advisor Cost Optimization.