TL;DR: RDS lets you stop non-production instances when nobody's using them — compute charges vanish, you keep paying only for storage (EBS volumes + backups). It's the "turn off the lights when you leave" of database cost: obvious in theory, surprisingly rare in practice, and dramatically effective. Dev/test, reporting, and low-traffic databases that run only during work hours routinely save ~73% of compute. The catch is a 7-day auto-restart and a few easy-to-miss traps.
The numbers
- Stopped = storage only (EBS + automated backups + any manual snapshots); zero compute, zero Multi-AZ standby, zero primary read-replica compute.
- Restart is 2–5 minutes with data, settings, and endpoints unchanged.
- Worked example — a db.m5.large dev DB (~$0.15/hr,
$109/mo always-on +$89/mo saved**; ×10 dev DBs ≈ $890/mo, ~$10,600/yr).$12 storage): stopped 12h/night + weekends ≈ 132 running hrs/mo → **$32/mo** vs $121 (** - Field examples: 8 dev/staging instances on AWS Instance Scheduler cut compute ~73% (~$496 →
$204/mo); a weekly-reporting db.m5.xlarge run Sun 11 PM–Mon 12 PM saved ~92% ($2,400/yr).
Do this
- Automate it — AWS Instance Scheduler, or EventBridge rules + Lambda, tagging instances (
Environment=Dev) to bulk-manage: stop at 7 PM, start at 7 AM weekdays. - Stop read replicas separately — stopping the primary does not stop them; 3 replicas left running means you save only ~25% of compute.
- Plan around the 7-day auto-restart — AWS force-starts a stopped instance after 7 days (for backups/patching); re-stop via script, or accept the cycle.
- Make ETL/reporting jobs tolerate startup — the 2–5 min boot means downstream jobs need retry/wait logic.
- For shutdowns longer than 7 days, snapshot-and-delete — take a manual snapshot, delete the instance (only ~$0.095/GB-mo snapshot storage), restore when needed (10–30 min).
Gotchas
- "Stopped" isn't free — EBS storage and automated backups keep billing; only compute stops.
- Multi-AZ: stopping the primary stops the standby — fine for dev/test, a non-starter for HA production.
- Backups still run while stopped — AWS briefly starts the instance, backs up, stops it again (small compute charge), and the 7-day clock resets each time.
- Never stop production "just for the weekend" — it breaks anything expecting always-on connectivity.
Skip this if
- The database serves live production traffic, has an uptime SLA, or feeds services that assume always-on connectivity — leave it running.
- The instance is already right-sized and runs steady 24/7 by design — the lever there is Reserved Instances plus rightsizing, not stop/start. For connection-storm-driven upsizes on the same instances, see RDS Proxy.