All cheat sheets
Databasescheat sheet

RDS Instance Stop/Start

Stop RDS instances during off-hours and the compute meter stops (storage keeps billing). Scheduling dev/test and reporting databases nights and weekends saves up to 73% — mind the 7-day auto-restart and don't forget read replicas.

Last reviewed: July 14, 2026

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 + $12 storage): stopped 12h/night + weekends ≈ 132 running hrs/mo → **$32/mo** vs $121 (**$89/mo saved**; ×10 dev DBs ≈ $890/mo, ~$10,600/yr).
  • 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

  1. 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.
  2. Stop read replicas separately — stopping the primary does not stop them; 3 replicas left running means you save only ~25% of compute.
  3. 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.
  4. Make ETL/reporting jobs tolerate startup — the 2–5 min boot means downstream jobs need retry/wait logic.
  5. 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.

Run this audit with your AI assistant

Paste this into Claude, ChatGPT, or any agent that can run the AWS CLI with read-only credentials. It audits your account for exactly the waste this sheet describes — and changes nothing.

You are auditing an AWS account's RDS instances for stop/start
scheduling savings. Use the AWS CLI with READ-ONLY credentials. Do not
create, modify, or delete anything — report findings and recommended
(unapplied) fixes only.

1. Inventory: aws rds describe-db-instances — capture instance class,
   engine, Multi-AZ, tags (Environment=Dev/Test/Prod), and read replicas
   (ReadReplicaDBInstanceIdentifiers). Estimate $/hr per instance.
2. Idle windows: pull CloudWatch DatabaseConnections + CPUUtilization
   hourly over 14-30 days. Flag non-prod instances with predictable idle
   stretches (nights/weekends). Reporting DBs queried only on a schedule
   are prime.
3. Savings math: current 24/7 = $/hr × 730. Scheduled = $/hr × active
   hrs/wk × 4.33. A weekday-9-6 dev DB runs ~45 of 168 hrs (~73% compute
   cut). Storage continues either way.
4. Traps to flag: read replicas that must be stopped SEPARATELY; the
   7-day auto-restart (needs re-stop automation); Multi-AZ prod (stopping
   primary stops standby — non-prod only).

Report a table: instance | env | class | $/hr | idle window | est. $/mo
saved | notes (replicas, 7-day rule, snapshot-delete for long shutdowns).
Change nothing.
Works with any assistant that can run shell commands.

Want the guided version?

The RDS Instance Stop/Start walkthrough covers this topic interactively — it asks about your setup, branches to what’s relevant, and quizzes you on the tricky parts. Free and anonymous.

Start the walkthrough