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

Amazon CloudFront とは何ですか?

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

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

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

たとえば、イメージが CloudFront からではなく従来のウェブサーバーから供給されているとします。たとえば、sunsetphoto.png というイメージを、URL https://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 は https://d111111abcdef8.cloudfront.net/logo.jpg になります。

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

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

料金

CloudFront では、エッジロケーションからのデータ転送と、HTTP または HTTPS リクエストに対して課金されます。料金は、使用タイプ、地域、選択した機能によって異なります。

Amazon Simple Storage Service (Amazon S3)、Elastic Load Balancing、Amazon API Gateway などの AWS オリジンを使用すると、オリジンから CloudFront へのデータ転送は常に無料です。AWS オリジンを使用した場合、CloudFront からビューワーへのアウトバウンドデータ転送にのみ課金されます。

詳細については、「CloudFront の料金」と、請求および Savings Bundle の「よくある質問」を参照してください。

CloudFront テクニカルリソース

以下のリソースを使用して、CloudFront に関する技術的な質問に対する回答を取得します。

  • AWS re:Post – デベロッパーが CloudFront に関連する技術的な質疑応答を行える、デベロッパー向けのコミュニティサイト。

  • AWS Support センター – このサイトには、最近のサポートケースと、AWS Trusted Advisor およびヘルスチェックの結果に関する情報が含まれています。また、ディスカッション フォーラム、技術的な FAQ、サービスヘルスダッシュボード、および AWS Support プランに関する情報へのリンクも提供します。

  • AWS プレミアムサポート - 1 対 1 での迅速な対応を行うサポートチャネルである AWS プレミアムサポートに関して説明します。AWS でのアプリケーションの構築および実行を支援します。

  • AWS IQ – AWS 認定プロフェッショナルとエキスパートからのヘルプを得ます。