Short answer: the advertised per-GB price is usually the smallest part of the bill. What actually decides cost is how much data you store after deduplication, what you pay to get it back, and how many engineer-hours the system consumes per year.
Teams pick the cheapest per-GB option, then discover the bill in the one month they had an incident.
The four costs
1. Storage. The advertised number. Real, and rarely the biggest.
2. Transfer. Getting data in is usually free. Getting it out is usually not, and a restore is by definition a large egress event. Cloud egress is billed per GB and a full restore of 500 GB can cost more than a month of storing it.
3. Operations. Per-request charges on PUT, GET and LIST. Invisible for a handful of large files, significant for a backup made of many small chunks. A system that uploads millions of tiny objects can spend more on requests than storage.
4. People. The one nobody puts in the spreadsheet, and usually the largest. An engineer maintaining backup infrastructure for four hours a month is roughly $5,000–8,000 a year of loaded cost. That buys a great deal of managed storage.
The traps in cheap tiers
Archive tiers advertise prices that look unbeatable, and they are — for archives. Used for backups, three mechanisms bite.
Minimum storage duration. Objects have a minimum billable lifetime — commonly 30 days for infrequent-access tiers and 90 or 180 days for deep archive. Delete earlier and you are charged the remainder anyway. A nightly backup pruned after 14 days into a 90-day-minimum tier bills for 90 days each. Your rotation quietly costs 6× what you calculated.
Retrieval fees and delay. Deep archive retrieval is charged per GB and takes hours. During an incident, that delay is your RTO, and the fee arrives on top.
Per-object overhead. Archive tiers add metadata overhead per object. Many small objects means paying for bytes you did not store.
The practical rule: archive tiers are for archives — data you must keep and expect never to read. Recent backups belong in standard storage where restore is fast and predictable. See backup vs archive.
Deduplication changes the arithmetic
Cost comparisons usually assume you store what you back up. With content-defined chunking you do not.
A 50 GB database, 2% daily churn, 30 daily snapshots:
| Stored | At $0.023/GB/mo | |
|---|---|---|
| Naive — 30 full copies | 1,500 GB | ~$34.50/mo |
| Deduplicated | ~80 GB | ~$1.84/mo |
Same retention, same restore points, 19× less storage. Comparing per-GB prices between a deduplicating system and a plain bucket compares different quantities of GB, which is why the cheaper-looking option frequently costs more.
The exception is data that does not dedupe — photos, video, already-compressed archives. There, raw price genuinely is the number that matters.
A worked comparison
A small production stack: 50 GB database, 200 GB uploads, 30-day retention, one full restore a year.
| Object storage, DIY | Deduplicating service | |
|---|---|---|
| Stored after dedupe | ~7.5 TB (no dedupe) | ~320 GB |
| Storage / mo | ~$172 | included in plan |
| Egress on one 250 GB restore | ~$22 | included |
| Request charges | $2–10 | included |
| Scripting, retention, encryption, monitoring | ~4 h/mo | 0 |
| Engineer cost / yr | ~$6,000 | — |
| Roughly, per year | ~$8,100 | ~$240 (Pro, $20/mo) |
Prices vary by provider and region; check current rates rather than trusting a table in an article. The proportions are the point: the storage line is not where the money goes.
Run your own numbers with the backup cost calculator, which includes the engineering-time line most comparisons omit.
When DIY is genuinely cheaper
This is not a case for managed services in every situation.
Very large, non-deduplicating datasets. Petabytes of video. At that scale raw storage dominates everything else and you should negotiate directly with a provider.
You already run the infrastructure. If there is a storage team, a backup host and monitoring in place, marginal cost is close to zero. See Borg and restic.
Regulatory constraints on data location that only self-hosting satisfies.
Egress is the constraint. Backing up out of a cloud provider means paying their egress every night. Keeping backups within the same provider avoids that — at the cost of the account-loss blast radius that off-provider backups exist to solve. That is a real trade-off, not a trick question.
Cutting the bill without cutting cover
Stop backing up what you can rebuild. Caches, node_modules, package archives, container image layers. See what to skip on a Linux server.
Dump databases, don't image volumes. A logical dump is a fraction of the size and restores anywhere.
Never pre-compress. tar.gz defeats deduplication and costs you more than the compression saves.
Keep output paths stable. Overwrite dump.sql, don't write dump-2026-08-21.sql. Dated files still dedupe on content but accumulate locally and complicate retention.
Right-size retention rather than minimising it. On deduplicated storage, extending 14 days to 12 months roughly doubles cost instead of multiplying it by 26 — see retention policy.
Common questions
Is S3 the cheapest place to put backups? Cheapest per GB, before egress, requests, and the engineering to turn a bucket into a backup system. See Backblaze B2 for the same argument at a lower price point.
Should I use Glacier for backups? For records you must keep and expect never to read, yes. For anything you might restore, the minimum-duration charges and retrieval delays usually make it more expensive and slower.
Does hourly backup cost 24× daily? No — with source-side dedupe, close to the same, because each run uploads only the delta.
What is the free tier actually for? 5 GB covers a small database or a config-and-uploads set entirely. It is enough to run a real restore drill before deciding anything.
Start with the free tier: backupdata.io has 5 GB free, no card, and the 10-minute quickstart gets you to a first verified snapshot today.