Start with object lifetime
B2 and Wasabi are both worth evaluating for capacity-oriented workloads, but a repository’s lifecycle can separate them more clearly than its size. Does it retain the same objects for months, or does it rewrite them frequently? Does it perform occasional small restores, or is the full dataset distributed repeatedly?
A stable bucket size is not evidence of stable objects. Ask the backup client how it expires snapshots, compacts chunks and replaces metadata. Those operations determine whether a minimum storage-duration term matters.
Compare a stable backup month
The backup preset holds 5,000 decimal GB, transfers 250 GB out and uses 50,000 writes plus 10,000 reads. Every object is retained for at least 90 days. It assumes unused shared allowances and direct internet delivery. The B2 and Wasabi rows both produce a modeled total for this scenario.
| Service / pricing region | Storage | Delivery | Writes / reads | Minimum top-up | Total / month |
|---|---|---|---|---|---|
| Amazon S3US East · N. Virginia | USD 107.10 | 11.95 | 0.25 / 0.00 | 0.00 | USD 119.31 |
| Cloudflare R2Automatic placement / EU jurisdiction | USD 74.85 | 0.00 | 0.00 / 0.00 | 0.00 | USD 74.85 |
| Backblaze B2US / EU / Canada | USD 34.68 | 0.00 | 0.00 / 0.00 | 0.00 | USD 34.68 |
| WasabiAll commercial regions | USD 36.33 | 0.00 | 0.00 / 0.00 | 0.00 | USD 36.33 |
| Bunny StorageOne storage region · EU/NA delivery | USD 50.00 | 2.50 | 0.00 / 0.00 | 0.00 | USD 52.50 |
| ScalewayParis · fr-par | EUR 80.30 | 1.75 | 0.00 / 0.00 | 0.00 | EUR 82.05 |
Do not divide the two totals to advertise a universal savings percentage. The assumptions describe one workload, in the displayed currencies and billing units. Introductory offers, support and client software are not included. Follow the B2 and Wasabi profiles to inspect the current source rates and terms.
Now change one assumption
Set shortest retention to 30 days. B2’s modeled active-storage charge does not acquire a duration minimum. Wasabi’s estimate becomes incomplete because an early-deletion charge requires object-age history. Keeping the original total in that case would be misleading; estimating the exact deleted-storage amount from average capacity alone would be guesswork.
For a small repository, the monthly minimum is another separate effect. Run a low-capacity example and inspect the minimum top-up column. A published per-TB rate is not necessarily the charge for a fraction of a TB.
Restore more than once
Set outbound bytes equal to the entire stored dataset, then double it. Wasabi’s published egress guideline does not fit repeated transfer beyond active storage. B2’s direct-egress allowance is tied to a different multiple of average stored capacity, followed by a per-byte charge. A partner CDN route is outside this comparison and needs its own delivery budget.
A byte allowance does not promise restore speed. Test a representative recovery with your real client, network and destination, and record the result. Include the possibility of a second restore if the first target fails or an operator needs to repeat recovery.
Choose a maintainable workflow
Document the credentials needed during an outage, where encryption keys are kept, and how you validate the restored data. Review deletion permissions separately from upload permissions. If immutability is essential, verify the exact feature rather than inferring it from the phrase “S3 compatible.”
Use the backup guide to build that evaluation. Save the normal-month and restore-month calculator URLs in your decision record, alongside the dataset version and your own measured recovery evidence.