RDS Backups#
One is none, two is one.
Backups are important. We’re going to break things in creative, irreparable ways from time to time, and RDS can automatically back up your database.
- Daily backups: Taken during your preferred backup window (you can set this)
- Transaction logs: Continuously backed up (enables point-in-time recovery)
- Retention period: Configurable (1-35 days for most engines)
- Storage: Backups stored in S3, separate from your database instance
- Cost: Storage for backups is charged separately (about
$0.095per GB per month)
Cost check: Backups cost money. A 7-day retention period means you’re storing 7 days of backups (at ~$0.095/GB/month). For a 20 GB database that can be ~140 GB of backup storage. Monitor backup costs, and reduce retention or delete snapshots when done.
What’s in a Backup?#
RDS backups include:
- Full database snapshot: Complete copy of your database at a point in time
- Transaction logs: All changes since the last backup (enables point-in-time recovery)
The combination of full backups plus transaction logs lets you restore to any specific time within your retention period.
Restoring from Backups#
You can restore your database in several ways.
Point-in-Time Recovery#
Restore to any specific time within the retention period:
- Uses full backup + transaction logs
- Can restore to the exact second before a data loss event
- Useful when you know exactly when something went wrong
Restore from Snapshot#
Restore to a specific backup snapshot:
- Faster and simpler than point-in-time recovery
- Useful for restoring to a known good state
- You can also create manual snapshots at any time
Restore to New Instance#
All restores create a new database instance:
- Original instance remains unchanged
- This means “restoring” is also useful for testing, cloning, or migration
- You can restore to test changes before applying to production
Backups are the preferred method for cloning databases. Instead of exporting and importing data manually, just restore from a backup. It’s faster, more reliable, and creates an exact copy. You don’t even need the DB’s credentials to migrate it.