Cloudflare R2 vs S3 for video storage: a real comparison
The egress problem
If you're building a video platform on AWS S3, you're paying twice: once for storage, and again every time someone watches a video. AWS charges approximately $0.09/GB for data transfer out, which adds up fast when you're streaming video.
At 100TB of monthly egress, that's $9,000/month just in bandwidth fees.
Enter Cloudflare R2
Cloudflare R2 is an S3-compatible object storage service with one killer feature: zero egress fees. You pay only for storage ($0.015/GB/month) and operations (reads, writes, deletes).
Cost comparison at scale
| Scale | S3 Storage | S3 Egress | S3 Total | R2 Storage | R2 Egress | R2 Total |
|-------|-----------|-----------|----------|-----------|-----------|----------|
| 10TB stored, 50TB egress | $230 | $4,500 | $4,730 | $150 | $0 | $150 |
| 100TB stored, 500TB egress | $2,300 | $45,000 | $47,300 | $1,500 | $0 | $1,500 |
| 1PB stored, 5PB egress | $23,000 | $450,000 | $473,000 | $15,000 | $0 | $15,000 |
The difference is staggering. At video-platform scale, R2 can save you 90-97% on infrastructure costs.
Trade-offs
R2 isn't perfect:
- No lifecycle policies (yet) — you need to manage cleanup yourself
- Limited regions — data is stored in Cloudflare's network, which is global but you can't choose a specific region
- Newer ecosystem — fewer tools and integrations compared to S3
Our take
For video platforms, R2 is a no-brainer. The zero-egress pricing alone justifies the switch. Combined with Cloudflare's CDN for edge delivery, you get fast global video playback at a fraction of the cost.
VidEncrypt uses R2 as its primary storage backend, passing the cost savings directly to our customers. That's why our pricing can be so competitive.