メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

例: Amazon CloudFront でウェブサイトを高速化する

Amazon CloudFront を使用してウェブサイトのパフォーマンスを向上させることができます。CloudFront を使用すると、世界中のデータセンター(エッジロケーション)からお客様のウェブサイトのファイル(HTML、画像、動画など)を使用できます。閲覧者がウェブサイトからファイルをリクエストすると、CloudFront は自動的に最も近いエッジロケーションのファイルのコピーにリクエストをリダイレクトします。これにより、遠い場所にあるデータセンターからコンテンツをリクエストした場合よりもダウンロード時間が高速になります。

CloudFront は、お客様が指定した期間にわたってコンテンツをエッジロケーションにキャッシュします。閲覧者が有効期限より長くキャッシュされていたコンテンツをリクエストすると、CloudFront はオリジンサーバーをチェックしてより新しいバージョンのコンテンツがあるかどうかを確認します。新しいバージョンが利用可能である場合、CloudFront は新しいバージョンをエッジロケーションにコピーします。元のコンテンツへの変更は、閲覧者がコンテンツをリクエストすると、エッジロケーションにレプリケートされます。

ウェブサイトを高速化するには、CloudFront を使用して次のタスクを実行します。

CloudFront ディストリビューションを作成する

最初に、CloudFront ディストリビューションを作成します。これにより、ウェブサイトは世界中のデータセンターから利用できるようになります。

Amazon S3 オリジンを使用してディストリビューションを作成するには

  1. https://console.aws.amazon.com/cloudfront/ にある、CloudFront コンソールを開きます。

  2. [Create Distribution] を選択します。

  3. [Select a delivery method for your content] ページで、[Web] の [Get Started] を選択します。

  4. [Create Distribution] ページで、[Origin Settings] の [Origin Domain Name] セクションに、バケットの Amazon S3 静的ウェブサイトホスティングエンドポイントを入力します。たとえば、example.com.s3-website-us-east-1.amazonaws.com と指定します。

    注記

    バケットの名前ではなく、静的ウェブサイトホスティングエンドポイントを指定します。詳細については、「Amazon Simple Storage Service ウェブサイトエンドポイント」を参照してください。

    CloudFront により自動的に [Origin ID] が入力されます。

  5. [Default Cache Behavior Settings] の値はデフォルト設定のままにしておきます。これらの設定オプションの詳細については、『Amazon CloudFront 開発者ガイド』の「ウェブディストリビューションを作成または更新する場合に指定する値」を参照してください。

  6. [Distribution Settings] で、以下の作業を行います。

    1. [Price Class] は [Use All Edge Locations (Best Performance)] に設定されたままにしておきます。

    2. [代替ドメイン名 (CNAME)] をルートドメインと www サブドメインに設定します (このチュートリアルでは example.com および www.example.com)。これらの値は、指定したドメイン名を CloudFront ディストリビューションに接続する A レコードのエイリアスを作成する前に設定する必要があります。

    3. [Default Root Object] を [index.html] に設定します。これは、CloudFront ディストリビューションにアクセスするために使用される URL にファイル名が含まれていない場合にディストリビューションが返すデフォルトのページです。この値は、「バケットをウェブサイトホスティング用に設定」で設定したインデックスドキュメントの値と同じである必要があります。

    4. [Logging] を [On] に設定します。

    5. [Bucket for Logs] で、作成したログ記録バケットを選択します。

    6. CloudFront ディストリビューションへのトラフィックによって生成されたログが、ログバケット内の cdn という名前のフォルダに保存されるようするため、[Log Prefix] に「cdn/」と入力します。

    7. その他の設定はデフォルト値のままにしておきます。

  7. [Create Distribution] を選択します。

ディストリビューションのステータスを表示するには、コンソールでディストリビューションを見つけて、[Status] 列を確認します。[InProgress] のステータスは、ディストリビューションがまだ完全にデプロイされていないことを示します。

ディストリビューションがデプロイされたら、新しい CloudFront ドメイン名でコンテンツを参照できます。CloudFront コンソールに表示される [Domain Name] の値を書き留めます。これは次のステップで必要になります。この例では、値は dj4p1rv6mvubz.cloudfront.net です。

CloudFront ディストリビューションが正常に動作していることを確認するには、ウェブブラウザでディストリビューションのドメイン名を入力します。ディストリビューションが動作している場合、ウェブサイトが表示されます。

ドメインとサブドメインのレコードセットを更新する

これで CloudFront ディストリビューションを正常に作成したので、新しい CloudFront ディストリビューションを指すように Amazon Route 53 の A レコードを更新します。

CloudFront ディストリビューションを指すように A レコードを更新するには

  1. https://console.aws.amazon.com/route53/ にある Amazon Route 53 コンソールを開きます。

  2. [Hosted Zones] ページで、ドメイン用に作成したホストゾーンを選択します。

  3. [Go to Record Sets] を選択します。

  4. www サブドメイン用に作成した A レコードを選択します。

  5. [Alias Target] で CloudFront ディストリビューションを選択します。

  6. [Save Record Set] を選択します。

  7. ルートドメインの A レコードを CloudFront ディストリビューションにリダイレクトするには、この手順を繰り返します。

レコードセットの更新は、2 〜 48 時間以内に有効になります。新しい A レコードが有効になったかどうかを確認するには、ウェブブラウザに「http://www.example.com」と入力します。ブラウザが http://example.com にリダイレクトしなくなった場合、新しい A レコードは用意されています。

このように動作が変更されるのは、古い A レコードによって サブドメインの S3 バケットにルーティングされるトラフィックが Amazon S3の設定によってルートドメインにリダイレクトされるからです。www新しい A レコードが有効になると、新しい A レコードによって CloudFront ディストリビューションにルーティングされるトラフィックがルートドメインにリダイレクトされなくなります。

ヒント

ブラウザはリダイレクト設定をキャッシュできます。新しい A レコードの設定が有効になったと考えられるにもかかわらず、ブラウザによって http://www.example.com がまだ http://example.com にリダイレクトされる場合は、ブラウザアプリケーションを閉じてから再び開いてブラウザの履歴とキャッシュをクリアするか、異なるウェブブラウザを使用してみてください。

A レコードが有効になると、http://example.com または http://www.example.com を使用してサイトを参照する閲覧者は、最も近い CloudFront エッジロケーションにリダイレクトされるため、より高速なダウンロードによって快適にサイトを閲覧できます。

学習のためだけにサイトを作成した場合は、割り当てたリソースを削除して、課金を停止できます。これを行うには、「リソース例のクリーンアップ」に進んでください。AWS リソースを削除すると、ウェブサイトは使用できなくなります。

(オプション)ログファイルを確認する

アクセスログにより、ウェブサイトを訪れたユーザーの数がわかります。また、Amazon EMR など他のサービスで分析できる貴重なビジネスデータも含まれています。

バケットで、古い Amazon S3 ログファイルは root フォルダに配置されます。新しいログファイル (CloudFront ログ) はすべて cdn フォルダにあります。Amazon S3 は 2 時間おきにログバケットにウェブサイトアクセスログを書き込みます。CloudFront は、対応するリクエストが行われると、24 時間以内にログバケットにログを書き込みます。

ウェブサイトのログファイルを表示するには

  1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. ウェブサイトのログ記録バケットを選択します。

  3. cdn または root フォルダに保存されているログファイルを表示するには、[cdn] または [root] を選択します。

  4. Amazon S3 ログファイル (テキストファイル) をブラウザで開きます。開く前に、CloudFront によって書き込まれた .gzip ファイルをダウンロードします。