How Much Are You Paying for Databases Nobody Uses?
Let's do a quick exercise. Open your AWS console right now and look at your RDS instances. How many of them are actively serving traffic? And how many are sitting there because "someone might need that data someday?"
If you're like most teams, the answer is uncomfortable.
The idle database tax
Here's what AWS charges you for the most common RDS instance types in us-east-1, running 24/7, doing nothing:
| Instance | vCPUs | Memory | Compute/mo | 20GB gp3 Storage | Total/mo | Total/yr |
|---|---|---|---|---|---|---|
| db.t4g.micro | 2 | 1 GB | $11.68 | $2.30 | $13.98 | $167.76 |
| db.t3.micro | 2 | 1 GB | $13.14 | $2.30 | $15.44 | $185.28 |
| db.t4g.small | 2 | 2 GB | $23.36 | $2.30 | $25.66 | $307.92 |
| db.t3.small | 2 | 2 GB | $26.28 | $2.30 | $28.58 | $342.96 |
| db.t3.medium | 2 | 4 GB | $52.56 | $2.30 | $54.86 | $658.32 |
That's just compute and 20GB of gp3 storage at $0.115/GB/month. Most real databases also have automated backups, snapshots, and more storage than 20GB.
These costs are 24/7. The database doesn't know it's idle. AWS doesn't give you a discount because nobody queried it this month.
Multiply by "a few legacy databases"
Most teams don't have one idle database. They have three. Or seven. Here's what that looks like:
Scenario: Small SaaS team, 3 legacy databases
You sunsetted a feature last year and kept its PostgreSQL database. You have a staging database from a migration that "might still be useful." And there's that analytics database from the old dashboard.
| Database | Instance | Storage | Monthly Cost |
|---|---|---|---|
| Legacy product DB | db.t3.small | 50 GB | $32.03 |
| Post-migration staging | db.t4g.micro | 15 GB | $13.41 |
| Old analytics DB | db.t3.medium | 100 GB | $64.06 |
| Total | $109.50/mo |
That's $1,314 per year for databases that get queried maybe a handful of times between them. And this is a modest example — it's not uncommon for teams to have 10-15 idle databases burning over $500/month.
"But I might need that data"
This is the real reason these databases stay running. It's not laziness — it's a reasonable fear. What if a customer asks about their old account? What if legal needs transaction records from 2023? What if there's a bug and you need to compare against the old schema?
The data has value. The running database server does not.
The question isn't whether to keep the data. The question is whether you need a $30/month server running 24/7 to store data you query once a quarter.
What the data actually costs to store
Here's where the math gets interesting. Let's take that 50GB legacy product database and look at what the raw data costs in different storage options:
| Storage method | Size on disk | Monthly cost | Annual cost |
|---|---|---|---|
| RDS db.t3.small (50GB gp3) | 50 GB | $32.03 | $384.36 |
| RDS db.t4g.micro (50GB gp3) | 50 GB | $17.43 | $209.16 |
| S3 Standard (raw dump) | 50 GB | $1.15 | $13.80 |
| S3 Standard (compressed) | ~12 GB | $0.28 | $3.36 |
A pg_dump file compressed with gzip might get you 4x compression on a typical relational database. Columnar formats compress even better — typically 2-5x on the original database size — because they store each column contiguously, which means repeated values, nulls, and similar data types compress extremely well.
So that 50GB database? In columnar format it might be 10-15GB. On S3 at $0.023/GB, that's $0.23-$0.35 per month instead of $32.03 per month. You're paying roughly 100x more to keep the server running.
The pg_dump trap
The obvious objection: "I'll just pg_dump it to S3 and delete the RDS instance."
That works for storage. But the next time someone needs data from that database, here's what happens:
- Download the dump from S3
- Spin up a new RDS instance (or use a local PostgreSQL)
- Restore the dump (which takes minutes to hours depending on size)
- Run your query
- Remember to shut down the instance when you're done
- Get a surprise bill next month because you forgot step 5
For a 50GB database, restoring a dump takes 30-60 minutes. If you're doing this once a quarter for a compliance check or a customer request, the friction is enough that most people just keep the server running.
The actual cost of "just in case"
Let's say you query each idle database 4 times per year. Here's your effective cost per query:
| Setup | Annual cost | Queries/yr | Cost per query |
|---|---|---|---|
| db.t3.small running 24/7 | $384 | 4 | $96.00 |
| db.t4g.micro running 24/7 | $209 | 4 | $52.25 |
| pg_dump + restore when needed | ~$15 + time | 4 | ~$3.75 + 1hr labor |
Ninety-six dollars per query. For a SELECT * FROM users WHERE email = 'someone@example.com'.
What you should actually do
The first step isn't buying any tool. It's auditing what you have.
Right now, go check:
- How many RDS instances are running in your account?
- When was the last time each one was queried? (Check CloudWatch
DatabaseConnectionsmetric) - What's the total monthly spend on instances with near-zero connections?
If you find databases that haven't been queried in 30+ days, you have three options:
Option 1: Delete it. If you genuinely don't need the data, stop paying for it. Take a final snapshot first if it makes you feel better.
Option 2: Dump and store. pg_dump to S3, delete the instance. Accept that restoring will take effort when you need it. Good for data you'll almost certainly never query again.
Option 3: Archive to a queryable format. Convert the database to a compressed, encrypted format that you can query directly from cloud storage without restoring a server. This is the option that didn't exist until recently — and it's what we built ColdPlane to do.
With ColdPlane, that 50GB database gets archived to encrypted cloud storage, queryable with SQL — no server to maintain, no restore step, no surprise bills.
But honestly, even if you don't use ColdPlane — stop paying $30/month for a database nobody queries. The data is valuable. The running server is not.
ColdPlane archives PostgreSQL and MySQL databases to encrypted cloud storage and lets you query them with SQL — without a running database server. Start free with 5GB of storage.