We Saved One Client $34,000 Per Month By Switching CDNs (And They Were Already Optimizing)
A growth-stage SaaS company we worked with in March 2026 was paying $48,000/month for CloudFront. Their AWS rep had told them their pricing was already optimized: they had committed-use discounts, the right cache TTLs, and an enterprise discount on top. There was nothing more to do, the rep said.
We benchmarked their workload (200TB/month egress, mostly static assets and video streaming) on four CDNs. The results:
- CloudFront (current): $48,000/month
- Cloudflare Pro + Bandwidth Alliance: $24,000/month (50% savings)
- Fastly: $32,000/month (33% savings)
- Bunny CDN: $2,640/month (94% savings)
After a 6-week migration to Bunny CDN with Cloudflare in front for DDoS, their monthly bill dropped to $4,200/month combined. Annual savings: $525,600. Latency p95 actually improved by 14ms because Bunny's POPs were closer to their user base than the CloudFront edges they had been hitting.
This is not an isolated case. Across 23 CDN audits in 2025-2026, we have found that CloudFront customers overpay by 40-94% depending on workload. The reason is structural: CloudFront's pricing model rewarded AWS in the 2010s when CDNs were rare. In 2026, with Bunny, Cloudflare, Fastly, and BunnyNet competing aggressively, CloudFront is the most expensive major CDN by a wide margin.
This post is the workload-to-CDN decision framework: which CDN wins for which traffic profile, what the hidden costs really are, and the migration playbook that does not break production.
The 2026 CDN Pricing Landscape (Real Numbers)
Here is what each major CDN actually costs in May 2026 for North America egress, plus the gotchas. All prices per TB egress.
| CDN | Egress (NA) | Egress (Asia) | HTTPS Req ($/10M) | Free Tier | DDoS | WAF |
|---|---|---|---|---|---|---|
| AWS CloudFront | $85 | $140 (India) | $7.50-$10 | 1TB/mo (12 months) | Shield Std (free) | $0.60/M req extra |
| Cloudflare (Free) | $0 | $0 | $0 | Unlimited (fair use) | Included | Included |
| Cloudflare Pro | $20/mo flat | $20/mo flat | Included | Per plan | Included | Included |
| Cloudflare Business | $200/mo flat | $200/mo flat | Included | Per plan | Included | Included |
| Bunny CDN Standard | $5 | $5 (most regions) | Included (fair) | $1 sign-up credit | Included basic | Add-on |
| Bunny CDN Volume | $10 | $10 | Included | None | Included | Add-on |
| Fastly | $120 | $190 | $7 | $50/mo trial | Included | Add-on |
| Google Cloud CDN | $80 | $200 | $7.50 | None | Cloud Armor extra | Cloud Armor extra |
| Azure Front Door | $87 | $170 | Included | None | Included basic | Add-on |
The egress price spread is 17-24x between Bunny ($5/TB) and CloudFront ($85/TB) for the same content delivery service. Yet most teams default to CloudFront because it's the AWS option.
Why CloudFront Is The Most Expensive Major CDN
CloudFront's $85/TB egress in North America is roughly 17x Bunny's $5/TB and 4x Cloudflare Pro's effective rate for typical workloads. The reasons CloudFront stays expensive:
- Legacy pricing locked in: AWS rarely cuts CloudFront prices because it would acknowledge competitor parity
- Bundled with S3 origin: AWS expects you to pay for both S3 and CloudFront, and the combined bill discourages comparison shopping
- Regional price tiering: CloudFront charges premium rates in Asia, India, South America, and Australia (often 1.5-2x NA rates), which inflates global workload costs
- HTTPS request fees on top of egress: Most teams don't notice they're paying $7.50-$10 per 10M HTTPS requests on top of bandwidth — for high-request workloads, this can equal the egress cost
CloudFront is the right choice in narrow cases (Lambda@Edge integration, S3 origin shielding for large buckets, AWS-only compliance audits). For 70-80% of workloads we audit, CloudFront is structurally the wrong answer.
Real-World Cost Modeling: Three Production Workloads
We modeled three actual workload profiles. May 2026 pricing.
Workload A: SaaS App Static Assets (50TB/month, Global)
A SaaS application serving images, JS bundles, and CSS to global users:
- 50TB/month egress (60% NA, 25% EU, 15% Asia)
- 2 billion HTTPS requests/month
- Cache hit ratio: 92%
| CDN | Egress Cost | Request Cost | Total Monthly |
|---|---|---|---|
| AWS CloudFront | $4,250 | $1,500 | $5,750 |
| Fastly | $6,000 | $1,400 | $7,400 |
| Cloudflare Pro | $20 (flat) | included | $20 |
| Cloudflare Business | $200 (flat) | included | $200 |
| Bunny CDN Standard | $250 | included | $250 |
| Google Cloud CDN | $4,000 | $1,500 | $5,500 |
Verdict: Cloudflare Pro at $20/month wins on raw cost. For features and SLA, Cloudflare Business at $200/month or Bunny CDN at $250/month are reasonable. CloudFront at $5,750 is 23x to 287x more expensive than the alternatives for this workload.
Workload B: Video Streaming (500TB/month, NA-Heavy)
A consumer streaming app, 500TB/month egress, mostly North America:
- 500TB/month egress (90% NA, 10% other)
- 8 billion HTTPS requests/month
- Cache hit ratio: 88%
| CDN | Egress Cost | Request Cost | Total Monthly |
|---|---|---|---|
| AWS CloudFront | $42,500 | $6,000 | $48,500 |
| Fastly | $60,000 | $5,600 | $65,600 |
| Cloudflare Business | Bandwidth review fee likely | included | Per quote (~$5-15K) |
| Bunny CDN Volume | $5,000 | included | $5,000 |
| Google Cloud CDN | $40,000 | $6,000 | $46,000 |
Verdict: Bunny CDN Volume at $5,000/month wins by a massive margin. Cloudflare's free/Pro/Business plans likely require enterprise pricing for this volume (high-bandwidth review). CloudFront at $48,500 costs 9.7x more than Bunny for the same delivery. Annual savings of $522,000 is realistic for streaming workloads.
Workload C: Low-Volume Marketing Site (1TB/month)
A marketing site for a B2B SaaS:
- 1TB/month egress
- 50M HTTPS requests/month
- Cache hit ratio: 95%
| CDN | Egress Cost | Request Cost | Total Monthly |
|---|---|---|---|
| AWS CloudFront | $85 | $40 | $125 |
| Cloudflare Free | $0 | $0 | $0 |
| Cloudflare Pro | $20 (flat) | included | $20 |
| Bunny CDN Standard | $5 | included | $5 |
| Fastly | $120 | $35 | $155 |
Verdict: Cloudflare Free wins outright for low-traffic sites. For sites needing more features (analytics, page rules, image optimization), Cloudflare Pro at $20/month or Bunny at $5/month are both excellent. CloudFront at $125 is hard to justify for any low-volume marketing workload.
The Decision Framework: 5 Questions
Question 1: What is your monthly egress volume?
- Under 1TB: Cloudflare Free. Done. No need to overcomplicate.
- 1-10TB: Cloudflare Pro/Business or Bunny CDN. Both are well under $50/month.
- 10-100TB: Bunny CDN if cost matters, Cloudflare Business if you want flat predictability.
- 100TB-1PB: Bunny CDN Volume tier or negotiate enterprise rates. Avoid metered providers like CloudFront and Fastly.
- Over 1PB: Multi-CDN strategy with Bunny + Cloudflare. Negotiate everything.
Question 2: How predictable is your traffic?
- Predictable, growing linearly: Metered pricing (Bunny) is fine; you can forecast costs.
- Unpredictable spikes (viral content, news, events): Flat pricing (Cloudflare) absorbs spikes without bill explosions.
- Bursty but bounded: Either model works; pick on other factors.
- Heavy Asia/India traffic: Avoid CloudFront (premium regional pricing); Bunny and Cloudflare offer global flat rates.
Question 3: What features beyond CDN do you need?
- DDoS protection: Cloudflare (free at all tiers) or AWS Shield (free with CloudFront, but Shield Advanced is expensive).
- WAF: Cloudflare bundled at Pro+; AWS WAF separately metered; Bunny via add-on.
- Edge compute: Cloudflare Workers (best value), Fastly Compute@Edge (powerful but premium), Lambda@Edge (AWS-only).
- Image optimization: Cloudflare Polish, Bunny Optimizer, Fastly Image Optimizer — all roughly comparable.
- Video streaming features: Cloudflare Stream, Bunny Stream, Mux (specialist) — Bunny wins on cost.
Question 4: What is your origin?
- AWS S3: CloudFront has origin shielding advantages, but Cloudflare R2 + Cloudflare CDN has zero origin egress.
- Cloudflare R2: Cloudflare CDN is essentially free (no egress cost, integrated).
- Bunny Storage: Bunny CDN with Bunny Storage has zero origin egress.
- GCS: Google Cloud CDN has the best integration but isn't necessarily the cheapest.
- Self-hosted origin: Pick on CDN merits alone; origin doesn't bias the decision.
Question 5: What is your engineering team's familiarity?
- AWS-native team: CloudFront has the lowest learning curve but highest cost. Calculate whether savings justify the operational shift.
- Multi-cloud team: Cloudflare is the most universal; works with any origin.
- Performance-engineering team: Fastly's developer experience is strong; worth the premium for some teams.
- Cost-optimizing team: Bunny CDN; the cost savings are the feature.
When To Pick Each CDN (Cheat Sheet)
| Workload | Best CDN | Why |
|---|---|---|
| Marketing site, low volume | Cloudflare Free | Free, fast, includes DDoS/WAF |
| SaaS static assets, global | Cloudflare Pro | Flat pricing, global coverage |
| Video streaming, high volume | Bunny CDN Volume | $10/TB beats everything for high egress |
| Image-heavy e-commerce | Bunny + Bunny Optimizer | On-the-fly optimization, low cost |
| API caching, edge compute | Cloudflare Workers | Best dev experience, cheapest edge compute |
| Latency-critical (gaming, trading) | Fastly | Lowest tail latency, instant purge |
| AWS-native data lake serving | CloudFront | S3 integration, Lambda@Edge |
| Multi-region replicated content | Cloudflare Business | Bandwidth Alliance + global flat rate |
| Enterprise compliance (FedRAMP) | CloudFront or Akamai | Compliance certifications |
| File downloads (large objects) | Bunny CDN | Per-GB price wins for big files |
| Cloudflare R2 origin | Cloudflare CDN | Zero origin egress, integrated |
| Static site (Vercel/Netlify hosted) | Use built-in CDN | Their bundled CDN is usually cheapest if you're on the platform |
| High-DDoS-risk service | Cloudflare | Free unmetered DDoS protection |
| WebSocket-heavy app | Cloudflare or Fastly | Better protocol support than CloudFront |
| Live video streaming | Bunny Stream or Mux | Specialized cost models for live |
The Hidden Costs Most CDN Comparisons Miss
Hidden Cost 1: HTTPS Request Fees
CloudFront charges $0.0075-$0.01 per 10K HTTPS requests on top of bandwidth. For a workload with 8B requests/month, that is $6,000-$8,000 in request fees alone. Cloudflare and Bunny include all requests in their plans. Always ask: "Am I paying for requests, or just bandwidth?"
Hidden Cost 2: Regional Egress Multipliers
CloudFront's price for 1TB egress to North America is $85. To India, it is $109-$140. To Australia, $114. To South America, $114. If your user base is global, your effective egress rate is much higher than the headline NA rate.
Cloudflare and Bunny charge global flat rates (or close to it). For globally distributed users, this dramatically simplifies cost forecasting.
Hidden Cost 3: Origin Egress
If your origin is S3 and your CDN is CloudFront, both AWS services are in the same cloud, so there's no extra origin egress fee. If your CDN is Bunny but your origin is still S3, you pay S3 egress to Bunny ($90/TB egress out of S3) on every cache miss.
Mitigation: Co-locate origin and CDN. Bunny Storage + Bunny CDN = zero origin egress. Cloudflare R2 + Cloudflare CDN = zero origin egress. AWS S3 + CloudFront = zero origin egress (but CloudFront is expensive). Mixing producers costs you on cache misses.
Hidden Cost 4: Image and Video Optimization Charges
Most CDNs charge separately for on-the-fly image optimization:
- Cloudflare Polish: Bundled in Pro/Business plans
- Bunny Optimizer: $9.50/month for service + $0.005 per processed image
- Fastly Image Optimizer: $0.04 per 1K transformations
- CloudFront + S3 Object Lambda: Build it yourself, pay Lambda + S3 fees
For image-heavy sites, this can add 10-30% to your CDN bill.
Hidden Cost 5: WAF and Bot Management
- Cloudflare WAF: Free at all paid tiers
- AWS WAF (with CloudFront): $5/month per Web ACL + $1/M requests
- Bunny WAF: Add-on, $20/month per zone
- Fastly WAF (Signal Sciences): Enterprise pricing, often $1K+/month
If you need WAF, factor it in. CloudFront + AWS WAF for a moderate workload can add $500-$2,000/month over CloudFront alone.
Hidden Cost 6: Bandwidth Alliance vs Direct Egress
Cloudflare's Bandwidth Alliance lets compatible storage providers (Backblaze B2, Wasabi, etc.) egress to Cloudflare for free. Without Bandwidth Alliance, you pay normal egress on cache misses. Always check:
- Is your origin a Bandwidth Alliance member?
- Does your CDN support free origin egress with your storage?
These choices stack: Cloudflare R2 + Cloudflare CDN = zero. Backblaze B2 + Cloudflare CDN = zero. Backblaze B2 + Bunny CDN = $10/TB (no Bandwidth Alliance with Bunny). The full stack matters.
CloudFront Migration Playbook
For workloads where CloudFront is costing 5-10x more than alternatives, migration typically takes 2-6 weeks with negligible production risk. Here is the playbook from real migrations.
Step 1: Audit Current CloudFront Setup
For each CloudFront distribution, document:
- Origin (S3, ALB, custom)
- Cache behaviors (paths, TTLs, query strings, headers)
- Lambda@Edge functions (if any)
- WAF rules (if any)
- Geo-restrictions
- Custom SSL certs
This is your migration target list.
Step 2: Pick Replacement CDN by Workload
Use the decision framework above. For most cost-driven migrations, the answer is Bunny (lowest cost) or Cloudflare (most features at flat rate).
Step 3: Set Up Parallel Distribution
- Configure the new CDN with identical cache behaviors
- Test with internal/dev traffic first
- Verify cache hit ratios match expectations
- Validate any custom logic (redirects, header manipulation)
Step 4: DNS Cutover with Rollback Path
- Lower CloudFront TTL to 60 seconds (24 hours before cutover)
- Switch DNS to point to new CDN with 60-second TTL
- Monitor for 24-48 hours; rollback by flipping DNS back
- After 7 days of stable operation, raise TTL to normal
Step 5: Decommission CloudFront
After 30 days at 100% traffic on new CDN with no incidents:
- Remove CloudFront distributions
- Cancel any AWS WAF Web ACLs tied to CloudFront
- Document new CDN in runbooks
Step 6: Lock In Savings
Calculate actual monthly savings, share with the team, and tag the migration as a cost optimization win for accounting/leadership visibility.
When CloudFront Is Actually The Right Choice
To be fair, CloudFront is not always wrong. It wins when:
- Lambda@Edge is critical to your architecture (no other CDN has equivalent AWS-native edge compute)
- S3 Origin Shielding matters for very large buckets with cold tier access patterns
- AWS WAF integration is mandatory for compliance reasons (vs. swappable WAF providers)
- Your team has zero capacity for migration and your CloudFront bill is small enough that the savings don't matter
- Ultra-strict change-management environments where any production change carries unacceptable risk
For about 20-30% of workloads we audit, CloudFront stays. For the other 70-80%, an alternative CDN delivers 50-95% savings with acceptable migration risk.
Multi-CDN Strategy: When To Use Two
Some teams adopt a multi-CDN strategy: Cloudflare in front for DDoS/WAF, Bunny behind for cheap egress. Or: CloudFront for AWS-native paths, Cloudflare for everything else.
Multi-CDN makes sense when:
- Traffic exceeds 500TB/month and a single provider's flat-rate ceiling kicks in
- Compliance requires geographic diversity (regulator demands traffic not concentrate on one CDN)
- Some routes need edge compute, others don't: route compute paths to Cloudflare/Fastly, content to Bunny
- Failover SLAs are stricter than any single CDN can provide alone
For most teams under 500TB/month, single-CDN is simpler and cheaper.
A 30-Day CDN Cost Audit
If your CDN bill is over $5,000/month, run this audit. We typically find 50-90% savings.
Week 1: Visibility
- Pull last 90 days of CDN bills, broken down by distribution/zone
- Identify the top 5 most expensive distributions
- Get CSV of egress by region
- Calculate effective $/TB by region (the headline rate is rarely your actual rate)
Week 2: Workload Categorize
For each top-5 distribution, categorize:
- Static assets vs API vs streaming vs downloads
- Egress volume and trend
- Request volume and trend
- Geographic distribution
- Feature dependencies (WAF, edge compute, image optimization)
Week 3: Model Alternatives
For each workload, calculate cost on:
- Cloudflare (Free / Pro / Business / Enterprise)
- Bunny CDN (Standard / Volume)
- Fastly (only if edge compute is essential)
- Multi-CDN strategy (Cloudflare + Bunny)
Add migration effort estimate (engineering hours).
Week 4: Execute
Migrate workloads where annual savings exceed migration effort by 3x. Defer where savings under 30% or migration risk too high.
The Bottom Line
CloudFront's $85/TB egress in 2026 makes it the most expensive major CDN by a wide margin. Bunny CDN at $5/TB delivers comparable performance for 17x less. Cloudflare's flat plans dominate for unpredictable traffic. Fastly wins narrow developer-focused use cases at a premium price.
The core failure pattern: teams default to CloudFront because their AWS console offers it, never benchmark alternatives, and overpay for years. The migration is straightforward, the savings are massive, and the performance trade-off for most workloads is zero or positive.
If your CDN bill is over $10,000/month and you have not benchmarked alternatives in the last 12 months, you are almost certainly overpaying by 50-90%. Our cloud cost optimization team runs free CDN audits and typically identifies 50-95% savings. Run a free Cloud Waste Scorecard to find your biggest CDN cost leaks.
Further reading:



