R2 vs S3: what changes when egress is free
This is a sample post — replace it with a real writeup — but the underlying point is real: most S3 architecture defaults exist to manage egress cost, and a lot of them stop being necessary once egress is free.
Defaults that stop paying for themselves
- CDN-in-front-of-everything — still worth it for latency and cache-hit performance, but no longer a strict requirement just to avoid a per-GB egress bill on every read.
- Aggressive lifecycle rules moving objects to colder, cheaper tiers — cold storage still makes sense for access-frequency reasons, but not purely to dodge egress on infrequent reads.
- Region-pinning services next to the bucket — cross-region reads from S3 often meant an egress surprise; that specific pressure goes away.
What doesn’t change
Durability, consistency model, and request pricing are still the fundamentals you actually design around — a free-egress bucket that’s slow or has a weaker consistency story isn’t automatically the right choice. Egress-free just removes one variable that used to dominate a lot of otherwise-unnecessary architecture decisions.