
AWS S3とCloudFront(CDN)の速度と料金を徹底比較
Q1. AWS S3とCloudFrontとは何ですか?
S3は、画像や動画などの大容量ファイルを保存するためのストレージサービスです。
一方、CloudFrontはAWSが提供するCDN(Content Delivery Network)で、ユーザーに近いエッジサーバーからコンテンツを高速に配信するサービスです。
Q2. S3だけで画像や静的ファイルを配信できますか?
はい、可能です。
しかし、S3は特定のリージョンにしか存在しないため、他の国のユーザーがアクセスする場合、平均で10〜20倍遅くなることがあります。
Q3. AWS S3とCloudFrontの転送速度の違いはどのくらいですか?
同じリージョン内では、CloudFrontはS3より約2〜3倍高速です。
一方、異なる国・地域間では差がさらに大きくなり、平均で15倍以上、小さいファイルでは最大20倍も速い結果が確認されています。
Q4. S3とCloudFrontの料金体系はどう違いますか?
同じデータ転送量で比較した場合、CloudFrontの方がS3よりおおよそ5〜15%安く運用できます。
Q5. 画像が多いサービスではどの構成が効率的ですか?
S3をオリジンストレージとして使用し、CloudFrontでキャッシュ配信する構成が最も効率的です。
さらにWebPやAVIFなどの自動フォーマット変換を組み合わせることで、パフォーマンスとコストの両方を最適化できます。
Q6. CDNはいつ導入すべきですか?
画像を多く扱うサービスでは、月間データ転送量が100GBを超えた時点がCDN導入の目安です。
また、動画やPDFのようなファイルを扱う場合は、初期段階からCDNを利用することが推奨されます。
AWS CloudFrontとは?
CDN(Content Delivery Network)という言葉を聞いたことがありますか?
CDNは、画像や動画などの大きなファイルをユーザーに物理的に近いサーバーから配信し、応答速度を大幅に向上させる仕組みです。
CloudFrontは、このCDN機能を提供するAWSのサービスで、世界中に分散したエッジサーバーを通じてコンテンツを効率的に届けます。
一方、**S3(Simple Storage Service)**はGoogleドライブのようなストレージサービスで、ユーザー生成コンテンツ(UGC)や動画など、ウェブサーバーに直接保存するには大きすぎるファイルを保管するために使われます。
S3はコンテンツ配信向けに設計されていません
S3はデータを保存するためのオブジェクトストレージサービスであり、高速な配信を目的としたものではありません。
AWSはインターネット経由でファイルのアップロードやダウンロードを可能にしていますが、これはあくまで「アクセス経路」を提供するための機能であり、最適化された配信構造ではありません。
それでも、多くのサービスがCDNを利用せず、S3バケットのアクセス設定を**Public Access(公開)**にして画像や動画を直接配信しています。
この方法は、追加のCDN設定をせずに主要機能を素早く実装できるという利点があるため、スタートアップの初期開発段階でよく採用されます。
では、
-
S3で画像を直接配信すると、CDNと比べてどれくらい遅くなるのでしょうか?
-
また、どのタイミングでCDNを導入するのが効率的なのでしょうか?
テストデータの保存環境
テストで使用したファイルは、すべて**Standard S3(US-East-1、バージニア北部)**に保存しました。

リクエスト環境
-
USインスタンス: バージニア北部(Cloud9、AWS US-EAST-1)
-
KOインスタンス: ソウル(Cloud9、AWS ap-northeast-2)
このテスト環境の詳細は、記事の最後に記載しています。
同一リージョン(US ↔ US)での速度比較
USインスタンスからS3およびCloudFrontにリクエストを送信した際の応答時間は以下の通りです。(オリジナルデータおよび詳細なテスト環境は記事の末尾に記載しています。)
| 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 |
同じリージョン内でも、CloudFrontはS3よりも高速かつ安定した結果を示しました。
異なるリージョン間では、この差がさらに大きくなります。
Cache-Missとは?
CloudFrontがオリジン(S3など)からファイルを初めて取得し、内部に保存する際の状態を指します。Cache-Hitとは?
CloudFrontがエッジサーバーにキャッシュされたファイルを直接配信する状態で、最も高速な応答を実現します。
異なるリージョン(US ↔ ソウル)での速度比較
ソウルインスタンスからS3およびCloudFrontにリクエストを送信した際の応答時間は以下の通りです。
| 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 |
ファイルサイズが大きくなるほど、S3では応答に数秒単位の時間がかかることが確認されました。これは、Weekerpの**LCP(Largest Contentful Paint)**に関する記事でも述べたように、ユーザー離脱を引き起こす要因となります。
まとめると、次のようになります。
グローバル環境におけるS3の応答遅延
📊 KOインスタンス(ソウル)
ソウルからバージニア北部リージョンのS3バケットへ画像や動画をリクエストした結果は以下の通りです。
| File | S3 | CDN - Cache Hit | Speed Gain |
|---|---|---|---|
| dog.jpg (0.3 MB) | 1299.255 ms | 107.917 ms | 約12倍高速 |
| test-image (1.9 MB) | 90.697 ms | 119.212 ms | 約15倍高速 |
| test-video (40.2 MB) | 551.142 ms | 237.627 ms | 約17倍高速 |
この結果から、CDNを利用することで国内だけでなく、海外ユーザーにもより良い体験を提供できることが分かります。
コスト比較(S3 vs CloudFront)
現在S3から直接画像を配信している場合、どのタイミングでCloudFrontに切り替えるとコストメリットが出るのでしょうか?
S3とCloudFrontはいずれもリージョンごとに料金が異なり、最も安いのは米国バージニア北部です。一方、日本や韓国ではおよそ20〜30%高い料金が設定されています。
| リージョン | S3 ($/GB) | Cloudfront ($/GB) |
|---|---|---|
| 米国(バージニア) | 0.09 | 0.085 |
| 日本(東京) | 0.126 | 0.114 |
| 韓国(ソウル) | 0.114 | 0.120 |
どちらのサービスも使用量が増えるほど単価が下がるため、小規模なプロジェクトでは大きな差を感じにくいかもしれません。
しかし、CloudFrontはやや安価でグローバル配信効率が高いため、長期的にはより有利な選択肢となります。
ただし、料金だけでなく無料枠と管理効率も重要な要素です。
-
S3: 月100GBまで無料
-
CloudFront: 月1TBまで無料
CloudFrontはキャッシュポリシー、ログ分析、課金設定などやや複雑な構成を要しますが、月間トラフィックが100GBを超える、または海外配信が必要になる段階では、
CDNを導入してパフォーマンスと運用効率の両方を最適化するのが最も合理的です。
CDN導入の判断基準 ― S3からCDNへ切り替えるタイミング

動画やPDFのようなファイルを扱う場合は、ユーザー数に関係なく早い段階でCDNを導入する方がコスト面で有利です。
一方で、画像を多く扱うECサイトやプラットフォーム型サービスでは、
おおよそ月間アクティブユーザー(MAU)が700〜1000人に達した時点がCDN導入の目安となります。
この数値は、Weekerp Imageダッシュボードのデータを基に、
1ユーザーあたり月3〜5MBの画像データ利用量を仮定して算出しています。
Weekerp ImageでCDNの使用状況をモニタリング

上記のMAUベースの使用量データは、Weekerp Imageダッシュボードを基にしています。
Weekerpは、ユーザー体験を最適化するために設計されたフルマネージド型CDNを提供しています。
時間単位で使用量を詳細にトラッキングでき、
国別のリクエスト分布を可視化して一目で確認することが可能です。
また、既存の外部ストレージ(S3など)をそのまま接続し、データ移行なしでAWS CloudFront CDN環境に直接統合できます。
テスト環境
テストデータ
リクエスト環境
-
(USインスタンス)バージニア北部(Cloud9、AWS US-EAST-1)
-
(KOインスタンス)ソウル(Cloud9、AWS ap-northeast-2)
データ保存環境
- バケットの場所:Standard S3(US-East-1、バージニア北部)
テストファイル
-
dog.jpg / 294.4 KB
-
test-image.jpg / 1.9 MB
-
test-video.mp4 / 40.2 MB
テストコマンド
$ 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"
詳細メトリクス
-
DNS: 0.032748s
-
Connect: 0.033570s
-
TTFB: 0.100455s
-
Total: 0.102714s(Totalは上記の合計ではなく、最終バイト受信までの時間を示す)
テスト方法

-
各AWS Cloud9リージョンでcurlを実行したテスト環境のキャプチャ
-
5回連続でテストを実施し平均値を採用
-
キャッシュMISSテストでは、クエリストリング「?v=1」「v=2」を使用してキャッシュを分離
