A global SaaS product can add millions of requests before its CDN bill becomes a line item anyone has modeled carefully. As a Content Delivery Network, CloudFront offers metered delivery charges and fixed monthly plans, so not every gigabyte must be priced separately.
The right option depends on user location and data transfer out. It also depends on bundled security and observability needs, and whether AWS Free Tier allowances cover a prototype or low-volume deployment.
Start with the billing model, then test it against real traffic. That makes cost optimization a modeling exercise, not a simple price comparison.
Key Takeaways
- AWS CloudFront offers pay-as-you-go delivery pricing and four flat-rate plans; the right choice depends on traffic patterns, distribution count, domains, and bundled service needs.
- Pay-as-you-go charges separately for viewer data transfer, HTTP or HTTPS requests, edge compute, and selected features. The AWS Free Tier can reduce early costs, but it is unlikely to cover a mature global SaaS workload.
- Flat-rate plans include defined allowances for data transfer and requests, along with services such as AWS WAF, Route 53, DDoS protection, logs, edge compute, and S3 credits. Review plan limits and architecture requirements before treating a monthly price as the complete bill.
- Cache hits reduce origin load, latency, and infrastructure costs, but they do not remove CloudFront viewer delivery or request charges. Compression, narrow cache keys, versioned assets, and deliberate invalidation can improve total-stack economics.
- Model traffic by geography, request type, payload size, growth scenario, and supporting services. Use AWS Budgets, Cost Explorer, real traffic measurements, and the AWS Pricing Calculator to validate the forecast before committing to a plan.
AWS CloudFront pricing starts with two billing models
CloudFront offers traditional pay-as-you-go pricing and four CloudFront flat-rate pricing plans. Pay-as-you-go charges rise with data transfer out, HTTP or HTTPS requests, and selected features. It suits variable workloads, multi-distribution architectures, and teams that want full configuration flexibility.
Flat-rate plans package CDN delivery with several related AWS services for a monthly price. AWS introduced these plans with no overage charges, including during traffic spikes and attacks. The trade-off is that each plan has stated usage allowances and configuration boundaries.
Metered delivery remains the better baseline when you need several distributions, unusual origin layouts, or traffic patterns that don’t align with a plan. A flat-rate plan is attractive when one public application dominates delivery costs and predictable spend matters more than per-unit billing.
Predictability still requires capacity planning
A fixed monthly amount doesn’t make every SaaS deployment a flat-rate candidate. Each plan covers one CloudFront distribution and one root domain, while its usage allowance and caching behavior limits vary by tier.
For example, a product with separate customer portals, API endpoints, marketing sites, and branded domains may need several distributions. A seemingly low plan price can then understate the wider architecture cost, especially when cache invalidation needs are significant.
Review request allowance, data transfer allowance, domain structure, and operational requirements before treating a plan as an automatic replacement for metered CloudFront.
Pay-as-you-go delivery charges for data transfer out in the US and Europe
With pay-as-you-go pricing, CloudFront charges mainly for data transfer out to viewers and request volume. The AWS Free Tier includes the first 1 TB of monthly data delivered to viewers and the first 10 million HTTP or HTTPS requests. These free tier benefits can reduce early costs, but they won’t cover a mature global SaaS workload.
After that allowance, pricing depends on the viewer’s geography. Regional data transfer rates vary by the edge locations serving each audience. The first paid tiers for two common SaaS audiences are shown below. Validate current figures in the official CloudFront pricing tables before approving a forecast.
| Viewer region | Next 9 TB of data transfer | Next 40 TB of data transfer |
|---|---|---|
| United States, Mexico, and Canada | $0.085 per GB | $0.080 per GB |
| Europe, Israel, and Turkiye | $0.085 per GB | $0.080 per GB |
Request pricing is separate from delivered bytes.
| Request type | US, Mexico, and Canada | Europe, Israel, and Turkiye |
|---|---|---|
| HTTP requests | $0.0075 per 10,000 | $0.0090 per 10,000 |
| HTTPS requests | $0.0100 per 10,000 | $0.0120 per 10,000 |
HTTPS is the normal choice for a SaaS application. Request volume can therefore become material for chatty APIs, image-heavy dashboards, or applications that load many small assets.
Measure data transfer and requests independently
A 100 KB JavaScript bundle downloaded one million times creates roughly 95 GB of viewer delivery. Meanwhile, one million API calls with tiny JSON responses may create little bandwidth but still add request charges.
The basic pay-as-you-go model is:
Monthly CloudFront cost = delivered data + HTTP/HTTPS requests + edge compute + optional feature charges
That formula excludes charges from services around CloudFront. AWS WAF, Route 53, CloudWatch Logs, S3, Lambda@Edge, and origin infrastructure can all affect the broader delivery budget.
CloudFront flat-rate pricing plans and included allowances
AWS’s flat-rate plan documentation lists four monthly options. Their stated allowances make request count, not data transfer, the likely early constraint for many API-led SaaS products. Each plan still has a usage allowance boundary.
| Plan | Monthly price | Included data transfer | Included requests |
|---|---|---|---|
| Free | $0 | 100 GB | 1 million |
| Pro | $15 | 50 TB | 10 million |
| Business | $200 | 50 TB | 125 million |
| Premium | $1,000 | 50 TB | 500 million |
All four plans bundle CloudFront CDN delivery, AWS WAF, DDoS protection, Route 53 DNS, TLS certificates, CloudWatch Logs ingestion allowance, edge compute, and Amazon S3 storage credits. For that capacity, compare CloudFront Functions with Lambda@Edge and verify what the plan includes. AWS details those packaged services in its CloudFront pricing FAQ.
Even without overage charges, check operational limits, such as cache invalidation, separately from transfer and request allowances.
Business adds bot protection, advanced DDoS capabilities, and private origin endpoints. Premium targets larger applications and can use higher configurable usage levels.
Premium changes the high-volume comparison
Premium is the only configurable tier. Its self-service levels scale beyond the default 50 TB and 500 million requests, reaching 600 TB and 6 billion requests at the $10,000 monthly level.
AWS documents those higher settings in its Premium configurable allowances update. That makes Premium relevant for mature SaaS platforms with sustained worldwide traffic, rather than only for companies trying to avoid a surprise bill.
The Free flat-rate plan is separate from the AWS Free Tier, which provides CloudFront’s standard credits and free tier benefits. Don’t combine their allowances in a single cost model.
A worked CloudFront cost estimate for a SaaS application
Assume a SaaS application delivers 3 TB of viewer data transfer out in the United States during one month and receives 60 million HTTPS requests. This example uses 1 TB as 1,024 GB and excludes WAF, logs, Lambda@Edge, taxes, support, cache invalidation, and any origin charges.
Illustrative pay-as-you-go calculation
- The first 1 TB of data transfer is free under the AWS Free Tier, leaving 2,048 GB of billed delivery.
- At $0.085 per GB, estimated transfer charges are $174.08.
- The first 10 million HTTPS requests are free, leaving 50 million billable requests.
- At $0.0100 per 10,000 requests, those HTTPS requests add $50.00.
The estimated CloudFront delivery subtotal is $224.08 for the month. This estimate also shows the practical free tier benefits, but it remains an illustrative subtotal.
A Business flat-rate plan costs $200 monthly and includes 125 million requests plus 50 TB of delivery. On these assumptions, it may cost less while also bundling services that a pay-as-you-go estimate leaves out.
However, that doesn’t make $200 the guaranteed bill. The application must fit the plan’s distribution, domain, cache behavior, security, and feature requirements. Traffic from Europe, Asia Pacific, South America, or India can change the metered comparison because regional data transfer rates, edge locations, and price classes affect delivery costs.
For a quick screen, $15 divided by $0.085 equals about 176 GB. Once paid US or European transfer exceeds that amount, Pro costs less than data transfer alone. Request allowances and architecture constraints still decide whether Pro is usable.
Cache-hit ratio, compression, and growth assumptions
Your cache configuration affects the economics of the complete SaaS stack. Its caching behavior has less direct effect on CloudFront’s viewer delivery charges than many teams expect.
A high cache hit ratio lowers origin load, but CloudFront still bills the bytes and viewer requests it delivers.
A cache hit means CloudFront returns an object from an edge cache instead of asking the origin server for it. That can reduce API capacity, database pressure, origin egress, and latency. It doesn’t reduce the number of requests received from viewers, nor does it remove the cost of data CloudFront sends to them.
Keep cache keys narrow and intentional
Cache keys should vary only on headers, cookies, and query parameters that actually change a response. Adding a session cookie or a unique marketing parameter to every request can turn a cacheable asset into thousands of distinct objects.
Static JavaScript, fonts, images, documentation, and public product assets usually benefit from long TTLs and versioned file names. Authenticated HTML and personalized API responses need more care. Cache only responses that are safe to share.
Use versioned asset URLs such as app.4f8a2.js after deployment. This avoids frequent cache invalidation. For cache invalidation, CloudFront includes the first 1,000 paths each month, then charges $0.005 per path.
Compression reduces billable bytes
Brotli compression and gzip can lower delivered bytes for text-based files, including JavaScript, CSS, HTML, JSON, and SVG. The savings depend on the original payload and client support.
Measure compressed payload sizes in real user monitoring data. An uncompressed forecast will overstate delivery. An ideal-compression forecast can miss API payloads and media files that don’t compress well. Together, compression, sensible TTLs, and asset versioning improve total-stack economics and support cost optimization.
Traffic growth should use at least three scenarios: expected demand, a product-launch spike, and a high-usage case driven by new regions or large customers. Include cache invalidation in release planning, especially when unversioned assets require urgent updates.
Price classes and origin choices affect global delivery cost
CloudFront price classes trade edge coverage for lower delivery rates. Price Class All uses the broadest set of edge locations. Lower classes omit higher-cost locations, which can reduce charges but may increase viewer latency because requests route through fewer eligible edge locations.
For a SaaS product with strict response-time commitments, start with the locations where paid users work. A lower price class can make sense when most users are in North America and Europe. It is a weaker fit for an application with important customers in India, South America, Australia, Japan, or Southeast Asia.
Use Origin Shield where origin protection outweighs its fee
Data transfer out from AWS origins such as Amazon S3, an ALB, and API Gateway to CloudFront is free. That removes a common concern when CloudFront fronts an AWS-hosted application.
Origin Shield adds another cache layer that can reduce repeated origin fetches across CloudFront’s network. The extra layer doesn’t eliminate cache invalidation when content changes, and it adds request charges. In the US, Origin Shield requests cost $0.0075 per 10,000 requests. In Europe, they cost $0.0090 per 10,000 requests.
Use it for heavily requested shared objects, software downloads, popular media, or an origin server with limited capacity. Run a before-and-after test that tracks origin requests, cache hits, latency, and the Shield line item. Use the results to validate the fee against reduced origin fetches as part of cost optimization. It is rarely justified by theory alone.
CloudFront Functions and Lambda@Edge have different cost profiles
Edge compute can improve redirects, authorization flows, request normalization, headers, and A/B routing. It can also add a hidden cost multiplier when every viewer request invokes code.
Use CloudFront Functions for small viewer-side logic
CloudFront Functions run lightweight JavaScript at viewer request and viewer response events. They fit URL rewrites, redirects, header updates, cache-key normalization, and simple request checks.
Each function has a 1 millisecond execution limit, 2 MB of memory, and a 10 KB code size limit. These functions can’t make network calls. The service includes 2 million invocations per month, then charges $0.10 per million invocations.
For a rule that runs on every request, that low unit price still deserves measurement. A product processing 500 million monthly requests can generate meaningful invocation volume.
Reserve Lambda@Edge for work Functions cannot do
Lambda@Edge supports more complex logic and can run at viewer and origin events. Viewer events have tighter limits, including a five-second maximum execution time and 128 MB memory limit. Origin events can run for up to 30 seconds and support much larger memory allocation.
That flexibility comes with request charges and duration charges. The service is usually appropriate for tasks that need origin-event handling, more compute time, or dependencies beyond a function’s limits.
Use Functions for deterministic request edits. Use the edge runtime only when its broader execution model is required, then model invocations and GB-seconds against the current AWS rate card.
Security, logs, and DNS can change the total delivery bill
A CDN-only estimate often misses the services required to operate a public SaaS application safely. Under pay-as-you-go pricing, AWS WAF web ACLs, DDoS protection, managed rule groups, and inspected requests need separate estimates. Route 53 hosted zones and queries, log ingestion, and storage do too.
Flat-rate plans bundle many of these costs. That can change the comparison sharply for an application already using WAF, DNS, CloudWatch Logs, edge compute, and S3 alongside CloudFront.
Match security controls to the application design
Business is a practical starting point when bot protection and private origin endpoints matter. Premium may suit high-volume applications that also need its expanded protection and availability features.
Mutual TLS needs separate operational review, even when a plan includes related security services. Confirm certificate issuance, client certificate rotation, and trust-store management. Also review application compatibility and any custom SSL certificate requirements before moving a customer-facing endpoint.
Security controls should also shape caching behavior. Policy, authorization, or public-content changes may require cache invalidation for affected edge objects. Never cache authenticated content at the edge unless the cache key and response behavior prevent one user from receiving another user’s data.
Monitor CloudFront spend before it becomes a finance surprise
AWS Cost Explorer explains what has already happened. AWS Budgets and operational metrics help teams respond before the month closes. Use both, because a flat-rate plan and a metered distribution require different alerts.
Build a monthly forecast from usage signals
Use cost allocation tags for environment, product, customer segment, and owning team where the architecture supports them. Then review these line items together: data transfer out, HTTP or HTTPS requests, and CloudFront Functions invocations. Include Lambda@Edge duration, AWS WAF requests, origin shield usage, and cache invalidation costs.
A practical monthly process has four steps:
- Compare CloudFront viewer traffic by geography and edge locations against forecast assumptions, including selected price classes.
- Track cache-hit ratio and origin request volume beside billed regional data transfer.
- Set AWS Budgets alerts at both actual and forecast thresholds, and reflect eligible AWS Free Tier credits in the forecast.
- Recalculate after major releases, new customer launches, geographic expansion, or changes to planned cache invalidation.
For ongoing cost optimization, create separate estimates for static delivery, dynamic API traffic, downloads, and abuse scenarios. A single blended “average GB cost” hides the regional and request-level patterns that matter most.
Before committing to a plan, build the scenario in the AWS Pricing Calculator. Compare the result with the applicable pricing page. AWS can change rates, discounts, service bundles, and plan allowances, so calculator output is an estimate rather than a guaranteed invoice.
Frequently Asked Questions
Which CloudFront pricing model is best for a global SaaS application?
Pay-as-you-go pricing suits variable traffic, multiple distributions, unusual origin designs, and teams that need full configuration flexibility. A flat-rate plan can be more predictable when one public application has steady usage and can fit the plan’s distribution, domain, and allowance limits.
What does AWS CloudFront charge for under pay-as-you-go pricing?
The main charges are viewer data transfer out and HTTP or HTTPS requests, with additional costs possible for edge compute, invalidation, Origin Shield, WAF, logs, and related services. Regional rates vary, so model traffic by viewer geography rather than using one blended global rate.
Do CloudFront flat-rate plans have overage charges?
AWS states that its flat-rate plans do not charge overages during traffic spikes or attacks. They still have defined usage allowances and configuration boundaries, so exceeding an allowance or requiring unsupported architecture does not automatically make the plan suitable.
Does a high CloudFront cache-hit ratio reduce CDN charges?
A high cache-hit ratio reduces origin requests, database pressure, latency, and potentially origin infrastructure costs. It does not eliminate the viewer requests or bytes that CloudFront delivers, which remain relevant to CDN charges.
How should a SaaS team estimate its monthly CloudFront cost?
Separate data transfer, request volume, edge compute, cache invalidation, security, logging, DNS, and origin-related costs. Test expected demand, launch spikes, and high-usage scenarios in the AWS Pricing Calculator, then validate the assumptions with Cost Explorer and operational metrics.
Make delivery costs a planned SaaS input
A strong cost optimization model for AWS CloudFront pricing separates viewer delivery, request volume, edge logic, and origin load. It also models cache invalidation alongside surrounding security services. Cache performance remains an origin-efficiency metric, not a magic discount on every CDN charge.
For a single public application with steady global usage, CloudFront flat-rate pricing plans can make costs easier to forecast. For complex or multi-distribution environments, pay-as-you-go pricing retains flexibility and demands tighter measurement.
A useful model changes when customer geography, payload size, or product behavior changes.

