weekerp blog logo
AWS S3 vs CloudFront: Speed and Cost Comparison (with Real Test Results) Post Thumbnail

AWS S3 vs CloudFront: Speed and Cost Comparison (with Real Test Results)

How much slower is direct image delivery from S3 compared to a CDN? This article compares AWS CloudFront and S3 in real speed and cost tests, showing when adopting a CDN becomes more efficient.

Q1. What are AWS S3 and CloudFront?
S3 is a storage service for large files such as images and videos, while CloudFront is AWS’s CDN (Content Delivery Network) that delivers content quickly through edge servers close to users.


Q2. Can S3 alone serve images or static files?
Yes, it can. However, since S3 exists in specific regions only, users in other countries may experience responses that are 10–20 times slower on average.


Q3. How different is the transfer speed between AWS S3 and CloudFront?
Within the same region, CloudFront is about 2–3× faster than S3. Across regions, the difference grows much larger—on average over 15× faster, and up to 20× faster for small files.


Q4. How do S3 and CloudFront differ in pricing?
CloudFront typically operates 5–15% cheaper than S3 for the same data transfer volume.


Q5. What’s the most efficient setup for image-heavy services?
Use S3 as the origin storage and deliver through CloudFront caching. Adding automatic image format conversion (WebP, AVIF) further optimizes both performance and cost.


Q6. When should a CDN be introduced?
For image-heavy services, apply CDN when monthly data transfer exceeds 100 GB. For video or document-based services (like PDFs), using a CDN from the start is recommended.


What Is AWS CloudFront?

Have you heard of a CDN before? A Content Delivery Network (CDN) delivers large files like images and videos from servers that are physically closer to the user, allowing much faster response times. CloudFront is the name of AWS’s CDN service that provides this global delivery capability.

In contrast, S3 (Simple Storage Service) works more like Google Drive — it’s a storage solution for large files that are difficult to keep directly on a web server, such as user-generated images or videos.


S3 Is Not Designed for Content Delivery

S3 is an object storage service built for storing data — not for transferring it efficiently.

While AWS allows files to be uploaded and downloaded over the internet, this feature is mainly intended to provide access paths, not optimized delivery. Still, many services without a CDN set their S3 buckets to Public Access and directly serve images or videos from there.

This method is often used by early-stage startups because it allows them to implement core features quickly without additional CDN configuration.


So then —

  • How much slower is S3 when delivering images directly compared to a CDN?

  • And at what point does adopting a CDN become the more efficient choice?


Stored Test Data

Test Environment
Detailed setup information is provided at the end of this article.


Test Data Stored in S3
Test Data Stored in S3


Stored Test Data
All test files were hosted on Standard S3 (US-East-1, N. Virginia).


Request Environments

  • US instance: N. Virginia (Cloud9, AWS us-east-1)

  • KR instance: Seoul (Cloud9, AWS ap-northeast-2)



Speed Comparison Within the Same Region (US ↔ US)

When called from a US instance, the response times for S3 and CloudFront were as follows. (Original data and full test setup are listed at the end of this article.)


File S3 CDN - Cache Miss CDN - Cache Hit
dog.jpg (0.3 MB) 48.526 ms 69.573 ms 23.640 ms
test-image (1.9 MB) 90.697 ms 111.911 ms 21.760 ms
test-video (40.2 MB) 551.142 ms 865.960 ms 364.774 ms

Even within the same region, CloudFront provided faster and more stable performance than S3. The gap becomes much larger when requests are made from other regions.


What is a Cache Miss?
A cache miss occurs the first time CloudFront fetches a file from the origin (like S3) and stores it internally for future requests.

What is a Cache Hit?
A cache hit occurs when CloudFront serves the file directly from its cached copy at the edge — resulting in much faster delivery.


Speed Comparison Across Regions (US ↔ Seoul)

When tested from the Seoul instance, the response times for S3 and CloudFront were as follows:


File S3 CDN - Cache Miss CDN - Cache Hit
dog.jpg (0.3 MB) 1299.255 ms 1228.085 ms 107.917 ms
test-image (1.9 MB) 90.697 ms 111.911 ms 119.212 ms
test-video (40.2 MB) 551.142 ms 865.960 ms 237.627 ms

As file size increases, S3 requires several seconds to respond —
a delay that, as discussed in Weekerp’s article on LCP (Largest Contentful Paint), can directly lead to user drop-off.

In summary:

Global Latency of S3 Responses

📊 KO Instance (Seoul)

When images and videos were requested from Seoul to an S3 bucket located in N. Virginia, the following results were observed:


File S3 CDN - Cache Hit Speed Gain
dog.jpg (0.3 MB) 1299.255 ms 107.917 ms ≈ 12× faster
test-image (1.9 MB) 90.697 ms 119.212 ms ≈ 15× faster
test-video (40.2 MB) 551.142 ms 237.627 ms ≈ 17× faster

Therefore, using a CDN not only improves performance for users in the same country but also provides a far better experience for users worldwide.


Cost Comparison (S3 vs CloudFront)

If you’re currently serving images directly from S3, when does it become cheaper to switch to CloudFront?

Both S3 and CloudFront have region-based pricing. The US (N. Virginia) region is the lowest, while Japan and Korea are roughly 20–30% more expensive.



S3 ($/GB) Cloudfront ($/GB)
US (Virginia) 0.09 0.085
Japan (Tokyo) 0.126 0.114
Korea (Seoul) 0.114 0.120

Both services offer lower per-GB rates as usage increases, so for small-scale projects, the difference might feel minimal.
However, CloudFront is generally slightly cheaper and far more efficient for global delivery, making it a strong long-term choice.


That said, pricing alone isn’t the most important factor — free tiers and management efficiency also matter.

  • S3: 100 GB free per month

  • CloudFront: 1 TB free per month


CloudFront can be more complex to configure (cache policies, logging, billing setup), but once traffic exceeds 100 GB/month or involves global delivery, adopting a CDN becomes the most rational way to gain both performance and operational efficiency


CDN Adoption Threshold — When to Switch from S3 to a CDN


Weekerp Image usage chart — daily traffic trends and global request distribution based on image requests, bandwidth (GB), and image transformations (in order: South Korea, Japan, United States).
Weekerp Image usage chart — daily traffic trends and global request distribution based on image requests, bandwidth (GB), and image transformations (in order: South Korea, Japan, United States).


When handling videos or files such as PDFs, applying a CDN early is cost-effective regardless of the number of users. For image-heavy services like e-commerce or platforms, it’s generally efficient to introduce a CDN when the service reaches around 700–1000 monthly active users (MAU).

This estimate is based on the Weekerp Image dashboard, assuming an average data usage of 3–5 MB per user per month.


Monitor CDN Usage with Weekerp Image

Weekerp dashboard provided with the CDN
Weekerp dashboard provided with the CDN


The MAU-based usage data above was derived from the Weekerp Image dashboard.
Weekerp provides a fully managed CDN designed for a seamless and optimized user experience.

It allows you to track usage in real time by the hour and visualize request distribution by country at a glance.
You can also connect your existing external storage (like S3) and use it directly within the AWS CloudFront CDN environment—without any data migration.


Test Environment

Test Data

Request Environments

  • (US instance) N. Virginia (Cloud9, AWS US-EAST-1)

  • (KO instance) Seoul (Cloud9, AWS ap-northeast-2)

Data Storage Environment

  • Bucket location: Standard S3 (US-East-1, N. Virginia)

Test Files

  • dog.jpg / 294.4 KB

  • test-image.jpg / 1.9 MB

  • test-video.mp4 / 40.2 MB

Test Command

$ curl -o /dev/null -s -w "\n\n== %{url_effective} ==\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://weekerp-speed-test.s3.us-east-1.amazonaws.com/dog.jpg"

Detailed Metrics

  • DNS: 0.032748s

  • Connect: 0.033570s

  • TTFB: 0.100455s

  • Total: 0.102714s (Note: “Total” indicates the time the last byte was received, not the sum of the above)

Test Method

curl test method
curl test method


  • Average calculated from 5 consecutive test runs
  • Cache MISS tests performed using versioned query strings (?v=1, v=2)
# AWS# AWS S3# AWS Cloudfront# S3# Cloudfront# AWS S3 vs CloudFront# CDN speed comparison# S3 direct image delivery# CloudFront pricing vs S3 pricing# When to use CDN for images

Discover how to optimize your images using Weekerp Image

An image CDN that seamlessly connects to your cloud

Get Started
M.J. Kang's profile image
M.J. Kang

I help IT startups achieve sustainable growth. My goal is to give more companies the gift of time — and I’ll keep sharing insights that can truly help you along the way.