AWS cost · RDS
Manual RDS snapshots never expire, and they bill
RDS has a retention setting, and most people assume it covers their backups. It covers the automated ones. A manual snapshot has no retention at all: it exists until a human deletes it, and it outlives the database it came from.
Backup storage past the free allowance is $0.095/GB-month in us-east-1, so a 500 GB snapshot is about $47.50/month. The free allowance is the part that decides whether you owe anything at all, and almost nobody knows the number.
What backup storage costs
| What | Cost | Note |
|---|---|---|
| Backup storage above the free allowance | $0.095/GB-month | us-east-1, standard RDS engines |
| The free allowance | $0.00 | equal to your total allocated DB storage in the region |
| A 500 GB snapshot, all of it billable | ~$47.50/month | and it outlives the database |
| Aurora backup storage | $0.021/GB-month | a fifth of the standard rate |
The free allowance decides whether you owe anything
AWS gives you backup storage equal to your total allocated database storage in a region, free. Run 200 GB of databases and the first 200 GB of backups costs nothing.
Automated backups usually eat most of that, which is why manual snapshots tend to be the part that gets billed. But it also means the honest answer for a small account with one database and one snapshot can be zero. Work out where you sit against the allowance before treating a snapshot list as a bill.
Why they survive everything
Deleting an RDS instance offers to take a final snapshot. That snapshot is manual, by design - it exists so the data outlives the database. Then the project moves on and nothing ever deletes it.
So the oldest snapshots in an account usually belong to databases nobody can name. They look risky to delete for exactly the reason they should be reviewed: nobody knows what is in them.
How to find them
# manual snapshots only - the automated ones expire on their own
aws rds describe-db-snapshots --snapshot-type manual \
--query 'sort_by(DBSnapshots,&SnapshotCreateTime)[].{Id:DBSnapshotIdentifier,Db:DBInstanceIdentifier,GiB:AllocatedStorage,Created:SnapshotCreateTime,Engine:Engine}' \
--output tableOldest first, and read the database name column. A snapshot whose source instance no longer exists is the strongest candidate on the list - and also the one nobody will authorise deleting without asking around first.
What deleting costs
Deleting a snapshot is permanent, and it is often the last copy of something. A deliberate compliance or disaster-recovery snapshot looks exactly like an abandoned one, so the check to make is ownership, not age.
If the data has to be kept but not at backup-storage prices, export the snapshot to S3. It lands as Parquet, sits at S3 rates rather than $0.095/GB-month, and can be tiered down from there. The cost is that restoring it is no longer a one-click operation.
Snapshots are one half of what RDS charges for storage. The other is the database volume itself, covered in RDS storage and backups.
Want to know which snapshots are old enough to question? Connect your account read-only and see what it is wasting, in real dollars.
The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.
Frequently asked questions
Do manual RDS snapshots expire?+
No. The retention window people rely on applies to automated backups only - RDS deletes those on schedule. A manual snapshot lives until somebody deletes it by hand, and it survives the deletion of the database it came from.
How much does RDS backup storage cost?+
$0.095 per GB-month in us-east-1 for standard engines, above a free allowance. Aurora is much cheaper at $0.021 per GB-month. A 500 GB snapshot that falls entirely outside the free allowance is about $47.50/month.
What is the RDS free backup allowance?+
AWS gives you backup storage equal to 100% of your total allocated database storage in a region at no charge. If you run 200 GB of databases you get 200 GB of backups free. Automated backups usually consume most of it, so manual snapshots are typically the part that gets billed - but a single small database with one snapshot may cost nothing at all.
Why do I have snapshots for databases that no longer exist?+
Because deleting an RDS instance offers to take a final snapshot, and that snapshot is manual. It is created precisely so it survives the deletion, and then nothing ever removes it. Snapshots for long-dead databases are the most common kind of forgotten one.
Is it safe to delete an old RDS snapshot?+
Deletion is permanent, and a snapshot is often the only remaining copy of something. Some are deliberate compliance or disaster-recovery copies and look identical to abandoned ones. Check tags and whoever owns the database before deleting, and prefer exporting to S3 if the data must be kept but not at backup-storage prices.
How do I stop this happening again?+
There is no retention setting for manual snapshots - that is the whole point of them. What works is a periodic review, or exporting anything that must be kept long-term to S3, where the same data sits at a fraction of backup-storage pricing and can be tiered down further.
Related cost breakdowns
Why Athena is expensive: $5 per TB scanned
Athena charges $5 per terabyte scanned, so an unpartitioned CSV table can cost 10 to 100 times more than the same data as partitioned Parquet. Here is where the scan cost comes from and how to cut it.
Why RDS looks expensive - and how to right-size the instance
A low-traffic MySQL database runs fine on db.t4g.small (~$23/month), not the $100+ tier an AI often quotes. Size RDS to your working set, not your row count.
Your dev and staging RDS databases are billing 24/7
A dev database used 8 hours a day still bills for 24. Scheduling stop/start on non-production RDS saves 50 to 80%. Here is how to stop paying for databases nobody is using at night.
Multi-AZ is doubling your RDS bill - do you need it?
Multi-AZ runs a standby replica around the clock, so it roughly doubles the instance cost. Essential for production, wasteful for dev and staging. Here is how to tell, and how to fix it.