Two hyperscaler CDNs with opposite instincts: AWS’s feature-rich distribution model against Google’s cache-on-a-load-balancer minimalism.
Winner depends on your workload.
Winner depends on: which cloud hosts your origins — these products price and integrate so asymmetrically outside their home clouds that cross-cloud use rarely survives the arithmetic.
Side by side
| CloudFront | Google Cloud CDN | |
|---|---|---|
| Architecture | Standalone distributions in front of any origin | Caching enabled on Google’s global external load balancer |
| Egress (NA/EU start) | $0.085/GB, 1 TB/month always free | $0.08/GB, dropping to $0.02/GB above 500 TB |
| Origin fetch | Free from AWS origins | Cache fill billed ($0.01–$0.08/GB by region) |
| Requests | $0.0075–$0.0100 per 10k | $0.0075 per 10k lookups |
| Edge compute | CloudFront Functions + Lambda@Edge | None in-product; logic lives in Cloud Armor / app / Media CDN |
| Feature surface | Behaviors, policies, price classes, flat-rate plans | Deliberately thin: cache modes, negative caching, invalidation |
Opposite design instincts
CloudFront behaves like a product: distributions, cache behaviors, origin groups, response-header policies, two tiers of edge compute, even flat-rate pricing plans. Google Cloud CDN behaves like a checkbox: attach caching to the global external load balancer your GCP app already uses, and traffic rides Google’s premium backbone with minimal ceremony. Neither instinct is wrong — but they produce very different operational lives, and very different failure modes when requirements grow.
The meters, side by side
Both bill three ways — egress, requests, and the origin path — but the fine print diverges. CloudFront: egress from $0.085/GB in NA/EU tiering down with volume, a permanent free tier of 1 TB and 10 million requests, free transfer in from AWS origins, and invalidation free for the first 1,000 paths a month. Cloud CDN: cache egress from $0.08/GB in NA/EU falling to $0.02/GB past 500 TB, plus cache fill billed at $0.01–$0.08/GB on misses, lookups at $0.0075 per 10,000, and the same first-1,000-free invalidation posture.
Worked example at 50 TB/month, NA/EU, 92% hit ratio: CloudFront lands around $4,100–4,300 in egress after tiers with zero origin-fetch cost from S3; Cloud CDN lands near $4,000 in cache egress plus roughly $40 of cache fill from a same-region origin — effectively a wash. The comparison is decided not by these pennies but by where your compute already runs and which cloud’s egress discounts you can negotiate. Figures checked against provider pricing pages, July 2026.
Feature depth vs deliberate thinness
CloudFront’s surface is broad: per-path behaviors, origin failover, signed URLs and cookies, Origin Shield, real-time logs, and programmability in two sizes — the split we dissect in CloudFront Functions vs Lambda@Edge. Cloud CDN keeps the surface small on purpose: cache modes, TTL overrides, negative caching — and expects sophistication to live elsewhere: security logic in Cloud Armor, media-grade delivery in the separate Media CDN product, request logic in your application. Teams that want a programmable edge on Google generally end up on Media CDN or a third-party overlay — a gap we also flagged in Google Cloud CDN vs Azure Front Door.
Where each one leaks money
Operationally the two also age differently. CloudFront configurations accrete: distributions multiply, behaviors stack, and five-year-old estates routinely carry Lambda@Edge functions nobody remembers deploying — an audit surface in its own right. Cloud CDN barely accretes because there is so little to configure, but that cuts both ways: when a requirement lands that the product cannot express, the workaround lives in your application code or in a second product, and the total system quietly becomes harder to reason about than the “complicated” alternative would have been. Neither pattern is fatal; both are worth naming before you commit an estate to one of them.
CloudFront leaks through request-heavy workloads (API and small-object traffic where per-10k fees stack up), regional tiering (each region tiers independently, so global traffic blends expensive), and Lambda@Edge attached to static-asset paths. Cloud CDN leaks through cache fill on low-hit-ratio workloads — the miss path is billed both as fill and as backend egress economics — and through its thinness: features you assumed were table stakes (edge auth, complex rewrites) become engineering projects in your app tier.
How to decide
Follow the origins. AWS-native: CloudFront, almost without exception — the free origin path plus ecosystem integration is decisive. GCP-native with straightforward caching: Cloud CDN is nearly free to adopt and operationally invisible. Multi-cloud or feature-hungry: this is where both hyperscaler CDNs lose to specialists, and where an independent look at your traffic file pays for itself.
Straddling AWS and GCP? The assessment prices both native paths against a specialist overlay on your real traffic mix.
