

# Amazon CloudFront とは何ですか?
<a name="Introduction"></a>

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 ネットワークを使用することでユーザーのリクエストが通過しなければならないネットワークの数が大幅に減少するので、パフォーマンスが向上します。ユーザーが経験するレイテンシー (ファイルの最初のバイトがロードされるまでの時間) が低くなり、データ転送速度が高くなります。

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

**Topics**
+ [コンテンツを配信するように CloudFront を設定する方法](#HowCloudFrontWorksOverview)
+ [標準ディストリビューションまたはマルチテナントディストリビューションのいずれかを選択する](#choose-standard-or-multi-tenant)
+ [料金](#pricing)
+ [CloudFront の使用方法](IntroductionUseCases.md)
+ [CloudFront がコンテンツを配信する方法](HowCloudFrontWorks.md)
+ [CloudFront エッジサーバーの場所と IP アドレス範囲](LocationsOfEdgeServers.md)
+ [AWS SDK での CloudFront の使用](sdk-general-information-section.md)
+ [CloudFront テクニカルリソース](#resources-cloudfront)

## コンテンツを配信するように CloudFront を設定する方法
<a name="HowCloudFrontWorksOverview"></a>

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

![CloudFront の仕組み](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/images/how-you-configure-cf.png)
<a name="HowCloudFrontWorksConfiguration"></a>

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

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

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

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

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

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

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

1. 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 秒です。有効期限切れ時間の上限はありません。詳細については、「[コンテンツをキャッシュに保持する期間 (有効期限) を管理する](Expiration.md)」を参照してください。

## 標準ディストリビューションまたはマルチテナントディストリビューションのいずれかを選択する
<a name="choose-standard-or-multi-tenant"></a>

CloudFront には、単一のウェブサイトまたはアプリ、およびマルチテナントシナリオ用のディストリビューションオプションが用意されています。

**標準ディストリビューション**  
ウェブサイトまたはアプリケーションごとに一意の設定用に設計されています。次のようなユースケースでこれを選択します。  
+ スタンドアロンの CloudFront ディストリビューションが必要
+ 各サイトまたはアプリケーションに独自のカスタム設定が必要
ほとんどのユーザーは、標準ディストリビューションから始めます。

**マルチテナントディストリビューションおよびディストリビューションテナント (CloudFront SaaS Manager)**  
SaaS プロバイダーとマルチテナントシナリオ向けに特別に設計されています。次のようなユースケースでこれを選択します。  
+ 複数のカスタマーウェブサイトまたはアプリケーションを提供する SaaS プラットフォームを構築している
+ 複数の類似ディストリビューションを効率的に管理する必要がある
+ 共有設定を一元管理したい
詳細については、「[マルチテナントディストリビューションの仕組みを理解する](distribution-config-options.md)」を参照してください。

## 料金
<a name="pricing"></a>

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

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

詳細については、「[CloudFront の料金](https://aws.amazon.com/cloudfront/pricing/)」と、請求および Savings Bundle の「[よくある質問](https://aws.amazon.com/cloudfront/faqs/)」を参照してください。

## CloudFront テクニカルリソース
<a name="resources-cloudfront"></a>

以下のリソースを使用して、CloudFront に関する技術的な質問に対する回答を取得します。
+ [AWS re:Post](https://repost.aws/tags/TA8pHF0m5aQdawzT2gwPcVYQ/amazon-cloudfront) – デベロッパーが CloudFront に関連する技術的な質疑応答を行える、デベロッパー向けのコミュニティサイト。
+ [サポート センター](https://console.aws.amazon.com/support/home) – このサイトには、最近のサポートケースと、AWS Trusted Advisor およびヘルスチェックの結果に関する情報が含まれています。また、ディスカッション フォーラム、技術的な FAQ、サービスヘルスダッシュボード、および サポート プランに関する情報へのリンクも提供します。
+ [AWS プレミアムサポート](https://aws.amazon.com/premiumsupport/) - 1 対 1 での迅速な対応を行うサポートチャネルである AWS プレミアムサポートに関して説明します。AWS でのアプリケーションの構築および実行を支援します。
+ [AWS IQ](https://iq.aws.amazon.com/?utm=docs) – AWS 認定プロフェッショナルとエキスパートからのヘルプを得ます。