The economics of egress and storage
Cloudflare R2 offers zero egress fees, making it 35% cheaper than Amazon S3 for high-traffic media. While Backblaze B2 provides lower storage costs at $0.006 per GB, R2 excels for public asset delivery where data transfer fees typically dominate.
Cloudflare R2 charges $0 for data transfer. This pricing challenges the model used by Amazon S3, which charges $0.09 per GB for the first 10 TB of egress. For higher volumes, S3 egress costs drop to $0.085 for the next 40 TB, $0.07 for the next 100 TB, and $0.05 for anything above 150 TB. Engineering teams re-evaluate their storage math this month because R2 storage costs $0.015 per GB. This makes R2 roughly 35% cheaper than S3 Standard on storage alone. Backblaze B2 provides a cheaper alternative for storage at approximately $0.006 per GB. While B2 charges $0.01 per GB for egress, the Bandwidth Alliance allows users to achieve zero egress by using a partner like Cloudflare or Fastly as a CDN. For a 10TB archive, B2 costs $60 per month, while R2 costs $150 per month. Because Cloudflare R2 eliminates the expensive data transfer fees that characterize the Amazon S3 model, it provides a massive advantage for teams that host large volumes of media assets intended for frequent public consumption. You should look at your own egress bills before moving entire datasets.
Workload scenarios and technical limitations
Teams selecting between R2 and B2 prioritize either storage density or egress avoidance. R2 works best for workloads where you serve assets to the public, such as software downloads or user-uploaded media for SaaS. High-egress workloads benefit from R2 because the higher storage rate remains irrelevant when the egress cost stays at zero. B2 wins for backup workloads, database backups, or personal photo libraries where storage cost matters most. Backblaze B2 is suitable for WordPress backups, NAS backups, and media delivery workflows for podcast networks or video production agencies. For archival scenarios where data is large and accessed irregularly, S3 Intelligent-Tiering can be 73% cheaper than R2. Both services support the S3 API, so you can migrate using tools like rclone or specialized migration services without rewriting your code. R2 lacks bucket notifications, so you cannot trigger a Worker or Lambda job directly from a bucket event. While Amazon S3 maintains a significant lead in feature depth and specialized storage classes for archival data, Cloudflare R2 remains a compelling option for developers who prioritize a simple, predictable pricing model that excludes egress charges entirely. Amazon S3 is the standard for enterprises that require deep integration with services like Lambda, CloudFront, or machine learning pipelines. S3 has 28 different storage classes to match specific data needs.
Technical specifications and pricing
Decision making depends on whether the data stays within a single network or moves to the internet. If files stay inside the AWS network, S3 avoids transfer fees. If files move to the internet, R2’s zero-egress policy wins.
| Feature | Cloudflare R2 | Backblaze B2 |
|---|---|---|
| Storage Price | ~$0.015/GB | ~$0.006/GB |
| Egress Price | $0 | ~$0.01/GB (Free via Bandwidth Alliance) |
| S3 API Support | Yes | Yes |
| Ideal for | Public assets and high-egress traffic | Backups and archive workloads |
Cloudflare R2 includes a free tier with 10GB of storage, 1 million Class A operations, and 10 million Class B operations per month. This free tier is large for smaller projects. Backblaze B2 has 10GB of storage and 1GB of egress per day. Request costs differ between the two. Cloudflare R2 charges $0.0045 per million Class A operations and $0.00036 per million Class B operations. Amazon S3 charges $0.005 per 1,000 Class A requests and $0.0004 per 1,000 Class B requests. For a photo-sharing app, R2 costs roughly $40 for 2TB of data and 20 million reads, whereas S3 would cost $450 in egress for 5TB of traffic. The partnership between Backblaze and the Bandwidth Alliance allows B2 users to minimize costs when using Cloudflare as a CDN. This configuration brings B2’s egress costs to zero. Will the integration of more advanced S3 features eventually close the gap between these two providers?