Cloudflare CDN vs Fastly vs AWS CloudFront: Real CDN Cost per 100 TB Delivered in 2026
The short answer: only two of these three charge for the bytes delivered. At an illustrative 100 TB a month, 200 million requests and a 95% cache-hit ratio, delivering mostly to North America and Europe costs about $8,205 on CloudFront pay-as-you-go (using its published regional tiers, free first terabyte and no charge for fetches from AWS origins) and about $8,950 in Fastly list price, plus $441 of origin egress if the origin is on S3. Cloudflare does not meter CDN bandwidth on any plan, so its modeled bill is the plan fee: $200 a month on Business, or $20 on Pro, plus the same $441 of S3 egress if the origin sits outside Cloudflare. That figure carries a condition: Cloudflare's self-serve terms restrict using the CDN to serve large volumes of non-HTML content such as images and video on Free, Pro and Business plans, so a media-heavy 100 TB workload is realistically an Enterprise quote. In a global scenario the order shifts: CloudFront is modeled at up to roughly $9,821, Fastly at $5,600 for the 60 TB delivered in North America and Europe plus an unpublished rate for the other 40 TB, and Cloudflare's plan fee does not change.
The billing-unit mismatch, up front
CloudFront bills data transfer out per GB, by region and volume tier, plus HTTP/HTTPS requests per 10,000, with separate lines for invalidations, Origin Shield, Lambda@Edge and field-level encryption. Since November 2025 it also sells flat-rate plans (Free, Pro $15, Business $200, Premium $1,000) that bundle transfer and requests. Fastly bills per GB and per 10,000 requests by billing region and volume tier, with security and logging products separate. Cloudflare does not bill CDN bandwidth or requests on its self-serve plans; it bills a monthly plan fee, and its paid-bandwidth-like charges appear only in adjacent products (for example Workers requests, Stream minutes, Images deliveries, or R2 operations, but not R2 egress). A fair comparison also separates delivery cost (edge to user) from origin cost (origin to CDN), which is billed by whoever hosts the origin, not by the CDN.
What each vendor actually bills
AWS CloudFront (OFFICIAL, aws.amazon.com/cloudfront/pricing). Pay-as-you-go data transfer out in the US, Mexico, Canada and Europe: first 1 TB a month free, next 9 TB $0.085/GB, next 40 TB $0.080/GB, next 100 TB $0.060/GB, with lower tiers above that (down to about $0.020 at petabyte scale). Tiers apply per pricing region. Asia-Pacific, South America and India carry higher first-tier rates, roughly $0.109–$0.120/GB. Requests: $0.0075 per 10,000 HTTP and $0.0100 per 10,000 HTTPS in the US and Europe, somewhat higher elsewhere; the first 10 million requests a month are free. Fetches from AWS origins (S3, EC2, ALB) are free; invalidations are free for the first 1,000 paths and $0.005 a path after; Origin Shield adds about $0.009 per 10,000 requests. Price Class 100 restricts delivery to cheaper regions. Flat-rate plans: Pro $15 (10 million requests, 50 TB), Business $200 (125 million requests, 50 TB), with a Premium plan at $1,000; the included transfer is capped at 50 TB on the plans listed, below this article's 100 TB, and the treatment of usage above the allowance is not published in a form that can be priced here.
Fastly (OFFICIAL list rates, fastly.com/pricing; contract pricing negotiated). North America and Europe: $0.12/GB for the first 10 TB, $0.08/GB from 10 to 50 TB, with further breakpoints at 150 TB and 500 TB dropping toward $0.04/GB; the rate for 50–150 TB is not published at a single figure. Asia-Pacific, India, South America and Africa cost more per GB; their per-GB rates are not given in published form here. Requests: $0.0075 per 10,000 in North America and Europe, $0.009 in the Asia-Pacific/South America/Australia tier. The first 100 GB per region per month is free. Next-Gen WAF, TLS add-ons and logging are priced separately, and Fastly's Compute product (edge code) is a different meter from its CDN.
Cloudflare (OFFICIAL, cloudflare.com/plans and self-serve terms). No per-GB or per-request CDN charge on any plan: Free $0, Pro about $20 a month and Business about $200 a month on annual billing, Enterprise by quote. Cloudflare's self-serve terms limit serving a disproportionate share of non-HTML content (images, video, large binaries) through the CDN unless that content is stored in or delivered through Cloudflare's own storage, image or media products. R2 object storage has no egress fee, which removes origin egress if the origin is R2. A genuinely 100 TB-a-month media workload should expect a sales conversation.
Normalizing the workload
All ILLUSTRATIVE. 100 TB delivered a month (1 TB = 1,000 GB); 500 KB average object, so 200 million requests (about 76 per second on average); all HTTPS; 95% cache-hit ratio, so 5% of bytes (5 TB) are fetched from the origin; origin on AWS S3. Scenario A: 50% North America, 50% Europe. Scenario B: 40% North America, 20% Europe, 40% elsewhere (Asia-Pacific, South America, India). For CloudFront, tiers are applied per region and the free first terabyte is applied once. The S3 origin-egress charge to a non-AWS CDN is 5,000 GB less the 100 GB free tier, at $0.09/GB: $441. S3 request charges and storage are excluded.
Cost at the normalized workload
Formulas: CloudFront = Σ regional tiered GB × rate + (requests − 10M free) ÷ 10,000 × $0.0100; Fastly = Σ regional tiered GB × rate + requests ÷ 10,000 × $0.0075 + origin egress; Cloudflare = plan fee + origin egress.
| Platform | Scenario A: 50% NA / 50% EU | Scenario B: global mix |
|---|---|---|
| CloudFront pay-as-you-go | $8,205 ($3,965 NA + $4,050 EU + $190 requests; no origin fetch charge) | Up to $9,821 ($3,165 NA + $1,650 EU + up to $4,800 for 40 TB at the $0.12 upper-bound first-tier rate + about $206 requests) |
| Fastly, list price | $8,950 ($8,800 bandwidth + $150 requests) + $441 origin = $9,391 | $5,600 bandwidth for 60 TB NA/EU + $162 requests + $441 origin; the other 40 TB is UNKNOWN |
| Cloudflare Business | $200 + $441 origin = $641 (conditional on terms; Enterprise by quote for media-heavy traffic) | $200 + $441 = $641 (same condition) |
| Cloudflare Pro | $20 + $441 = $461 (same condition) | $461 |
| CloudFront flat-rate Business | $200, but 100 TB exceeds the 50 TB allowance; pricing above it is UNKNOWN | UNKNOWN |
CloudFront's Scenario B figure is an upper bound: it prices all 40 TB of non-NA/EU traffic at the first-tier rate, while lower tiers apply once a region exceeds 10 TB. Fastly's Scenario B is deliberately incomplete rather than extrapolated from NA/EU rates.
The origin-egress mechanic
CDN delivery cost and origin cost are separate. CloudFront is the only one of the three where origin fetches from AWS services are free, which is a large part of why its A-scenario bill has no origin line. A non-AWS CDN with an S3 origin pays S3's internet-egress rates for every cache fill: $441 here at a 95% hit ratio, but $1,741 at an 80% hit ratio (20 TB of fills, using S3's tiered egress rates) and far more on a poorly cacheable workload. Cloudflare with an R2 origin pays no egress at all, though R2 storage and operations are billed separately. The cache-hit ratio therefore matters twice on a non-AWS CDN: it controls both origin load and origin egress.
Where each model changes the answer
At small volume the per-GB models and flat plans diverge in the other direction. CloudFront's free 1 TB and 10 million requests mean a 1 TB workload costs $0, while Fastly bills past its first 100 GB per region, and Cloudflare's Pro plan is $20 regardless. The flat-rate CloudFront Pro plan at $15 is cheaper than pay-as-you-go for anything above about 1.2 TB, but only up to its 50 TB included transfer. For a workload whose bytes grow past 50 TB, pay-as-you-go tiers, a negotiated commitment, or an Enterprise contract on Cloudflare or Fastly become the realistic options.
Sensitivity
- Content type, for Cloudflare. HTML and small static assets sit comfortably inside self-serve terms; large media at 100 TB does not, which converts a $200 plan into an unpublished Enterprise price.
- Regional mix, for CloudFront and Fastly. Non-NA/EU traffic costs 30–230% more per GB; moving 40 TB from NA/EU to Asia-Pacific adds roughly $1,500 or more on CloudFront.
- Cache-hit ratio. At 100 TB, every 5 percentage points lost adds 5 TB of origin fetches: $441 on S3 egress for non-AWS CDNs, $0 on CloudFront for AWS origins.
- Average object size. Halving it to 250 KB doubles requests to 400 million, adding about $200 on CloudFront and $150 on Fastly, which matters for small-object APIs and image thumbnails.
Budgeting traps
- Treating Cloudflare's "unmetered" bandwidth as unconditional. The cost is the plan fee only while the traffic fits the plan's terms.
- Quoting CloudFront's headline $0.085/GB. That applies to the 9 TB after the free terabyte; the blended rate at 50 TB in one region is about $0.08, and the marginal rate falls to $0.06 above 50 TB and $0.04 above 150 TB in that region.
- Forgetting that CloudFront plans changed in November 2025. Older guides describe only pay-as-you-go pricing.
- Ignoring origin egress when comparing CDNs. A $0.09/GB S3 egress bill can exceed the CDN fee on a poorly cached workload.
- Reading Fastly's list price as the price at 100 TB. Volume contracts are negotiated at this scale.
What to ask before you buy
Ask Cloudflare in writing whether your content mix is permitted on the plan you are pricing, and what Enterprise costs for it. Ask AWS what happens when a flat-rate plan's included transfer is exceeded, and ask Fastly for contract pricing and non-NA/EU regional rates at your volume. Measure your own cache-hit ratio, object-size distribution and regional split before using any figure from this comparison.