Cloudflare R2 vs Backblaze B2 in 2026
Disclosure: SpeedTestHQ is reader-supported. We may earn a commission from purchases made through links on this page. Last updated May 2026.
Both are S3-compatible object storage at a fraction of AWS S3 pricing. Both have changed the economics of media hosting, backups, and data lakes. The two key axes to compare them on: egress pricing and CDN-edge integration.
At-a-glance comparison
| Feature | Cloudflare R2 | Backblaze B2 | Winner |
|---|---|---|---|
| Storage price | ~$0.015/GB/month | ~$0.006/GB/month | B2 (cheaper) |
| Egress price | $0 (free) | ~$0.01/GB; free to Bandwidth Alliance partners | R2 (when serving) |
| API requests | Class A (writes) and B (reads) charged | Class A and B/C charged | Similar |
| S3 API compatibility | Yes | Yes | Tie |
| SDKs | Use AWS SDK with R2 endpoint | Use AWS SDK with B2 endpoint | Tie |
| Durability | 11 nines | 11 nines | Tie |
| Geographic redundancy | Yes (jurisdictional restrictions) | Yes (US, EU regions) | Roughly tied |
| Native CDN integration | Cloudflare CDN (free with R2) | Cloudflare or Fastly via Bandwidth Alliance | R2 |
| Public bucket | Yes (via Workers or custom domain) | Yes (native) | B2 (simpler) |
| S3 features (lifecycle, versioning) | Lifecycle yes; versioning yes | Lifecycle yes; versioning yes | Tie |
| Free tier | 10GB storage, 1M Class A, 10M Class B ops/month | 10GB storage, 1GB egress/day | R2 (more ops free) |
| Best for | Public assets, serving traffic from edge | Backups, archives, S3-compat workloads | Different use cases |
The egress story
This is the single biggest reason to consider either over AWS S3. AWS charges ~$0.09/GB for egress — for a site serving 1TB/month of media, that's $90 in egress alone. Both R2 and B2 dramatically cut this:
- R2 charges $0 for egress. Storage is slightly higher than B2 but you pay nothing per byte served.
- B2 charges $0.01/GB egress (one-tenth of S3) and offers free egress to Bandwidth Alliance partners (Cloudflare, Fastly, BunnyCDN, others). If you put a Bandwidth-Alliance CDN in front of B2, effective egress is free.
For most "serve assets to the public" workloads, both can deliver near-zero egress costs. R2 does it without a separate CDN in front; B2 requires you wire one up.
Storage prices
B2 is meaningfully cheaper per GB stored (~$0.006/GB vs R2's ~$0.015/GB). For a 10TB archive, that's $60/month on B2 vs $150 on R2.
For backup/archive workloads where you store much, serve little, this gap matters and B2 wins.
For workloads where you store little but serve a lot, the egress savings on R2 dominate and the higher storage rate is irrelevant.
CDN integration
R2 sits inside Cloudflare's network. Pair it with a Workers script or a custom domain and you've got a global CDN in front of your bucket — included, no extra configuration. Cache control is handled with Cache headers or Workers.
B2 doesn't ship with a CDN. The standard pattern is putting Cloudflare (or Fastly, or BunnyCDN — any Bandwidth Alliance partner) in front of your B2 bucket. You set this up; it's a half-hour task. The CDN cache absorbs most reads; B2 sees only cache-misses.
S3 API compatibility
Both speak the S3 API well enough that most S3 client libraries work with a different endpoint URL. Minor gotchas exist in edge cases — multipart upload sizes, certain ACL semantics, presigned URL edge cases — but for typical use, "swap endpoint" is the migration.
This means most backup tools (Restic, Duplicati, rclone, Velero), photo apps (Immich external storage), and SaaS products that support "S3-compatible storage" work with both.
Use case fit
- Static website assets, images, video served to public: R2 (zero egress beats slightly higher storage).
- Backups of your homelab / business data: B2 (cheaper storage; egress is rare and small).
- Database backups, log archives: B2 (write-heavy, read-rare).
- Software downloads served from a website: R2 (or B2 + Cloudflare).
- Origin for a video streaming site: R2 with Cloudflare Stream, or B2 + CDN.
- Personal photo library backup: B2 (storage cost matters; egress for restores is rare).
Durability and reliability
Both advertise 11-nine durability — same as AWS S3, same as Google Cloud Storage. Both replicate across multiple physical locations. Both have strong track records; outages are rare and brief.
For data you can't lose, follow the 3-2-1 backup rule (3 copies, 2 media types, 1 off-site) regardless of provider durability claims.
Geographic regions and data residency
R2 has US and EU jurisdictional options. Data placement is influenced by where it's accessed. For strict EU data residency, R2 has options but the model differs from traditional region-pinned storage.
B2 has explicit US (US-West) and EU (Amsterdam) regions. You pick at bucket creation. Straightforward for compliance use cases.
Free tiers
- R2: 10GB storage + 1M Class A operations + 10M Class B operations per month.
- B2: 10GB storage + 1GB/day download + 2500 Class B / 2500 Class C operations per day.
R2's free tier is generous for many side projects. B2's free tier is workable but smaller.
Which to pick
| Scenario | Pick |
|---|---|
| Static site assets served to public | R2 |
| Homelab backup (Restic / Borg / rclone) | B2 |
| Database backups, log archives | B2 |
| User-uploaded media for SaaS | R2 (no egress surprises) |
| Video streaming origin | R2 + Cloudflare Stream |
| Personal photo / family video backup | B2 |
| Software downloads or installer hosting | R2 (or B2 + Cloudflare in front) |
| Big-data analytics / data lake | R2 (no egress when querying) |
| EU data residency required | B2 (explicit EU region) |
| Cloudflare-centric stack already | R2 |
Cost calculator (rough)
Assume 1TB stored, 1TB egress/month:
- AWS S3: ~$23 storage + ~$90 egress = $113/month.
- Cloudflare R2: ~$15 storage + $0 egress = $15/month.
- Backblaze B2 (direct): ~$6 storage + ~$10 egress = $16/month.
- B2 + Cloudflare (Bandwidth Alliance): ~$6 storage + $0 egress = $6/month.
For storage-heavy / low-egress workloads, B2 wins. For high-egress workloads, both R2 and B2+Cloudflare beat AWS by an order of magnitude.
Frequently Asked Questions
Is R2 really free egress?
Yes. There is no per-GB egress charge on R2. You pay for storage and per-operation costs. This is Cloudflare's deliberate market position against AWS S3 egress economics.
How does B2 compare to AWS Glacier?
B2's hot storage is cheaper than AWS S3 Standard and similar to S3 Glacier Instant Retrieval — but with no retrieval fees and instant access. For most backup workloads, B2 is simpler and cheaper than Glacier.
Can I use them for backups with Restic or Borg?
Yes — both have well-documented Restic/Borg/Kopia integrations. rclone works with both. Practical: B2 is the more common backup target due to cheaper storage; R2 works fine too.
Are there hidden fees?
Operations (PUT, GET, etc.) are charged on both. For typical use these are small (cents/month). High-frequency operations (e.g., very chatty SaaS write patterns) can add up — monitor.
What about Wasabi?
Wasabi is another cheap S3-compatible provider — flat pricing, no egress fees, but a 90-day minimum storage charge (delete before 90 days and you still pay). Competitive for stable workloads; less flexible than R2/B2.
Can I migrate between them?
Yes — rclone can copy buckets between any S3-compatible providers. For terabytes, plan for time and bandwidth on whichever end is slower.
Related Guides
DigitalOcean vs Hetzner
Compute providers to pair with object storage.
Vercel vs Netlify
Frontend hosting that consumes object storage.
Cache Hit Ratio Explained
How CDNs reduce egress for object stores.
Best NAS for Backup
On-prem half of a 3-2-1 backup.
3-2-1 Backup Rule
Where cloud object storage fits in your backup plan.