What MongoDB Atlas backups cost, and how to work out your bill
On an M10 or larger cluster, snapshots cost $0.14 to $0.19 per GB-month on AWS. Turn on Continuous Cloud Backup for point-in-time restore and the whole backup is billed at the continuous rate instead: $1.00 to $1.55 per GB-month on AWS for everything between 5 GB and 100 GB.
For a cluster with 50 GB of snapshots, that is about $7 a month without point-in-time restore and about $50 with it (with 5 GB of oplog, at the cheapest AWS rate). Flex clusters keep 8 daily snapshots and list no separate backup charge.
Atlas prices backups by cloud provider, region and tier, and its pricing page does not add them up for you. This page puts MongoDB's published rates next to each other and works through the arithmetic. Every rate here is from the docs linked at the end. The 50 GB cluster is our example, not MongoDB's.
What each cluster type gets
| Cluster | Backups | Kept | Price |
|---|---|---|---|
| Free | Optional, one snapshot a day, in private preview | Last 4 snapshots | $0.10 a day, at most $3.00 a month per cluster |
| Flex | One snapshot a day, from 24 hours after the cluster is created | Last 8 snapshots | No separate charge listed. Flex itself is $8 to $30 a month |
| M10 and larger | Cloud Backup on a policy you can change, plus optional Continuous Cloud Backup | Set by the policy | Per GB-month of snapshot storage, below |
Free and Flex have no custom policy and no on-demand snapshot. Export to your own bucket is M10 and larger only. You can download a Flex snapshot from the cluster's Snapshots page.
M10 and larger: snapshot storage
| Cloud | Cloud Backup, per GB-month |
|---|---|
| AWS | $0.14 to $0.19 |
| Google Cloud | $0.08 to $0.12 |
| Azure | $0.34 to $0.65 |
The range is the spread across regions. Atlas bills the total size of all snapshots it keeps, and the bill shows it as GB-days, one line a day. MongoDB's own example: 400 GB of snapshots in an AWS region at $0.14 is $0.004603 per GB-day, $1.84 a day, and $55.20 for a 30-day month.
Snapshots are incremental, so after the first one each new snapshot stores what changed. MongoDB says a 10 GB cluster with 3 snapshots "may require less than 30 GB". How much less depends on how your data changes, which is why nobody can quote your bill from your data size alone. Check the backup line on last month's invoice.
The default policy decides how many snapshots you pay for
New M10+ clusters start with this policy, with snapshots taken at 18:00 UTC:
| Snapshot | Taken | Kept |
|---|---|---|
| Hourly | Every 6 hours (12 on NVMe), only with Continuous Cloud Backup | 7 days |
| Daily | Every day | 7 days |
| Weekly | Every Saturday | 4 weeks |
| Monthly | Last day of the month | 12 months |
| Yearly | 1 December | 1 year |
After a year that is up to 24 snapshots held at once, not counting the hourly ones. The monthly snapshots are kept longest, 12 months each. If your data changes a lot, their retention is the first setting to look at.
When the bill jumps
- A new full snapshot. Atlas keeps an extra full snapshot after a failover to another node, a change of tier, storage or IOPS, a new shard, or cloud provider maintenance that replaces the node. MongoDB's own version upgrades do not cause one.
- Up to the volume size. MongoDB says Atlas "can bill backup as high as the total storage capacity of the volume", depending on how the provider stores snapshots.
- Copies in other regions. Copying all snapshots to one more region roughly doubles the storage bill, plus the transfer between regions.
- A Backup Compliance Policy. With one on, you cannot delete snapshots or shorten retention to cut cost. Going below the policy's minimums takes a request to MongoDB support.
Continuous Cloud Backup
Point-in-time restore keeps the oplog for the restore window you choose, on top of the snapshots. Once it is on, MongoDB bills all of it, snapshots and oplog together, at these tiered rates:
| Storage used | AWS | Google Cloud | Azure |
|---|---|---|---|
| 0 to 5 GB | free | free | free |
| 5 to 100 GB | $1.00 to $1.55 | $0.60 to $0.95 | $1.00 to $3.95 |
| 100 to 250 GB | $0.75 to $1.20 | $0.45 to $0.70 | $0.75 to $2.95 |
| 250 to 500 GB | $0.50 to $0.80 | $0.30 to $0.50 | $0.50 to $2.00 |
| Over 500 GB | $0.25 to $0.40 | $0.15 to $0.25 | $0.55 to $1.00 |
Per GB-month. MongoDB's example: 115 GB of snapshots and oplog in AWS us-east-1
is (95 × $1.00) + (15 × $0.75) = $106.25 a month. The restore window cannot be
longer than the hourly snapshots are kept, which is 7 days by default.
One cluster, four ways to back it up
Say an M10 on AWS holds 50 GB of data (the dataSize that
db.stats() reports), and its snapshots add up to 50 GB. At the cheapest AWS rates
in the tables above:
| Option | Arithmetic | Per month |
|---|---|---|
| Cloud Backup | 50 GB × $0.14 to $0.19 | $7.00 to $9.50 |
| Cloud Backup, copied to a second region | about twice the storage, plus transfer | about $14.00 to $19.00 |
| Continuous Cloud Backup, 5 GB of oplog | (55 GB − 5 GB free) × $1.00 to $1.55 | $50.00 to $77.50 |
Your own mongodump once a week | about 4 × 50 GB out to the internet × $0.09 to $0.16 | $18.00 to $32.00, plus your bucket |
| Snapshot export to your bucket once a month | 50 GB × $0.125 | $6.25, plus the cloud's transfer |
The jump to point-in-time restore is the line to look at. It moves the same 50 GB of snapshots from $0.14 a GB to $1.00 a GB. If you need to restore to the minute, it is the only way inside Atlas. If a daily snapshot is enough, leave it off.
A copy outside Atlas
Every Atlas snapshot lives in your Atlas project. Two ways get a copy out:
-
Snapshot export writes gzipped Extended JSON to an S3, Google Cloud
Storage or Azure bucket, M10 and larger only. Atlas charges $0.125 per GB of the
uncompressed data, which it estimates from the sum of each database's
dataSize. -
mongodumpfrom your own machine reads every document over the network. Atlas bills that as data out: $0.09 to $0.16 per GB to the internet on AWS. Free and Flex clusters are not charged for outgoing data, so on those a dump costs nothing on the Atlas side.
What you store is the compressed archive, which is much smaller than dataSize.
On our test collection the archive came to 13% of it:
$ mongosh --quiet "mongodb://localhost:27017/app" --eval "db.stats().dataSize"
31748895
$ mongodump --uri "mongodb://localhost:27017/app" --archive=app.archive.gz --gzip
writing `app.orders` to "archive `app.archive.gz`"
done dumping `app.orders` (200000 documents)
$ ls -l app.archive.gz
-rw-r--r-- 1 root root 4211195 Oct 31 14:53 app.archive.gz
mongo:8.0, with Database Tools 100.20.0. Timestamps trimmed from the mongodump lines. Generated data repeats itself, so yours will compress less.
The MongoDB backup page has the full mongodump
setup: a read-only user, the Atlas connection string, a nightly script, and the restore
that checks each collection's count. SafeGrd runs the same dump against an Atlas
mongodb+srv:// string on a schedule, encrypts it, writes it to storage under
Object Lock, and checks on a schedule that it restores.
What a restore costs
Restoring a snapshot into an Atlas cluster is billed as network transfer. Downloading one over HTTPS also bills each hour the download link stays active, and the restore machine's storage. MongoDB's billing page does not list rates for those two, so check the invoice after your first test restore. Do one before you need it, so the cost and the time are known.
Rates and examples from MongoDB's backup costs, data transfer costs and Flex costs pages, its backup policy, Flex backup, Free cluster backup and export docs, all read on 31 October 2026. The 50 GB example is our arithmetic on those rates. Prices are in US dollars and change; check them before you budget.