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

CloudFront がコンテンツを配信する方法

初期セットアップを行った後、CloudFront はバックグラウンドで動作して、お客様のコンテンツの配信を高速化します。この概要には、最初のユーザーがお客様のアプリケーションまたはウェブサイトにアクセスする前にお客様が実行する手順と、構成完了後に CloudFront がお客様のコンテンツを提供する方法についての説明の両方が含まれています。

CloudFront のセットアップでは、いくつかの簡単な手順を行います。

コンテンツを配信するように CloudFront を構成する方法

  1. お客様はオリジンサーバーを構成します。CloudFront は、このサーバーからファイルを取得し、世界中の CloudFront エッジロケーションでファイルのディストリビューションを行います。

    オリジンサーバーには、お客様のオブジェクトのオリジナルの最終バージョンが保存されます。コンテンツを HTTP 経由で提供する場合、オリジンサーバーは Amazon S3 バケットまたは HTTP サーバー(ウェブサーバーなど)になります。HTTP サーバーは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、またはお客様が管理するサーバーで実行できます。これらのサーバーはカスタムオリジンとも呼ばれます。

    Adobe Media Server RTMP プロトコルを使用してオンデマンドでメディアファイルを配信している場合、オリジンサーバーは必ず Amazon S3 バケットになります。

  2. ファイルをオリジンサーバーにアップロードします。通常、お客様のファイル(オブジェクトとも呼ぶ)にはウェブページ、イメージ、メディアファイルなどがありますが、HTTP またはサポートされているバージョンの Adobe RTMP(Adobe Flash Media Server で使用されるプロトコル)経由で供給できるすべてのものをオブジェクトとして使用できます。

    Amazon S3 バケットをオリジンサーバーとして使用している場合、バケット内のオブジェクトを読み取り可能にして公開することで、オブジェクトの CloudFront URL を知っているユーザーならだれでもオブジェクトにアクセスできるようにすることができます。オブジェクトを非公開にして、オブジェクトにアクセスするユーザーを制限することもできます。「CloudFront を使用してプライベートコンテンツを供給する」を参照してください。

  3. CloudFront ディストリビューションを作成します。このディストリビューションは、ユーザーがウェブサイトまたはアプリケーションを通じてファイルをリクエストしたときに、どのオリジンサーバーからファイルを取得するかを CloudFront に指示します。同時に、詳細も指定します。たとえば、CloudFront ですべてのリクエストをログに記録するかどうかや、ディストリビューションを作成した直後にディストリビューションを有効にするかどうかなどです。

  4. CloudFront はドメイン名を新しいディストリビューションに割り当て、CloudFront コンソールに表示するか、プログラムでのリクエスト (API リクエストなど) への応答として返します。

  5. CloudFront はディストリビューションの構成を関係するすべてのエッジロケーション(CloudFront がオブジェクトのコピーをキャッシュするために使用する、地理的に分散して配置されたデータセンター内のサーバー群)に送信します。ただし、ディストリビューションのコンテンツは送信されません。

 CloudFront の支払い

ウェブサイトやアプリケーションを開発するときには、CloudFront がお客様の URL に提供するドメイン名を使用します。たとえば、CloudFront がディストリビューションのドメイン名として d111111abcdef8.cloudfront.net を返した場合、Amazon S3 バケット内(または HTTP サーバーのルートディレクトリ内)の logo.jpg の URL は http://d111111abcdef8.cloudfront.net/logo.jpg になります。

また、独自のドメイン名を使用できるように、CloudFront ディストリビューションを構成することもできます。この場合、URL は http://www.example.com/logo.jpg のようになります。

オプションで、ファイルにヘッダーを追加するようにオリジンサーバーを構成することもできます。このヘッダーは、ファイルが CloudFront エッジロケーションのキャッシュに保持される期間を示します。デフォルトでは、各オブジェクトはエッジロケーションに 24 時間保持された後に有効期限切れになります。最小の有効期限切れ時間は 0 秒です。有効期限切れ時間の上限はありません。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ)」を参照してください。

CloudFront がコンテンツをユーザーに配信する方法

CloudFront でコンテンツ配信の構成が完了すると、ユーザーがオブジェクトをリクエストしたときに次の処理が行われます。

  1. ユーザーがウェブサイトまたはアプリケーションにアクセスして、イメージファイルや HTML ファイルなどの 1 つまたは複数のオブジェクトをリクエストします。

  2. DNS は、ユーザーのリクエストを最良の方法でそのリクエストに対応できる CloudFront エッジロケーション(通常はレイテンシーの点から最寄りの CloudFront エッジロケーション)にルーティングします。

  3. そのエッジロケーションで、CloudFront は要求されたファイルがキャッシュにあるかどうかをチェックします。ファイルがキャッシュにある場合、CloudFront はファイルをユーザーに返します。ファイルがキャッシュにない場合は、次のように処理します。

    1. CloudFront は、ディストリビューションに指定された内容とリクエストを照合し、ファイルのリクエストを、対応するファイルタイプに応じて該当のオリジンサーバーに転送します。たとえば、イメージファイルの場合は Amazon S3 バケット、HTML ファイルの場合は HTTP サーバーです。

    2. オリジンサーバーは、CloudFront エッジロケーションにファイルを返します。

    3. オリジンから最初のバイトが到着した直後に、CloudFront はユーザーへのファイルの転送を開始します。また、CloudFront はキャッシュにファイルを追加し、次にこのファイルがリクエストされた場合に備えます。

 CloudFront の支払い