【AWS】S3 + CloudFrontで高速な画像配信CDNを構築する手順
AWSのS3とCloudFrontを組み合わせて、セキュアで高速な画像配信システムを構築する手順を解説します。
はじめに
この記事では、以下の構成を実現します:
- S3バケット:画像ファイルの保存先(プライベート設定)
- CloudFront:CDN経由での画像配信
- OAC(Origin Access Control):S3への安全なアクセス制御
1. S3バケットの作成
1-1. バケットの新規作成
AWSマネジメントコンソールからAmazon S3を選択し、画像等の配信ファイルを保存するバケットを作成します。
1-2. セキュリティ設定
重要:「パブリックアクセスをすべてブロック」にチェックを入れて、プライベートな状態で作成します。
これにより、S3への直接アクセスを防ぎ、CloudFront経由でのみアクセス可能な構成になります。
2. CloudFrontディストリビューションの構築
2-1. ディストリビューションの作成開始
CloudFrontコンソールのハンバーガーメニューから「ディストリビューション」→「ディストリビューションを作成」を選択します。
2-2. ステップ1:基本設定
任意のディストリビューション名を入力して「Next」をクリックします。
2-3. ステップ2:オリジンの設定
Origin typeで「Amazon S3」を選択し、「Browse S3」ボタンをクリックします。
S3バケット一覧から、先ほど作成した配信用バケットを選択します。
バケットのURLが自動入力されたら「Next」をクリックします。
2-4. ステップ3:セキュリティ設定(WAF)
必要に応じてWAF(Web Application Firewall)を設定します。
基本的な画像配信であれば、「Do not enable security protections」でも問題ありません。
2-5. ステップ4:設定確認と作成
最後に設定内容を確認し、「Create distribution」をクリックして作成を実行します。
注意:ディストリビューションの作成には15〜20分程度かかります。
3. S3バケットポリシーの確認
3-1. 自動設定されたポリシーの確認
ディストリビューション作成が完了したら、S3バケットの「アクセス許可」タブから「バケットポリシー」を確認します。
3-2. ARNの照合
バケットポリシー内のAWS:SourceArnが、作成したディストリビューションのARNと一致していることを確認します。
このポリシーにより、CloudFront経由でのみS3バケットへのアクセスが許可されます。
4. 動作確認
4-1. テスト画像のアップロード
S3バケットに確認用の画像ファイルをアップロードします。
4-2. CloudFront経由でのアクセステスト
-
CloudFrontディストリビューションの詳細から「ディストリビューションドメイン名」をコピー
-
以下の形式でURLを構成:
https://[ディストリビューションドメイン名]/[画像ファイルパス]例:
https://d123456789.cloudfront.net/images/sample.jpg -
ブラウザでアクセスし、画像が表示されれば配信成功です
4-3. S3直接アクセスの確認(オプション)
S3のオブジェクトURLに直接アクセスして、「Access Denied」エラーが表示されることを確認します。
これにより、CloudFront経由でのみアクセス可能な設定が正しく機能していることが確認できます。
まとめ
以上で、S3 + CloudFrontによる画像配信CDNの構築が完了しました。
この構成により実現できること:
- ✅ 高速な画像配信(世界中のエッジロケーションから配信)
- ✅ セキュアなアクセス制御(S3への直接アクセスをブロック)
- ✅ 自動的なキャッシュ最適化(24時間のデフォルトキャッシュ)
- ✅ HTTPS対応(SSL/TLS暗号化通信)
追加の最適化や独自ドメインの設定などは、必要に応じて実施してください。








