Posted at

CloudFront経由でS3からコンテンツ配信をする

More than 3 years have passed since last update.


S3バケットの作成

コンテンツ配信用にS3のバケットを作成します。


CloudFrontの設定

AWSのコンソールから、CloudFrontを選択する。

「CreateDistribution」を押下し、「Web」のGet Startedを選択します。

HTTPやHTTPSで表示する通常のコンテンツ配信には、「Web」を選択します。

Distributionの設定

OriginSettingsでオリジンサーバの設定を行います。

①OriginSettingsのOriginDomainNameから、作成したコンテンツ配信用のS3のバケット名を選択します。

 →自動でoriginIDが挿入されます。

②RestrictBucketAccessの「Yes」を選択

 →S3バケットのコンテンツへのアクセスをCloudFrontからのみに制限する場合は「Yes」を選択します。

オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する場合

①OriginAccessIdentityの「Create a New Identity」を選択します。

 ・使用するオリジンアクセスアイデンティティがすでにある場合

  (1)「Use an Existing Identity」 を選択する。

  (2)「Your Identities」 リストでアイデンティティを選択します。

 ・オリジンアクセスアイデンティティがなく、作成する場合

  (1)「Create a New Identity」を選択します。

  (2)作成するアイデンティティの説明を 「Comment」 フィールドに入力します。

②「Origin Domain Name」に指定された S3バケット内のオブジェクトの読み取り許可を、CloudFront でオリジンアクセスアイデンティティに自動的に与える場合は、「Yes, Update Bucket Policy」 を選択する。

(オリジンアクセスアイデンティティに関しては、下記参考URLを参照ください。)

DefaultCacheBehavarSettingsdeで、キャッシュの設定を行います。

①どういったリクエストに対し、キャッシュを有効にするかの設定を行います。

→基本デフォルトのままでよいです。

DistributionSettingsで、Distributionの設定

①AlternateDomainNamesに設定するドメイン名を入力します。

ログの設定が不要な場合は、②~⑤の手順は必要ありません。

②Logging・・・ログを取得するかの選択をします。

③Backet for Logsからバケットを選択

→ログを配置するS3のバケットを選択します。

④Log Prefixからログを配置するファイルを選択します。

⑤Cookie Logging・・・ログにCookieも記録するか選択します。

設定後、「CreateDistribution」を押下します。

Distributionの作成が開始されます。

作成したDistibutionsがdeployedになる処理が15分ほどかかります。


Route53の設定

Route53 にCloudFrontのエンドポイントを設定することで、独自のドメインでCloudFrontを利用ができます。

①Hosted zonesで対象のDomain nameを選択します。

②Create Record Setを選択します。

 Name・・・CloudFront構築時に指定したドメイン名を入力します。

 Type・・・CNAME-Canonical nameを選択します。

 Volume・・・作成したCloudFrontのGeneralタブのDomain Nameを記載します。


配信URL

http://{Route53で登録したドメイン名}/{S3のパス}



S3バケットに配信ファイル用のフォルダを作成し、ドロップ&ドラックで配置します。

作成したフォルダからCloudFront経由でファイルを配信します。

無題.png

参考URL