Guide

What backup storage actually costs

The per-GB price is the smallest line item. Egress, API calls, early-deletion minimums and retrieval fees are where cheap storage stops being cheap — and engineer hours dwarf all of it.

5 min readBackup Data

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:

StoredAt $0.023/GB/mo
Naive — 30 full copies1,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, DIYDeduplicating service
Stored after dedupe~7.5 TB (no dedupe)~320 GB
Storage / mo~$172included in plan
Egress on one 250 GB restore~$22included
Request charges$2–10included
Scripting, retention, encryption, monitoring~4 h/mo0
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.

Start with the free tier

5 GB free, no card required. Point your existing dump at Backup Data and get to a first verified snapshot in about ten minutes.

Read the quickstart

Keep reading

Guide · 7 minAutomating backups with GitHub Actions (and when not to)Guide · 6 minBack up model checkpoints before your spot instance disappearsGuide · 7 minBacking up a Linux server without backing up the whole disk