RDS charges for every hour the database is on, whether anyone uses it or not. The development database that is only touched during office hours, the one from a project that is on hold, the one set up for a test: they all add to the bill every month. RDS lets you stop them and stop paying the compute part, which is the largest. But it has a peculiarity that surprises everyone: after seven days AWS starts it again by itself. This guide explains how to stop it, what you save and how to handle that limit.
Before you start: what each thing means
- RDS
- Amazon's managed database service.
- Instance
- Each RDS database, with its size (class) and its storage.
- Stop
- Turn the database off while keeping data and configuration. It can be turned back on with the same settings.
- Compute versus storage
- When you stop, you stop paying for compute (the instance hours). Storage (the GB of disk and the backups) is still charged.
- Snapshot
- A copy of the database. Restoring it creates a new database. It is the route for long pauses.
- Multi-AZ and read replicas
- Advanced configurations. A database with read replicas cannot be stopped.
Step by step
Check that it can be stopped
RDS console, Databases, open yours. If it has read replicas or is itself a replica, it cannot be stopped: you would have to delete the replicas first. Multi-AZ databases can be stopped. And if something is still using the database (a website, a nightly program), warn them or pause it: when you stop it, whatever tries to connect will fail.
Take a manual snapshot
Actions, Take snapshot, with a name that includes the date. Stopping is safe, but if the pause is going to be long, this copy will be your plan B. When stopping, RDS also takes a snapshot of its own just in case.
Stop the database
Select the instance, Actions, Stop temporarily. Confirm. The status goes through "stopping" to "stopped" in a few minutes. From that moment the instance compute is not charged. If it had Multi-AZ, neither is the standby's.
Understand what you keep paying for
The allocated storage (the GB of disk, full or not), the manual snapshots and any automated backups there are, and, if it used Secrets Manager or other extras, those extras. For a small database, that is a few euros a month versus tens for the instance running. You will see it the following month in Cost Explorer filtering by RDS.
Count on the restart after seven days
It is the RDS rule: a stopped database turns itself on after seven days, so that it receives maintenance updates. It does not email you unless you have an RDS event notification set up. If the pause is a few weeks, you have two options: stop it again every time it starts (set yourself a weekly reminder, or schedule the stop with EventBridge Scheduler and the
StopDBInstanceaction), or the option in the next step.For long pauses: snapshot and delete
If the project is going to be on hold for months, take a final snapshot (RDS offers it when you delete) and delete the instance. You will pay only for the snapshot, which is cheap storage. When the project comes back, you restore the snapshot (it creates a new database with a different endpoint, as the RDS backups guide explains) and update the application's configuration. It is a quarter of an hour's work in exchange for months without paying for the instance.
What can go wrong
The database has turned itself on
Seven days have passed. Stop it again or move to the snapshot-and-delete plan. It is not a fault, it is the documented behaviour of RDS.
The website has been giving errors since I stopped it
Something was still using it. Start it (Actions, Start; it takes a few minutes) and find out what: sometimes it is a scheduled task nobody remembered.
I have stopped it and the bill has barely gone down
Look at how much storage it has allocated: a stopped database with 500 GB of disk is still paying for those 500 GB. And check whether there are accumulated snapshots. If most of the cost was storage, stopping is not the tool; shrinking the disk (migrating to a new, smaller instance) or deleting old backups is.
I want it to stop by itself every night
You can, with EventBridge Scheduler and the StopDBInstance and StartDBInstance actions, just like for EC2 machines (guide in this section). Watch out for the restart: if the database is stopped for more than seven days in a row (holidays), AWS will turn it on and your schedule will stop it again that night; it works, but it is worth knowing.
In Simplio
In Simplio you stop and start an RDS database with a button from the same list as your machines, give it a schedule (for example, on only during office hours) and Simplio takes care of the seven-day detail: if AWS turns it on by itself, it stops it again and tells you. On the Costs screen you see what each database costs running and what you save with it stopped.
The same task, in AWS and in Simplio
| In the AWS console | In Simplio | |
|---|---|---|
| Stop and start | RDS console, Actions, confirm; remember the weekly restart | Stop/start button on the database, and Simplio stops it again if AWS turns it on after seven days |
| Office hours | Two schedules in EventBridge Scheduler with permissions | Schedule on the database card, in your time zone |
| Know what you save | Cost Explorer the following month | Estimated cost of the database running and stopped, on the Costs screen |