Amazon CloudFront によるウェブサイトの高速化 - Amazon Simple Storage Service

Amazon CloudFront によるウェブサイトの高速化

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

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

ステップ 1: CloudFront ディストリビューションを作成する

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

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

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

  2. [Create Distribution (ディストリビューションの作成)] を選択します。

  3. [Select a delivery method for your content (コンテンツの配信方法の選択)] ページで、[ウェブ] の [今すぐ始める] を選択します。

  4. [Create Distribution (ディストリビューションの作成)] ページで、[Origin Settings (オリジンの設定)] セクションの [Origin Domain Name (オリジンドメイン名)] に、バケットの Amazon S3 ウェブサイトエンドポイントを入力します (例: example.com.s3-website.us-west-1.amazonaws.com)。

    CloudFront により自動的に [Origin ID (オリジン ID)] が入力されます。

  5. [Default Cache Behavior Settings (キャッシュ動作のデフォルト設定)] の値はデフォルトのままにしておきます。

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

  6. [Distribution Settings (ディストリビューションの設定)] で、以下の作業を行います。

    1. [Price Class (価格クラス)] は [Use All Edge Locations (Best Performance) (すべてのエッジロケーションを使用する (最適なパフォーマンス))] に設定されたままにしておきます。

    2. [Alternate Domain Names (CNAME) (代替ドメイン名 (CNAME))] は空白のままにします。

    3. [Default Root Object (デフォルトのルートオブジェクト)] に、インデックスドキュメントの名前を入力します (例: index.html)。

      ディストリビューションにアクセスするために使用される URL にファイル名が含まれていない場合、CloudFront ディストリビューションはインデックスドキュメントを返します。[Default Root Object (デフォルトのルートオブジェクト)] は、静的ウェブサイトのインデックスドキュメントの名前と正確に一致する必要があります。詳細については、インデックスドキュメントの設定 を参照してください。

    4. [ログ記録] を [On (オン)] に設定します。

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

      ロギングバケットの設定の詳細については、(オプション) ウェブトラフィックのログ記録 を参照してください。

    6. CloudFront ディストリビューションへのトラフィックによって生成されたログをフォルダに保存する場合は、[Log Prefix (ログのプレフィックス)] にフォルダ名を入力します。

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

  7. [Create Distribution (ディストリビューションの作成)] を選択します。

  8. ディストリビューションのステータスを表示するには、コンソールでディストリビューションを見つけて、[ステータス] 列を確認します。

    [InProgress] のステータスは、ディストリビューションがまだ完全にデプロイされていないことを示します。

    ディストリビューションがデプロイされたら、新しい CloudFront ドメイン名でコンテンツを参照できます。

  9. CloudFront コンソールに表示される [Domain Name (ドメイン名)] の値を書き留めます (例: dj4p1rv6mvubz.cloudfront.net)。

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

    ウェブサイトが表示されていれば、CloudFront ディストリビューションは機能しています。ウェブサイトに Amazon Route 53 で登録されたカスタムドメインがある場合は、次のステップでレコードセットを更新するために CloudFront ドメイン名が必要になります。

ステップ 2: ドメインとサブドメインのレコードセットを更新する

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

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

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

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

  3. [Go to Record Sets (レコードセットに移動)] を選択します。

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

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

  6. [Save Record Set (レコードセットの保存)] を選択します。

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

    レコードセットの更新は、2~48 時間以内に有効になります。

  8. 新しい A レコードが有効かどうかを確認するには、ウェブブラウザで、サブドメイン URL を入力します (例: http://www.example.com)。

    ブラウザがルートドメイン (例: http://example.com) にリダイレクトしなくなった場合、新しい A レコードが有効になっています。新しい A レコードが有効になると、新しい A レコードによって CloudFront ディストリビューションにルーティングされるトラフィックがルートドメインにリダイレクトされなくなります。http://example.com または http://www.example.com を使用してサイトを参照する閲覧者は、最も近い CloudFront エッジロケーションにリダイレクトされるため、ダウンロード時間が短縮されます。

    ヒント

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

(オプション) ステップ 3: ログファイルを確認する

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

CloudFront ログは、CloudFront ディストリビューションを作成してログ作成を有効にしたときに選択したバケットとフォルダに保存されます。CloudFront は、対応するリクエストが作成されてから 24 時間以内にログバケットにログを書き込みます。

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

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

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

  3. CloudFront ログフォルダを選択します。

  4. 開く前に、CloudFront によって書き込まれた .gzip ファイルをダウンロードします。

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