Amazon CloudFront とは何ですか? - Amazon CloudFront

Amazon CloudFront とは何ですか?

Amazon CloudFront は、ユーザーへの静的および動的なウェブコンテンツ (.html、.css、.js、イメージファイルなど) の配信を高速化するウェブサービスです。CloudFront では、エッジロケーションというデータセンターの世界的ネットワークを経由してコンテンツを配信します。CloudFront でサービスを提供しているコンテンツをユーザーがリクエストすると、リクエストはエッジロケーションにルーティングされ、レイテンシー (遅延時間) が最小になります。これにより、コンテンツは可能な限り最高のパフォーマンスで配信されます。

  • コンテンツがエッジロケーション内に最も低いレイテンシーですでに存在している場合、CloudFront はそのコンテンツを即時に配信します。

  • コンテンツがこのエッジロケーションに存在しない場合、CloudFront は、コンテンツの最終バージョンのソースとして識別されている Amazon S3 バケット、MediaPackage チャネル、または HTTP サーバー (たとえば、ウェブサーバー) などの定義されたオリジンからコンテンツを取り込みます。

たとえば、イメージが CloudFront からではなく従来のウェブサーバーから供給されているとします。たとえば、sunsetphoto.png というイメージを、URL http://example.com/sunsetphoto.png を使用して提供するとします。

ユーザーは簡単にこの URL にアクセスしてそのイメージを表示できます。ただし、そのイメージが見つかるまで、リクエストがネットワークから別のネットワークに (インターネットを構成する相互接続ネットワークの複雑な集合経由で) ルーティングされたということを、おそらくユーザーは認識しません。

CloudFront は、コンテンツを最良の方法で供給できるエッジロケーションに各ユーザーリクエストを AWS バックボーンネットワークを経由してルーティングすることによって、お客様のコンテンツの配信速度を向上させます。通常、これはビューワーに最も高速に配信できる CloudFront エッジサーバーです。AWS ネットワークを使用することでユーザーのリクエストが通過しなければならないネットワークの数が大幅に減少するので、パフォーマンスが向上します。ユーザーが経験するレイテンシー (ファイルの最初のバイトがロードされるまでの時間) が低くなり、データ転送速度が高くなります。

お客様のファイル (オブジェクトとしても知られる) のコピーが世界中の複数のエッジロケーションに保持される (つまりキャッシュされる) ので、信頼性と可用性の向上も得られます。

コンテンツを配信するように CloudFront を設定する方法

CloudFront ディストリビューションを作成して、コンテンツを配信する場所と、コンテンツ配信の追跡と管理の方法の詳細を CloudFront に指示します。こうすることで、誰かがそのコンテンツを表示または使用する際に、CloudFront はビューワーに近いコンピュータ (エッジサーバー) を使用してそのコンテンツをすばやく配信します。

 
				CloudFront の仕組み

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

  1. Amazon S3 バケットや独自の HTTP サーバーなどのオリジンサーバーを指定します。ここから CloudFront がファイルを取得し、CloudFront エッジロケーションから全世界に配信します。

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

  2. ファイルをオリジンサーバーにアップロードします。ファイル ( オブジェクトとも呼ばれます) には、通常、ウェブページ、イメージ、メディアファイルが含まれますが、HTTP 経由で提供できるものであれば何でもかまいません。

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

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

  4. CloudFront は新しいディストリビューションにドメイン名を割り当てます。このドメイン名は、CloudFront コンソールで確認でき、プログラムによるリクエスト (API リクエストなど) ではレスポンスとして返されます。必要に応じて、代わりに使用する代替ドメイン名を追加できます。

  5. CloudFront はディストリビューションの構成を関係するすべてのエッジロケーションまたはポイントオブプレゼンス (POP) (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 秒です。有効期限切れ時間の上限はありません。詳細については、「コンテンツがキャッシュに保持される期間 (有効期限) の管理」 を参照してください。