Educational — Cloud egress & data-transfer cost guides. FinOps-lite estimators. Not a quote, broker, or savings guarantee. Launching soon where incomplete.
object-storage · Educational

Cloud egress: S3 direct vs CloudFront origin path

Updated

Public S3 downloads and CloudFront-origin fills are different meters — map who pays before comparing $/GB.

Path matrix: S3 direct Internet vs CloudFront origin-fill cost layers (educational)
Path classS3 direct (client←S3)CloudFront + S3 originFinOps note
Client-facing billS3 Internet egress tiersCloudFront data transfer outEdge vs origin SKU names differ
Origin / storage billSame as client pathOrigin fill / S3→CF bytes may billTwo-bill risk on misses
Free-tier / free grantS3 free tier cliffsCF free tier + S3 free grant interactModel cliffs explicitly
Cache hit ratioN/A (always origin)CHR drives origin fill ≈ client×(1−CHR)Measure per path
Signed URL / privatePresigned S3 GETCF signed URLs + OAI/OPA patternsAuth changes cacheability

Provider source footnotes

  1. AWS S3 pricing — as-of Unknown until verified
  2. AWS CloudFront pricing — as-of Unknown until verified
  3. Amazon S3 + CloudFront developer guide — as-of

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. Path-first: client ← Internet ← S3 versus client ← CloudFront ← S3 origin. PipeToll refuses to crown a winner from a single blog $/GB. Titles lead with Cloud egress so readers are not hunting American pipe-toll brands.

Path templates to model

Common traps

Assuming “CDN = zero S3 egress” ignores origin fill. Comparing only CloudFront $/GB to S3 Internet $/GB without free-tier cliffs mis-ranks quiet months. Blending request SKUs into egress lines hides LIST/GET taxes. No guaranteed savings from enabling CloudFront without measured CHR.

FinOps checklist

  1. Export client download GB and, if CF-enabled, cache hit ratio by path.
  2. Price direct S3 Internet path with Mode A (?mode=gb&path=s3-direct).
  3. Price CF path with edge GB + Mode C origin fill.
  4. Mark unverified rates Unknown until verified per methodology.
  5. Cross-read CDN origin fill, S3 vs R2, and free-tier cliff.

FinOps-lite Unknown until verified

Worked example (educational): 8 TB client downloads, 75% CHR

Direct path: price 8,000 GB on S3 Internet egress tiers (Mode A). CloudFront path: edge bill for ~8,000 GB plus origin fill ≈ 2,000 GB × origin $/GB (Mode C). Free-tier cliffs on either product can flip totals — keep Unknown until dated. Not a savings guarantee for “just add CloudFront.”

Open calculator

FAQ on this path

Does CloudFront remove S3 egress?

It can shift who bills client bytes to CloudFront, but origin fill on cache misses may still bill S3 or CF origin fees. Model both meters.

When is S3 direct simpler?

Low-CHR or one-shot downloads where CDN edge fees add little; still watch S3 free-tier cliffs and request SKUs.

How should I estimate origin fill?

origin_GB ≈ client_GB × (1 − CHR) × inflation — see the CDN origin spoke and calculator Mode C.