メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

CloudFront とリージョン別エッジキャッシュとの連携

CloudFront リージョン別エッジキャッシュは、コンテンツが CloudFront エッジロケーションに残るだけの人気が十分にない場合でも、より多くのコンテンツをビューワーの近くに配置します。これにより、ビューワーに対するパフォーマンスを向上させながら、オリジンリソースのスケーリングに関する運用面の負担とコストを低減できます。

この機能は、すべてのタイプのコンテンツ (特に、時間の経過とともに人気が落ちる傾向にあるコンテンツ) に役立ちます。この例には、ビデオ、写真、アートワークようなユーザーが生成したコンテンツ、製品の写真やビデオのような e コマースアセット、突然新たに人気が出る可能性があるニュースやイベント関連のコンテンツがあります。

リージョン別キャッシュの動作

リージョン別エッジキャッシュは、ビューワーに近接して世界各地にデプロイされる CloudFront ロケーションです。これらのロケーションは、オリジンサーバーと、ビューワーに直接トラフィックを提供する世界各地のエッジロケーションの間にあります。オブジェクトの人気が下がると、個別のエッジロケーションでは、これらのオブジェクトを削除し、より人気の高いコンテンツ用に容量を確保する場合があります。リージョン別エッジキャッシュのキャッシュ幅は、どの個別のエッジロケーションよりも大きいため、オブジェクトは最も近いリージョン別エッジキャッシュロケーションでより長くキャッシュに残ります。これにより、より多くのコンテンツがビューワーの近くに保持されるため、CloudFront がオリジンサーバーに戻る必要がなくなり、ビューワーに対する全般的なパフォーマンスが向上します。

ビューワーがウェブサイトまたはアプリケーションからリクエストを実行すると、DNS はユーザーのリクエストに対応できる最適な CloudFront エッジロケーションにリクエストをルーティングします。通常、この場所は、レイテンシーに関して最も近い CloudFront エッジロケーションです。そのエッジロケーションで、CloudFront は要求されたファイルがキャッシュにあるかどうかをチェックします。ファイルがキャッシュにある場合、CloudFront はファイルをユーザーに返します。ファイルがキャッシュにない場合、エッジサーバーは最も近くのリージョン別エッジキャッシュに接続してオブジェクトをフェッチします。そのリージョン別エッジロケーションで、CloudFront は要求されたファイルがキャッシュにあるかどうかをもう一度チェックします。ファイルがキャッシュにある場合、CloudFront は要求されたエッジロケーションにファイルを転送します。リージョン別エッジキャッシュロケーションから最初のバイトが到着した直後に、CloudFront はユーザーへのファイルの転送を開始します。また、CloudFront はリクエストされたエッジロケーションのキャッシュにファイルを追加し、次にこのファイルがリクエストされた場合に備えます。

エッジロケーションとリージョン別エッジキャッシュロケーションの両方でキャッシュされていないファイルについて、CloudFront はディストリビューションの仕様とリクエストを比較し、ファイルのリクエストを該当するオリジンサーバーに転送します。オリジンサーバーがファイルをリージョン別エッジキャッシュロケーションに送信すると、要求されたエッジロケーションに転送され、CloudFront はファイルをユーザーに転送します。この場合、CloudFront は次回にビューワーがファイルを要求したときに、エッジロケーションに加えてリージョン別エッジキャッシュロケーションのキャッシュにファイルを追加します。これで、リージョン内のすべてのエッジロケーションがローカルキャッシュを共有し、オリジンサーバーに対する複数のリクエストが排除されます。さらに、CloudFront はオリジンサーバーと永続的接続を維持し、ファイルをできるだけ早くオリジンサーバーからフェッチできるようにします。

注記

  • CloudFront ディストリビューションを変更する必要はありません。リージョン別エッジキャッシュは、すべての CloudFront ディストリビューションに対してデフォルトで有効になっています。

  • この機能を使用しても追加コストは発生しません。

  • リージョン別エッジキャッシュには、エッジロケーションと同等の機能があります。たとえば、キャッシュ無効化リクエストでは、有効期限が切れる前に、エッジキャッシュとリージョン別エッジキャッシュの両方からオブジェクトが削除されます。エンドユーザーが次にオブジェクトを要求したときに、CloudFront はオリジンに戻ってオブジェクトの最新バージョンをフェッチします。

  • カスタムオリジンで利用できるリージョン別エッジキャッシュ。Amazon S3 オリジンはサポートされません。

  • プロキシメソッド PUT/POST/PATCH/OPTIONS/DELETE はエッジロケーションからオリジンに直接送信され、リージョン別エッジキャッシュをプロキシ経由しません。

  • リクエスト時に決定される動的コンテンツ (すべてのヘッダーを転送するように設定されたキャッシュ動作) は、リージョン別エッジキャッシュを介して送信されず、直接オリジンに送信されます。

  • コンソールで利用できるキャッシュヒット率メトリクスを使用して、この機能によるパフォーマンス向上を測定できます。キャッシュヒット率メトリクスの詳細については、「CloudFront キャッシュ統計レポート」を参照してください。