
AWS S3 vs CloudFront: Speed and Cost Comparison (with Real Test Results)
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.

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

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

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

- Average calculated from 5 consecutive test runs
- Cache MISS tests performed using versioned query strings (?v=1, v=2)
Discover how to optimize your images using Weekerp Image
An image CDN that seamlessly connects to your cloud
Get Started