Follow us
Breaking
Web Hosting

The egress cost divide in object storage

Cloudflare R2 can be 72 times cheaper than Amazon S3 for video platforms with high egress needs because it eliminates bandwidth fees. While Backblaze B2 offers the lowest rates for cold backups, the choice between providers depends on specific traffic patterns and feature requirements.

Share

A team storing 10 terabytes of video and serving 50 terabytes of downloads a month pays roughly $150 on Cloudflare R2 and roughly $4,730 on Amazon S3 once egress is added because of the massive difference in bandwidth pricing. This gap exists because Cloudflare R2 eliminates egress fees. R2 storage costs $0.015 per GB. AWS S3 Standard starts at $0.023 per GB for the first 50 TB in US regions. S3 charges $0.09 per GB for the first 10 TB of internet egress. R2 charges $0.00 for egress at every volume. Backblaze B2 is the cheapest option for cold backups at $0.006 per GB, but egress is $0.01 per GB once you exceed three times your average monthly storage. Backblaze B2 also has a partnership with Cloudflare, so egress from B2 to Cloudflare is free.

The difference in cost profiles forces engineers to choose based on traffic patterns rather than raw storage rates. For a video platform with 2 TB of storage and 50 TB of egress, S3 costs $4,523 including storage and egress fees. R2 costs $62.25 because the egress is $0. In this scenario, R2 is 72 times cheaper than S3. For a document cloud storing 500 TB of files with 500 GB of monthly downloads, S3 Intelligent-Tiering is 73% cheaper than R2. The cost of S3 is $2,022 compared to R2’s $7,500 because R2 lacks the specialized cold storage tiers that AWS maintains.

Feature AWS S3 Standard Cloudflare R2 Standard Backblaze B2
Storage (per GB/month) $0.023 $0.015 $0.006
Internet Egress $0.09/GB (first 10TB) $0.00 $0.01/GB (after 3x storage)
Class A Ops (per 1M) $5.00 $4.50 $0.004 (per 1k)
Class B Ops (per 1M) $0.40 $0.36 $0.0004 (per 1k)

Feature gaps and performance trade-offs

R2 is the best choice for new projects with no AWS dependency that serve significant public read traffic. The R2 API is an S3-compatible mirror that works with the AWS SDK by pointing the endpoint to an R2 URL. You only change the endpoint and the credentials in your code. R2 handles multipart uploads, presigned URLs, and CORS configuration. However, R2 does not support S3 Object Lock, S3 Intelligent-Tiering, or S3 Replication. It also lacks S3 Select for SQL queries on objects and SSE-KMS for customer-managed encryption keys. If your app requires these specific features, you should stay on S3.

Latency varies between the providers. S3 wins for applications co-located in AWS, while R2 benefits from the Cloudflare global edge network because reads are served from the nearest point of presence. Backblaze B2 has fewer datacenters in the US West, US East, EU Central, and AP Tokyo. For CI/CD pipeline artifact caching, all three are fast enough because latency differences are measured in tens of milliseconds.

Terraform’s S3 backend has native DynamoDB locking, versioning, and encryption support. Migrating state to R2 or B2 requires more manual work and lacks the locking mechanism natively. You already know that Terraform state needs a locking mechanism to avoid corruption. There is an S3-compatible backend workaround for R2, but it requires configuring skip_credentials_validation and skip_metadata_api_check flags. Will the migration downtime affect your production users?

Migration tactics and real-world costs

Moving 10 TB of data from S3 to R2 costs roughly $900 in S3 egress fees alone. Cloudflare offers Super Slurper for one-time migrations, which is free to use but still incurs the source provider’s egress charges. Super Slurper copies objects in parallel and preserves all metadata. Sippy provides an incremental migration option where R2 fetches objects from the source bucket on first request. This prevents downtime because R2 becomes the origin for frequently accessed data.

For small projects, the free tiers provide enough capacity to test without spending money. R2 provides 10 GB of storage and 10 million Class B operations for free. S3 provides 5 GB of storage and 20,000 GET requests for 12 months. Backblaze B2 provides 10 GB of free storage. You should model your actual request mix before committing. If your write path is heavy, R2 Class A operations can be expensive. At 100 million PUT requests per month, R2 costs $450 while S3 costs $500.

The decision depends on your specific workload. For public-facing media, R2 is the winner. For deep AWS stacks or highly regulated data, S3 is the safer choice. For cold backups, B2 is the cheapest.

Share

Technewsdaily

Senior tech writer covering AI, gadgets and cybersecurity. Breaking down the news that matters, every day.