AWS S3 を CloudFront 対応にする

AWSでは、CDN(コンテンツ配信ネットワーク)機能を、CloudFrontで提供しています。既にS3で行っている静的ウェブホスティングをCloudFrontに対応させる方法を説明します。

AWSでは、SSL証明書を無料で新規作成、更新することができますので、CloudFrontを利用して、サイト全体をSSL化したいのであれば、先に以下より取得してから、CloudFrontの設定を行ってください。

AWS Certificate Manager で、SSL証明書を取得する

1.CloudFrontを選ぶ

AWSにログインして、コンソールから「CloudFront」を選びます。

AWSコンソール


2.Create Destributionを選ぶ

「Create Destribution」ボタンをクリックします。

CloudFront Create Destribution


3.Webディストリビューションを作成します

2種類のディストリビューションより、「Web」の「Get Started」ボタンをクリックします。

select web destribution


4.「Origin」を設定する

オリジン(コピー元となるサイト)は、S3になります。したがって、「Origin Domain Name」に、S3のエンドポイントを入力します。

入力項目でクリックをすると候補リストが出てきますが、そこから選ばず、別ウィンドウなどで「S3コンソール > 該当バケット選択 > プロパティ > 静的ウェブサイトホスティング」を開き、表示されるエンドポイントを正確にコピーして、「Origin Domain Name」にペーストしてください。

入力例:www.aws-book.com.s3-website-ap-northeast-1.amazonaws.com

Orgin Settings before

入力後、次の項目「Origin Path」をクリックすると、その下の「Origin ID」が自動的に追加され、次のように入力項目が増えます。

「Origin Settings」では、これ以上の設定を行わず、下へスクロールして先に進みます。

Orgin Settings after


5.「Default Cache Behavior」を設定する

キャッシュに関する設定は、デフォルトのままでも結構ですが、ここでは、httpのリクエストを全てhttpsにリダイレクトするために、「Viewer Protocol Policy」にて「Redirect HTTP to HTTPS」を選んでいます。(この設定変更は必須ではありません。サイト全体をSSL化するときに有効です。)

Cache Behavior Settings


6.「Distribution」を設定する

ディストリビューション(配信)に関する設定を行い、最後に一番下にある「Create Destribution」ボタンをクリックします。

配信するネットワークを限定する

「Price Class」は、デフォルトでは「Use All Edge Locations (Best Performance)」が選択されていますが、サイト訪問者が日本中心であれば、CDNで配信するネットワークを限定することができ、料金もより安くなります。用途に応じて変更してください。ここでは「Use Only US, Europe and Asia」を選択しています。

ドメイン名を入力する

「Alternate Domain Names(CNAMEs)」には、サイトのドメイン名を入力します。

入力例:www.aws-book.com

SSL証明書を指定する

「SSL Certificate」では、httpsで使用されるSSL証明書を指定できます。ここでは、AWS Certificate Manager で作成した独自ドメインのSSL証明書を設定するために、「Custom SSL Certificate」を選び、下に表示されるリストより「www.aws-book.com」を指定します。

httpsを使用しないであればデフォルトのままで構いません。

Destribution Settings


7.ステータスを確認する

以下のような画面に移動し、「Status」が「In Progress」(作成中)となります。

「Deployed」に変われれば完了となりますが、処理が終わるまでに結構時間がかかります。

distribution in progress


8.CloudFrontのドメイン名を確認する

前の画面より、WebディストリビューションのIDをクリックすると、次のような画面が表示されます。(ステータスが、まだ「In Progress」でも表示することができます)

「Domain Name」に、「[ID].cloudfront.net」と表示され、このドメインにアクセスすると、CloudFrontを経由して、オリジン(サイト)へアクセスできるようになり、必要に応じて、キャッシュが行われるようになります。

Edit General

CloudFrontの設定は、これで完了ですが、独自ドメインで利用する場合には、DNSレコードに、この「CloudFrontのドメイン名」をCNAMEで指定してください。


このエントリーをはてなブックマークに追加