S3 versus R2 egress depends on who pulls and which network path fires—not marketing slides. Public GET, CDN origin fill, and same-region compute pulls meter differently. Compare path classes first; leave $/GB Unknown until verified on dated provider pricing pages.
Updated
Compare how object-storage egress is billed on AWS S3 versus Cloudflare R2 using path templates — not vendor marketing slides.
Dated starting points only — Unknown until verified means no invented $/GB. PipeToll does not scrape private consoles or guarantee figures.
Path-class vocabulary: path template, Unknown until verified. This spoke is a path matrix, not a price clone. Egress depends on who pulls, which network path, and which SKU fires. Titles lead with Cloud egress so readers are not hunting American pipe-toll brands.
Path templates to model
Client ← Internet ← S3 — classic public GET; Internet egress tiers apply after free allowance.
Client ← CDN ← S3 origin — origin fill may still bill storage egress or CDN origin fees.
VPC compute ← S3 gateway/interface endpoint — often avoids Internet egress; watch interface endpoint fees.
Client ← Internet ← R2 — R2 commonly markets zero egress; verify ops pricing.
Multi-cloud sync S3 → R2 — the source usually pays egress.
Common traps
Pasting a single “egress $/GB” from a blog ignores free-tier cliffs, Class A/B ops, and CDN origin bills. Assuming R2 $0 covers every destination is unsafe. Treating DELETE/LIST as free because bytes look small undercounts chatty workloads. No scorecrowns — Unknown cells stay Unknown until dated.
FinOps checklist
Inventory top prefixes by GET volume and bytes.
Separate cacheable CDN traffic from one-shot downloads.
Model free-tier cliffs and request SKUs as separate lines.
Worked example (educational): 5 TB public GET / month
Path: client ← Internet ← object store. Enter 5,000 GB in Mode A and paste a verified $/GB (or leave placeholders as Unknown). For S3, remember free-tier cliffs and request SKUs sit outside GB×rate. For R2, confirm whether your destination is included in any $0 egress marketing claim. Not a quote.
Marketing often highlights $0 Internet egress, but ops/request pricing, excluded destinations, and pairing rules still matter. Verify the current pricing page.
Does a CDN remove S3 egress?
A CDN can shift who bills which bytes. Origin fill may still bill storage egress or CDN origin fees — see the origin-fill spoke.
What should I compare first?
Path class (who pulls, which network) before any $/GB. Request SKUs and free-tier cliffs next.