Estimate monthly cost of storing your database's data across AWS RDS, Aurora, Google Cloud SQL, MongoDB Atlas, DynamoDB, and self-managed block storage — accounting for index overhead and replication.
Enter your details and click Calculate to see results
Database storage cost is easy to underestimate because the number that matters isn't your raw row count times row size — it's that figure plus index overhead plus however many replicas your provider keeps for durability and availability. This calculator walks through that full chain and prices the result across six common managed and self-managed storage options, so you can compare AWS RDS, Aurora, Google Cloud SQL, MongoDB Atlas, DynamoDB, and plain block storage on equal footing for the same dataset.
Enter your number of rows and average row size in bytes to get raw data size. The calculator then adds your index overhead percentage (default 30%, typical for moderately indexed tables) to account for the extra storage indexes consume, and multiplies the result by your replication factor (1 for a single copy, 2 or 3 for high-availability setups with live replicas). That final "total size" figure is then multiplied by each provider's published per-GB-per-month storage rate — AWS RDS gp3 ($0.115/GB), Aurora storage ($0.10/GB), Google Cloud SQL ($0.17/GB), MongoDB Atlas dedicated tier (~$0.25/GB), DynamoDB standard ($0.25/GB), and self-managed block storage ($0.08/GB) — to produce a side-by-side monthly cost comparison.
Storage pricing differences of 2-3× between providers compound quickly at scale — a 500 GB dataset costs roughly $40/month on self-managed block storage but over $125/month on MongoDB Atlas or DynamoDB, purely on storage. Factoring in index overhead and replication before comparing providers avoids the common mistake of budgeting only for raw data size and being surprised when the real bill (with indexes and replicas) turns out 50-100% higher than expected.
Raw data size is simply rows × average row size. Wide tables with many columns, large text fields, or JSON blobs push average row size well above the typical 200-500 byte range, directly increasing storage cost.
Every index you create is a separate data structure stored alongside your table, typically adding 20-40% more storage. Indexes speed up reads dramatically, but each one has a real, ongoing storage cost worth weighing against the query performance it buys.
Keeping 2 or 3 live copies of your data across nodes protects against node failure and data loss, but directly multiplies the storage you're billed for. Weigh your uptime requirements against the added storage cost when choosing a replication factor.
Common questions about database storage cost
Explore other tech tools