CloudFront Request Fees and Data Transfer Costs Explained

On small-object workloads, Amazon CloudFront request pricing can outweigh bandwidth by nearly 6 to 1. At US and Europe list rates, 2 billion HTTPS requests cost $2,000 at $0.0100 per 10,000. The 5 TB those requests carry costs about $340 once the 1 TB monthly free tier is applied. The crossover sits near an 11.8 KB average object: below that size, requests drive the bill more than bytes do. This brief covers every CloudFront line item in one table, the math for origin transfer and invalidations, worked bills for three workloads, and the thresholds that tell you which cost lever to pull first.

Amazon CloudFront charges $0.0100 per 10,000 HTTPS requests and $0.0075 per 10,000 HTTP requests in the US and Europe (list rates as of 2025, unchanged for several years), on top of $0.085 per GB for the first 10 TB of transfer. One HTTPS request therefore costs the same as about 11.8 KB of first-tier transfer. Any workload whose average response is smaller than that pays more for requests than for bandwidth.

Where an Amazon CloudFront bill comes from: every line item

Most CloudFront invoices contain six to ten usage types. Each one has its own billing unit, which is why a blended cost per GB can drift far from the headline transfer rate. The table lists US and Europe rates. Other regions cost more, as covered further down.

Line item US and Europe rate Billed on First lever
Data transfer out to internet $0.085/GB (first 10 TB), $0.080 (to 50 TB), $0.060 (to 150 TB), $0.040 (to 500 TB), lower beyond Bytes delivered to viewers Compression, image sizing, per-TB pricing at volume
HTTP requests $0.0075 per 10,000 Every viewer request, hit or miss Browser caching, fewer objects
HTTPS requests $0.0100 per 10,000 Every viewer request, hit or miss Batching, longer client max-age
Regional data transfer out to origin $0.020/GB Bytes CloudFront sends to the origin (POST, PUT, uploads) Direct-to-storage uploads
Origin Shield About $0.0075–$0.0090 per 10,000 (estimate) Requests reaching the shield layer Disable when the edge hit ratio is above 95%
Invalidations 1,000 paths per month included, then $0.005 per path Paths submitted, wildcard counts as one Versioned filenames
Real-time logs $0.01 per million log lines, plus stream costs Log lines generated Sampling rate
CloudFront Functions $0.10 per million invocations Invocations Attach only to the events that need it
Lambda@Edge $0.60 per million requests plus duration (GB-seconds) Invocations and compute time Move header logic to Functions
Always-free allowance 1 TB transfer, 10 million requests, 2 million Functions invocations per month Per account Worth about $95 a month, irrelevant at scale

Request fees and origin transfer are the two line items that scale with traffic shape rather than volume, so they are where blended cost per GB surprises budget owners.

Regional multipliers on transfer and requests

The rates above apply only to viewers served from North American and European edges. Based on 2025 price lists, first-tier transfer in South America, India, Japan and Australia runs roughly $0.11 to $0.14 per GB (estimate). HTTPS requests in those regions cost roughly $0.012 to $0.022 per 10,000. A mobile app with 40% of its requests in Latin America and Southeast Asia can see its request line rise by half with no change in total traffic. Model by viewer geography, not by aggregate volume.

CloudFront request pricing: HTTP vs HTTPS and the 11.8 KB crossover

CloudFront bills every viewer request that reaches an edge, whether it is served from cache or forwarded to the origin. A 304 revalidation is a billed request. So is a 403 from a geo restriction and a HEAD probe from a monitoring system. The only request that costs nothing is the one the browser answers from its own cache and never sends.

This is why cache-hit ratio, the metric most teams watch, has no effect on request fees. A 99% edge hit ratio lowers origin load and origin transfer. It does not lower the request line by a cent. Only client-side caching (a long Cache-Control max-age on immutable assets), fewer objects per page, and batched API and beacon calls reduce what you pay per request.

The crossover arithmetic is worth memorizing. An HTTPS request costs $0.000001. First-tier transfer costs $0.000000085 per KB (decimal). Dividing the two gives 11.8 KB. At the $0.060 tier the crossover rises to 16.7 KB, and at the $0.040 tier it reaches 25 KB. Request fees therefore matter more, not less, as your transfer volume grows. For plain HTTP the first-tier crossover is 8.8 KB, although almost no production traffic is served over plain HTTP in 2026.

Request-heavy workload: a worked cost model

Take an API and thumbnail service in US and Europe that delivers 5 TB a month across 2 billion HTTPS requests. That works out to an average response of 2.5 KB, well below the crossover. Our estimate, using list rates:

  • Requests: 2,000,000,000 divided by 10,000 equals 200,000 units, at $0.0100 each, which is $2,000. Subtract the 10 million free requests ($10) for a total of $1,990.
  • Transfer: 5,000 GB minus 1,000 GB free leaves 4,000 GB at $0.085, which is $340.
  • Total: $2,330, with 85% of it from requests. Blended cost: $0.47 per GB delivered.

Look at what moves this bill. If a client SDK batches telemetry calls 5 to 1 and cuts total requests by 30%, the bill falls by about $600. If you compress every response by 50%, it falls by $170. Engineering time spent on request count pays back roughly 3.5 times faster than time spent on bytes in this shape of workload.

Three monthly bills compared

Workload (US/EU, HTTPS) Transfer Requests Total (estimate) Request share
5 TB, 2 billion requests (API, thumbnails) $340 $1,990 $2,330 85%
100 TB, 800 million requests (web app) $6,965 $790 $7,755 10%
500 TB, 50 million requests (video, downloads) $23,965 $40 $24,005 0.2%

Request fees dominate below a few KB per object, while transfer tiers decide the bill for large-file delivery, so the right optimization depends entirely on average object size.

CloudFront data transfer out to origin: what it is and what it costs

CloudFront data transfer out to origin is the traffic CloudFront sends toward your origin: POST and PUT bodies, uploads and form submissions. In the US and Europe it costs $0.020 per GB, with higher rates in other regions. Cache-fill traffic flows the other way. It is free from AWS origins, while a non-AWS origin pays its own provider's egress.

The line stays small for read-heavy sites and becomes significant for upload paths routed through a distribution. A media ingest endpoint that accepts 50 TB of user uploads a month through CloudFront pays about $1,000 in origin transfer, plus a request fee on every multipart chunk. Presigned uploads that go straight to S3 avoid both charges. They give up edge TLS termination on the upload path, which is a trade-off worth testing on high-latency regions before switching.

Origin fetch has a second cost that does not appear on the CloudFront invoice. An origin on another cloud or in a colocation facility bills egress on every cache miss. At an 85% hit ratio on 100 TB, that is 15 TB of origin egress. Origin Shield collapses duplicate misses from multiple edges, but it adds its own per-request fee, so it pays off only when misses are frequent and origin egress costs more than the shield requests do.

CloudFront invalidation cost and how to avoid paying it

The first 1,000 invalidation paths each month are included at the account level. Each path after that costs $0.005. A wildcard such as /assets/* counts as one path regardless of how many objects it clears, so invalidation cost depends on how you submit paths, not on how much content changes.

The expensive pattern is a CI pipeline that lists changed files individually. Twenty deploys a day at 400 paths each comes to 240,000 paths a month, or $1,195. The same pipeline submitting one wildcard per deploy uses 600 paths and costs nothing. Content-hashed filenames remove the need to invalidate at all and let you set year-long client TTLs, which also reduces request fees.

Failure modes: what inflates a CloudFront bill and how to confirm it

Each failure mode below shows up as a specific usage type in the AWS Cost and Usage Report. Group by usage type (names such as US-Requests-Tier2-HTTPS, US-DataTransfer-Out-Bytes and US-DataTransfer-Out-OBytes) before guessing.

  • Cache-key fragmentation. Tracking parameters or session cookies included in the cache policy. Symptom: hit ratio below 85% and origin load that grows faster than traffic. Confirm by comparing the cache statistics report against the number of unique query strings in standard logs.
  • Short-TTL polling. Clients revalidating every few seconds. Symptom: the HTTPS request line grows while transfer stays flat. Confirm by checking the share of 304 responses in logs.
  • Per-file invalidation loops. Symptom: an Invalidations line every month. Confirm by counting paths per invalidation batch.
  • Upload paths through the distribution. Symptom: an OBytes usage type that tracks upload volume. Confirm with the request method breakdown in logs.
  • Geography shift. Symptom: blended cost per GB rises with no change in volume. Confirm by splitting usage types by region prefix.
  • Edge compute creep. Lambda@Edge attached to viewer-request on every object. Confirm the invocation count against the request count.

Which lever to pull first

Signal Threshold Action
Average object size (bytes divided by requests) Under 12 KB Cut request count: batching, client max-age, sprites
Edge hit ratio Under 90% Tighten the cache key, then evaluate Origin Shield
Invalidation paths Over 1,000 a month Versioned filenames or wildcard batches
Static transfer to viewers Over 50 TB a month Price flat-rate plans and per-TB CDNs for the heavy files

Average object size is the single number that tells you whether to optimize requests or bytes, and it takes one division to compute.

When CloudFront pricing still makes sense, and when to offload

CloudFront earns its rates when the distribution sits in front of S3, ALB, API Gateway or MediaPackage. Origin fetch from those services is free, and IAM, WAF and Lambda integration save engineering time. Below about 46 TB a month, the flat-rate CloudFront Business plan ($200 for 50 TB) can cost less than any metered option, provided your request count fits its allowance.

Large-file delivery changes the math. Published price lists, checked August 2026, put 100 TB of CloudFront transfer at $6,965 pay as you go, or from $1,000 on the flat-rate Premium plan. A per-TB CDN with no request line can carry the video segments, installers and game patches while CloudFront keeps the API and dynamic paths.

As of October 2026, BlazingCDN bills delivery from $5 per TB down to $2.50 per TB at volume, with one rate for US, Europe and Asia and no request fees. At those rates, 100 TB costs $415 and 500 TB costs $1,815, and current rates are listed on the BlazingCDN pricing page. The BlazingCDN vs Amazon CloudFront cost comparison sets the same volumes side by side. It can run as a second CDN behind DNS with a weighted traffic split. It is a delivery layer only: it does not support HTTP/3 or WebSockets and does not sell a WAF, so your existing security stack stays in place.

FAQ: CloudFront request pricing and data transfer costs

Does CloudFront charge for requests served from cache?

Yes. CloudFront bills every viewer request that reaches an edge location, including cache hits, 304 revalidations and error responses. In the US and Europe that is $0.0100 per 10,000 HTTPS requests. A higher cache-hit ratio lowers origin transfer and origin load but never reduces the request fee. Only requests answered by the browser cache avoid it.

How much does a CloudFront invalidation cost?

Each AWS account gets 1,000 CloudFront invalidation paths per month at no charge, and each additional path costs $0.005. A wildcard path counts as one path no matter how many objects it clears. Pipelines that submit thousands of individual file paths a month pay hundreds of dollars. Content-hashed filenames remove the need for invalidations entirely.

Is data transfer from S3 to CloudFront free?

Yes. Transfer from S3, EC2 or Elastic Load Balancing origins into CloudFront is not charged. You still pay CloudFront's transfer out to viewers and its request fees. Origins outside AWS bill their own egress on every cache miss, so a low hit ratio in front of a third-party origin costs twice: once at the origin, once at CloudFront.

Are CloudFront HTTPS requests more expensive than HTTP requests?

Yes. In the US and Europe, CloudFront charges $0.0100 per 10,000 HTTPS requests versus $0.0075 per 10,000 HTTP requests, a 33% premium. Other regions charge more for both. Because nearly all production traffic is now HTTPS, budget at the HTTPS rate and reduce request volume rather than expecting savings from protocol choice.

Does the CloudFront free tier cover request fees?

Partly. The CloudFront always-free allowance includes 10 million HTTP or HTTPS requests and 1 TB of transfer out per month per account. That is worth roughly $95 a month at US and Europe rates. A request-heavy workload serving billions of requests barely notices it, so model costs as if the free allowance did not exist.

Price your CloudFront request and transfer mix this week

Export last month's Cost and Usage Report for CloudFront and group it by usage type. Divide total cost by delivered GB to get your blended rate. Then divide delivered bytes by request count to get your average object size. If the result is under 12 KB, request fees are your main cost and client-side caching is the first fix. If you deliver more than 50 TB of large static files, separate that traffic and price it on its own, because transfer tiers and not requests decide that line.

For the heavy-file share, the BlazingCDN CDN cost calculator prices the same monthly terabytes on progressive tiers from $5 per TB, with no request fees to model.

Heavy traffic.
Light bill.

The CDN for video and large traffic