Learn
Lossy vs Lossless Compression: Images, Video and Audio
Lossy vs lossless compression comes down to one trade: lossless compression rebuilds every original bit and typically ...
The CloudFront vs S3 decision depends more on object size than on traffic volume. At a 500 KB average response, 100 TB a month costs roughly $7,163 through Amazon CloudFront pay-as-you-go and $7,871 served directly from an Amazon S3 bucket in us-east-1, but the ranking flips when average responses fall below about 120 KB. This article covers the billing lines on each path, worked costs at 1, 10 and 100 TB, a break-even rule you can apply to your own logs, origin access control setup, and a best-fit matrix by workload.
Amazon CloudFront does not charge for fetching objects from an S3 origin, and its US and Europe delivery rate starts at $0.085 per GB, against $0.09 per GB for S3 internet egress (CloudFront published price lists checked August 2026, S3 us-east-1 list prices as of 2025). CloudFront's HTTPS request fee of $0.01 per 10,000 is 2.5 times S3's $0.004 per 10,000 GET requests, so serving from S3 directly is cheaper per GB whenever the average response is smaller than about 120 KB.
Evaluated October 2026. Storage is excluded from every comparison below because it is identical on both paths: 5 TB in S3 Standard costs about $115 a month at $0.023 per GB.
AWS bills four components when S3 sits behind CloudFront: S3 storage, S3 requests, CloudFront delivery and CloudFront requests. When you serve from S3 directly, CloudFront drops out and S3 egress replaces it.
With 500 KB average responses and a 90 percent cache hit ratio, CloudFront pay-as-you-go costs about $0 at 1 TB, $776 at 10 TB and $7,163 at 100 TB. S3 direct costs $82, $899 and $7,871 for the same traffic. The CloudFront allowance decides the 1 TB case, and per-GB rates decide the rest.
Assumptions: decimal terabytes, US and Europe viewers, HTTPS only, 2 million requests per TB, and 10 percent of CloudFront requests reaching S3. Flat-rate plan figures come from published price lists, checked August 2026.
| Line item (estimate) | 1 TB | 10 TB | 100 TB |
|---|---|---|---|
| S3 direct egress | $81 | $891 | $7,791 |
| S3 direct GET requests | $0.80 | $8 | $80 |
| S3 direct total | $81.80 | $899 | $7,871 |
| CloudFront transfer, pay-as-you-go | $0 | $765 | $6,965 |
| CloudFront HTTPS requests | $0 | $10 | $190 |
| S3 GETs on cache misses | $0.08 | $0.80 | $8 |
| CloudFront pay-as-you-go total | about $0 | $775.80 | $7,163 |
| CloudFront flat-rate plan | not needed | Business, $200 for 50 TB | Premium, from $1,000 |
At 500 KB responses, CloudFront pay-as-you-go undercuts S3 direct by about $82 at 1 TB, $123 at 10 TB and $708 at 100 TB, and the flat-rate plans widen that gap further.
CloudFront S3 cost exceeds S3 direct when the average response is below about 120 KB in the first two pricing tiers, or below about 60 KB once both services reach their 50 to 150 TB tiers. Below those sizes, CloudFront's higher per-request fee outweighs its lower per-GB rate.
Here is the arithmetic. In the first tier, CloudFront saves $0.005 per GB on egress but charges $0.0000006 more per request ($0.000001 against $0.0000004). The saving and the extra charge break even at 8,333 requests per GB, which is 120 KB per response. Between 50 and 150 TB, the egress gap doubles to $0.01, so the break-even response size halves to 60 KB. Cache-miss GETs move the break-even point by only a few KB. Small thumbnails, JSON manifests and sprite fragments with low reuse are the workloads where this matters.
At high volume, the realistic comparison is CloudFront against a volume CDN that pulls from the same bucket. A CDN outside AWS pays S3 egress on every cache miss: at a 95 percent hit ratio on 100 TB, that is 5 TB of misses, or about $441. The BlazingCDN vs Amazon CloudFront billing comparison sets out both models line by line.
As of October 2026, BlazingCDN prices delivery on progressive tiers from $5 per TB down to $2.50 per TB at volume, with one rate for the US, Europe and Asia and no request fees. At 100 TB a month that totals $415, against $6,965 for CloudFront pay-as-you-go transfer alone (published price lists, checked August 2026). Current rates are on the BlazingCDN pricing page.
Adding the S3 miss egress gives about $856 a month for BlazingCDN. The limits are real, though. BlazingCDN does not support HTTP/3 and sells no WAF or DDoS mitigation, so you keep your existing security stack. Below about 46 TB a month, published flat plans such as Amazon CloudFront Business ($200 for 50 TB) or Cloudflare Pro can cost less.
CloudFront bills by the edge location that serves the viewer. Outside the US and Europe, first-tier rates rise to roughly $0.11 to $0.12 per GB in Asia-Pacific, South America, India, the Middle East and Africa (approximate list prices). S3 egress is priced by the bucket's region, not the viewer's, so an us-east-1 bucket serving viewers in Brazil still pays $0.09 per GB.
For latency-tolerant bulk downloads aimed at those regions, S3 direct can be cheaper per GB. Price Class 100 limits serving to edges in North America, Europe and Israel. It caps the rate at US and Europe levels, but distant viewers pay for it in round-trip time.
S3 terminates every TLS handshake in the bucket's region. A viewer in Singapore reaching us-east-1 typically sees round trips of 200 to 250 ms. A cold TLS 1.3 connection plus the first request therefore takes three round trips, roughly 0.6 to 0.75 seconds, before any payload arrives. CloudFront terminates TLS at the edge, speaks HTTP/2 and HTTP/3 to viewers, and keeps warm connections to the origin.
Origin load matters too. AWS documents a per-prefix ceiling of 5,500 GET or HEAD requests per second, above which clients receive 503 Slow Down errors. A 90 percent hit ratio cuts the origin request rate tenfold. S3 also cannot serve HTTPS on your own domain: the website endpoint is HTTP only, and the REST endpoint presents an amazonaws.com certificate.
Origin access control replaced the legacy origin access identity in 2022. It signs origin requests with SigV4, supports SSE-KMS, and works in all regions. Set it up in this order:
To verify, request an object by its S3 URL and expect 403 AccessDenied, then request it through the distribution and expect 200 with an X-Cache value of Hit from cloudfront on the repeat request. Without s3:ListBucket, missing keys return 403 instead of 404. To roll back from a failed OAI migration, keep both policy statements until the distribution reports Deployed, then delete the OAI statement.
Serving from S3 directly is fine when consumers sit inside AWS, when downloads are private and rarely repeated, or when average responses fall below the 120 KB break-even and latency is not critical. In-region EC2 or Lambda reads from S3 incur no transfer charge, and a VPC gateway endpoint keeps that traffic off NAT gateways.
| Workload | Best fit | Deciding factor |
|---|---|---|
| Static sites and app bundles | CloudFront | Custom-domain HTTPS, high reuse, often within the 1 TB allowance |
| Video segments (HLS, DASH) | CloudFront, or a volume CDN above 100 TB | Multi-MB segments sit far above the break-even size |
| Installers and game patches | CloudFront at low volume, a volume CDN at scale | Release-day spikes and per-GB cost |
| User-generated media with a long tail | Measure first | Low hit ratios add miss GETs to the request fees |
| Small, rarely reused objects under 120 KB | S3 direct or a CloudFront flat-rate plan | Request fees dominate pay-as-you-go |
| In-region compute, pipelines, private APIs | S3 direct with a VPC endpoint | Zero transfer charge inside the region |
Response size and reuse decide the path more reliably than total traffic volume.
Also budget for invalidations past the monthly allowance and for replication transfer. Then pull 90 days of Cost Explorer data grouped by usage type and compute your blended cost per delivered GB.
Usually, yes, for public delivery of objects larger than about 120 KB. CloudFront's US and Europe rate starts at $0.085 per GB against S3's $0.09, and origin fetches from S3 cost nothing. For small, rarely reused objects, CloudFront's $0.01 per 10,000 HTTPS request fee can make S3 direct cheaper per delivered GB.
No. AWS does not bill transfer from an S3 origin to CloudFront edge locations, whichever region the bucket is in. You still pay S3 GET request fees on every cache miss, plus CloudFront delivery and request charges to viewers. Origin Shield adds its own per-request fee, which you should weigh against the GETs it saves.
With 500 KB average responses, S3 direct costs about $899 and CloudFront pay-as-you-go about $776 at 10 TB, using 2025 S3 list rates and CloudFront prices checked August 2026. CloudFront's published Business flat-rate plan, at $200 for up to 50 TB, lowers the CloudFront figure further if its terms fit your workload.
No. Origin access control only works with the S3 REST endpoint, because S3 static website endpoints are treated as custom origins. To keep index-document behavior on a locked bucket, set a default root object in CloudFront and handle subdirectory index rewrites with a CloudFront Function that runs on viewer requests.
Serve from S3 directly for in-region AWS consumers, presigned one-off downloads, Requester Pays datasets and internal pipelines. Those paths either incur no transfer charge or gain nothing from edge caching. Public, repeatedly requested content benefits from CloudFront's lower per-GB rate, edge TLS termination and reduced origin request rate.
This week, export 30 days of CloudFront and S3 usage. Divide bytes downloaded by request count for each distribution or bucket to get the average response size, then compare it with the 120 KB and 60 KB break-even points above. Add your measured hit ratio and the regional mix of your viewers, and compute a blended cost per delivered GB for each path. If any distribution sits below the break-even size with low reuse, test S3 direct or a flat-rate plan for it. If the large-object distributions dominate the bill, price them as a separate line item.
For high-volume large files, the BlazingCDN CDN cost calculator prices the same monthly traffic on progressive tiers starting at $5 per TB, with no request fees.
Heavy traffic.
Light bill.
The CDN for video and large traffic
Learn
Lossy vs lossless compression comes down to one trade: lossless compression rebuilds every original bit and typically ...
Learn
For most on-demand video, capped variable bitrate (VBR) wins the cbr vs vbr decision: it spends bits where the picture ...