CloudFrontでS3のコンテンツを配信する
前回、CloudFrontを使ってELBをOriginとした配信を試しましたが、今日はS3バケットから静的コンテンツ(画像)を配信してみましょう。
S3にアップロードしている猫は、広島市内の黄金山で撮ったものです。
写真が趣味で、Flickrに9年分をアーカイブしています。今も継続していて更新中なので興味があればぜひ。
構成図
S3のOriginとして、S3バケットを指定します。S3バケット内のコンテンツは直接公開されるのではなく、CloudFront経由で配信されます。
oshimo1108というS3バケットを作成してあり、画像のファイル名でコンテンツが保存されている状態です。パブリックアクセスは許可していません。
ディストリビューションを作成する
CloudFrontのダッシュボードを開き、Create Distributionをクリックします。
Origin Domain NameにS3のバケットを指定
Default Root Objectにindex.htmlを指定
してCreateをクリックします
Originの設定を行う
Originの設定で、以下のように設定します。
Origin Access Idenrify: Create a New Identify
Grant Read Permissions on Bucket: Yes, Update Bucket Policy
ディストリビューションがDeployされるのを待つ
CloudFrontのディストリビューション一覧の画面に戻ったら、StatusがDeployedになるのを待ちましょう。10分程度かかりました。
以下のようなテキストファイルをindex.htmlという名前で作成し、画像と同じ場所にアップロードしておきます。
**********************
<html>
<body>
<img src=http://(ディストリビューションID).cloudfront.net/P9090473.jpg>
</body>
</html>
**********************
ブラウザで確認する
Default Root Objectにindex.htmlを指定しているので、以下の指定でindex.htmlが参照されて画像が表示されるはずです。