DEV Community

Cover image for Backblaze B2 vs Self-Hosted S3: Which Saves More Money?
Ethan Carter
Ethan Carter

Posted on

Backblaze B2 vs Self-Hosted S3: Which Saves More Money?

Backblaze B2 vs Self-Hosted S3: Which Actually Saves More Money in 2026?

Backblaze B2's pricing is about as simple as cloud storage gets: $0.00695/GB/month (~$6.95/TB/mo) for storage, no charge for uploads, and free egress up to 3× your stored capacity (then $0.01/GB). No storage tiers, no retrieval classes, no egress spreadsheet. For backups, archives, and media libraries that combination tends to be the practical choice.

Simple pricing and low total cost are not the same thing once your data passes a certain size. This article compares where B2 wins, where self-hosted S3 (RustFS, MinIO) wins, and the data volume where the two cross over.

Key Stats (Backblaze figures verified 2026-08-04)

Metric Figure Source
B2 pay-as-you-go storage $6.95 / TB / month ($0.00695/GB) Backblaze pricing
B2 egress Free up to 3× monthly storage, then $0.01/GB Backblaze pricing
Always-free tier First 10 GB of storage Backblaze pricing
Transactions Class A/B/C free; Class D $0.004 per 10,000 calls Backblaze pricing
B2 regions 4 — US West, US East, EU Central, CA East Backblaze docs
Self-hosted crossover ~7 TB (our cost model, assumptions below) This article

Backblaze B2: What You Get for $0.00695/GB

Feature Included? Notes
S3-Compatible API "S3 Compatible API" — mostly core operations
Storage $0.00695/GB/month (~$6.95/TB/mo) ~70% cheaper than AWS S3 Standard
Uploads (Class A) Free No ingress fee
Downloads (Class B) Free up to 3× storage/mo, then $0.01/GB Generous egress, no per-GB surprise under 3×
Minimum commitment None Pay for what you use
Data durability 11 nines claimed Standard for industry
Presigned URLs Downloads and uploads; browser POST uploads not supported
Server-side encryption SSE-B2 (Backblaze-managed) or SSE-C (customer-managed)
API transactions Free (Class A/B/C) Class D $0.004 per 10,000 calls; first 2,500/day free
Multipart Upload Yes
Lifecycle rules ⚠️ Basic Hide/delete only, no tier transitions
Object Lock / WORM Governance + compliance retention, legal hold, bucket default retention
Cross-region replication ⚠️ Cloud Replication Within or between regions, but a cross-region target needs a second account; Native API/console only, 2 rules per bucket
ACLs / IAM roles / object tagging Officially listed as unsupported in the S3-Compatible API

Where B2 shines: Backups, archives, media asset libraries, and disaster-recovery targets. These are workloads where you write once, read occasionally, and want a bill you can predict from one line item.

Where B2 struggles: Heavy egress above 3× your stored capacity, where the $0.01/GB overage applies. Also any workload that needs lifecycle tier transitions, object tagging, ACLs, or IAM roles. Backblaze lists each of those as unsupported in its S3-Compatible API, and B2 lifecycle rules only hide, delete, or cancel unfinished large uploads.

The Crossover Math: When Self-Hosted Wins

Monthly Data Stored Backblaze B2 Self-Hosted (RustFS) Winner
1 TB $6.95 ~$38 (hardware amortized + ops) B2
10 TB $69.50 ~$53 RustFS (-24%)
50 TB $347.50 ~$142 RustFS (-59%)
100 TB $695 ~$253 RustFS (-64%)
500 TB $3,475 ~$917 RustFS (-74%)

Assumptions: B2 egress within the free 3×-storage tier (so B2 cost ≈ storage cost). Self-hosted hardware amortized over 36 months. Ops cost = 0.15 FTE allocation.

For a typical backup or archive workload the crossover lands near 7 TB, inside the 5–10 TB band. Below it, B2's convenience usually wins on price and on not having to run anything. Above it, self-hosted pulls clearly ahead on cost.

The Hidden Factor: Download Costs

Backblaze changed its pricing model: egress is now free up to 3× your average monthly storage, and free beyond that through CDN or compute partners. Only egress above 3× storage is billed, at $0.01/GB. For most backup and archive workloads that makes download cost effectively zero, a real change from the old per-GB download charges.

Scenario Monthly Egress Cost (B2)
1 TB stored, 10% egress/mo (100 GB) $0 (within 3× free tier)
10 TB stored, 25% egress/mo (2.5 TB) $0 (within 3× free tier)
50 TB stored, 50% egress/mo (25 TB) $0 (within 3× free tier)
100 TB stored, 400% egress/mo (400 TB) $1,000 (100 TB overage × $0.01)

Low-egress backup and archive workloads pay nothing for B2 downloads. Heavy egress (a CDN origin, ML training pulls, analytics above 3× storage per month) starts to cost. Self-hosted S3 stays at $0 either way, because the bandwidth is yours.

Self-hosted S3: download cost = $0 (it's your network, your bandwidth).

Decision Framework

Choose Backblaze B2 If:

  • ✅ You store < 10TB
  • ✅ Primary workload is backup/archive (write-once, read-rarely)
  • ✅ You want zero operational responsibility
  • ✅ Download ratio is < 20% of stored data monthly
  • ✅ You don't need lifecycle tier transitions, object tagging, ACLs, or IAM roles

Choose Self-Hosted S3 (RustFS/MinIO) If:

  • ✅ You store > 10TB
  • ✅ Workload is active (frequent reads AND writes)
  • ✅ You want predictable $0 egress at any scale (B2's free egress caps at 3× storage/mo)
  • ✅ You have infra capacity or want to build it
  • ✅ You need S3 surface B2 doesn't expose (object tagging, ACLs, IAM roles, lifecycle transitions)

Choose Both (Hybrid):

A lot of teams keep B2 as their off-site cold target and run self-hosted S3 for hot, active data:

Write → Self-hosted S3 (hot, fast, zero egress)
       │
       └── Lifecycle copy → B2 (cold archive, off-site)
Enter fullscreen mode Exit fullscreen mode

The S3 API sits on both sides, so the same tooling moves data either way. The two tiers just carry different cost profiles.

TL;DR

  1. B2 has the simplest cloud storage pricing ($0.00695/GB store, free egress up to 3× storage, then $0.01/GB). Strong fit for backups and archives.
  2. Self-hosted S3 becomes cheaper around 7TB in our model, depending on download activity.
  3. B2 egress is now free up to 3× storage — only heavy egress (>3×) costs; self-hosted is always $0.
  4. B2 does support Object Lock (governance/compliance + legal hold) and bucket replication, but not object tagging, ACLs, IAM roles, or lifecycle tier transitions. Check your requirements against the list above.
  5. Hybrid is common: self-hosted for hot data, B2 for cold archive. The shared S3 API makes the split workable.

RustFS — Apache 2.0, S3-compatible object storage you run yourself, with bucket replication, versioning, and event notifications available today (lifecycle management is still marked under testing). Download here or read the code on GitHub.


FAQ

Is Backblaze B2 really S3-compatible?

Mostly. B2's S3-Compatible API covers the core operations (PutObject, GetObject, ListObjects, Multipart Upload, DeleteObject), so S3-aware tools like rclone, restic, and Cyberduck work against it unchanged. Presigned URLs work for both downloads and uploads, and server-side encryption is supported via SSE-B2 or SSE-C. Backblaze officially lists five gaps: ACLs, IAM roles, object tagging, website configuration, and browser-based POST uploads to presigned URLs. Cloud Replication is also absent from the S3 API. It runs through the Native API or the web console instead.

Is Backblaze B2 cheaper than AWS S3?

On storage, clearly: $0.00695/GB against $0.023/GB for S3 Standard, about 70% less. Egress widens it further. B2 is free up to 3× your monthly storage and $0.01/GB above that, while AWS charges $0.09/GB after its free allowance. The catch is reach and feature surface. B2 runs 4 regions (US West, US East, EU Central, CA East) against AWS's 30-plus, and it has no storage classes to transition between. For backup and archive workloads, B2 ends up far below AWS S3 once egress is in the picture. In our cost model that gap runs to roughly 60–80%.

Does Backblaze B2 have a free tier?

Yes, and it doesn't expire. The first 10 GB of storage is always free, egress is free up to 3× your monthly storage, and Class A, B, and C transactions are free on pay-as-you-go. Class D calls cost $0.004 per 10,000, with the first 2,500 per day free. That is enough room to run a personal backup, a small-business archive, or a proof of concept without ever generating a bill, and it is more generous than most cloud storage free tiers.

When does self-hosted S3 storage become cheaper than Backblaze B2?

Around 7 TB in our model, which amortizes hardware over 36 months and charges 0.15 FTE for operations. At 1 TB, B2 wins outright ($6.95 versus roughly $38 self-hosted). At 10 TB, self-hosted runs about 24% less; at 100 TB, about 64% less; at 500 TB, about 74% less. Egress shifts the line. B2's free 3× allowance covers most backup patterns, but a CDN origin or an ML training set pulling more than 3× storage per month pays $0.01/GB, while self-hosted egress stays at $0.

Does Backblaze B2 support Object Lock and cross-region replication?

Both, with caveats. Object Lock is fully supported — governance and compliance retention modes, legal hold, and bucket-level default retention — and lifecycle rules will not delete a version that Object Lock protects. Replication runs through Backblaze Cloud Replication, which copies buckets within or between regions, but a cross-region target requires a second Backblaze account (an account is tied to one region), it allows only two rules per bucket, and it is driven by the Native API or web console rather than the S3 API.

Sources

Every Backblaze figure and feature claim above was checked against Backblaze's own documentation on 2026-08-04:

AWS S3 list prices ($0.023/GB Standard, $0.09/GB egress) are AWS published pricing.

Top comments (0)