S3 に置いたコンテンツをインターネットに公開する際に https 化や キャッシュ保持、WEBサーバ ( API Gateway など )とのURL共有 を考えると 自然と候補に上がるサービスは CloudFront です
S3 に置いたコンテンツを CloudFront を利用して インターネットに公開する際には 2つの方法があります
( A ) CloudFront のオリジンに Amazon S3 バケットを使用する方法
( B ) CloudFront のオリジンに Amazon S3 バケットの静的ウェブサイトホスティングエンドポイントを使用する方法
両者を構成する際の相違点を分かり易く整理してみることにしました
以下は本ブログに記載する内容です
①比較: ( A ) と ( B ) の比較
②手順: ( A ) と ( B ) についての具体的な作成手順
①比較:( A ) と ( B ) の比較
通信
( A ) CloudFront のオリジンに Amazon S3 バケットを使用する方法
参考:
CloudFront と Amazon S3 オリジンとの間の通信で HTTPS を必須にする
オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する
( B ) CloudFront のオリジンに Amazon S3 バケットの静的ウェブサイトホスティングエンドポイントを使用する方法
参考:
Amazon S3 でホストされている静的ウェブサイトを提供するために CloudFront をどのように使用したらよいですか ?
機能
A | B | 機能 |
---|---|---|
◯ | ◯ | S3 バケットへのアクセスを CloudFront ディストリビューションからのみに制限 |
✕ | ◯ | ウェブページリダイレクト ※但しリダイレクトルールは動きません (静的WEBサイトホスティングの機能) |
✕ | ◯ | カスタムエラードキュメントの設定 (静的WEBサイトホスティングの機能) |
◯ | ✕ | CloudFront ディストリビューションから オリジン(S3)への通信 ※ を https にする ※インターネットを経由する通信 |
( A ) と ( B ) の比較まとめ
1.S3 に置いたコンテンツに CloudFront から ( インターネット経由で ) HTTP 通信することを許容できない場合は ( A ) を選ぶしかありません
2.1の制約は無く「ウェブページリダイレクト」や「カスタムエラードキュメントの設定」といった静的WEBサイトホスティングの機能を利用しようと考える場合には ( B ) を選ぶと良さそうです
②手順: ( A ) と ( B ) についての具体的な作成手順 (別ブログに切り出しました)
お手数ですが以下をご参照ください
S3 に置いたコンテンツを CloudFront を利用 してインターネットに公開する方法まとめ ( A )CloudFront のオリジンに Amazon S3 バケットを使用する方法
以上