

# 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="IntroductionUseCases"></a>

CloudFront を使用すると、さまざまな目標を達成するのに役立ちます。このセクションでは、詳細情報へのリンクとともに、可能性についてのアイデアをいくつか示します。

**Topics**
+ [静的ウェブサイトのコンテンツ配信の加速](#IntroductionUseCasesStaticWebsite)
+ [オンデマンドビデオおよびライブストリーミングビデオの配信](#IntroductionUseCasesStreaming)
+ [システム処理全体で特定のフィールドを暗号化する](#IntroductionUseCasesFieldLevelEncryption)
+ [エッジのカスタマイズ](#IntroductionUseCasesProgrammableCDN)
+ [Lambda@Edge カスタマイズを使用したプライベートコンテンツの供給](#IntroductionUseCasesPrivateContentAtTheEdge)

## 静的ウェブサイトのコンテンツ配信の加速
<a name="IntroductionUseCasesStaticWebsite"></a>

CloudFront は、世界中のビューワーへの静的コンテンツ (たとえば、イメージ、スタイルシート、JavaScript など) の配信を高速化します。CloudFront を使用することで、AWS バックボーンネットワークと CloudFront エッジサーバーの利点を活用して、ウェブサイトを閲覧する訪問者に高速かつ安全で、信頼性に優れたエクスペリエンスを提供できます。

Amazon S3 バケットを使用すると、静的コンテンツを簡単に格納し、配信することができます。CloudFront と S3 を組み合わせて使用すると、[オリジンアクセスコントロール](private-content-restricting-access-to-s3.md)を使用して Amazon S3 コンテンツへのアクセスを簡単に制限できるなど、多くの利点があります。

CloudFront と Amazon S3 を併用する方法の詳細 (すぐに使用開始するための CloudFormation テンプレートなど) については、「[安全な静的ウェブサイトの開始方法](getting-started-secure-static-website-cloudformation-template.md)」参照してください。

## オンデマンドビデオおよびライブストリーミングビデオの配信
<a name="IntroductionUseCasesStreaming"></a>

CloudFront では、録画済みのファイルとライブイベントの両方のメディアを世界中のビューワーにストリーム配信するためのいくつかのオプションが提供されています。
+ オンデマンドビデオ (VOD) ストリーミングで CloudFront を使用して、MPEG DASH、Apple HLS、Microsoft Smooth Streaming、CMAF などの一般的な形式であらゆるデバイスにストリーミングできます。
+ ライブストリームをブロードキャストする場合は、フラグメントを正しい順序で配信するマニフェストファイルに対する複数のリクエストを結合して、オリジンサーバーの負荷を軽減できるように、メディアフラグメントをエッジにキャッシュすることができます。

CloudFront でストリーミングコンテンツを配信する方法の詳細については、「[CloudFront を使用したビデオオンデマンドおよびライブストリーミングビデオ](on-demand-streaming-video.md)」を参照してください。

## システム処理全体で特定のフィールドを暗号化する
<a name="IntroductionUseCasesFieldLevelEncryption"></a>

CloudFront を使用して HTTPS を設定する場合、すでにオリジンサーバーへのセキュアなエンドツーエンド接続が存在します。フィールドレベルの暗号化を追加する場合、HTTPS セキュリティに加えて、システムの処理中に特定のデータにオリジンの特定のアプリケーションのみがアクセスできるように、そのデータを保護できます。

フィールドレベルの暗号化を設定するには、CloudFront にパブリックキーを追加し、そのキーを使用して暗号化する一連のフィールドを指定します。詳細については、「[フィールドレベル暗号化を使用した機密データの保護](field-level-encryption.md)」を参照してください。

## エッジのカスタマイズ
<a name="IntroductionUseCasesProgrammableCDN"></a>

エッジでサーバーレスコードを実行することには、ビューワーのコンテンツとエクスペリエンスをカスタマイズして、待ち時間を短縮することができる様々な可能性があります。たとえば、メンテナンスのためにオリジンサーバーがダウンしているときにカスタムエラーメッセージを表示することができるため、ビューワーには一般的な HTTP エラーメッセージは表示されません。または、CloudFront がリクエストをオリジンに転送する前に、コンテンツにアクセスするユーザーを認可および管理する関数を使用できます。

Lambda@Edge と CloudFront を併用すると、CloudFront が配信するコンテンツをさまざまな方法でカスタマイズできます。Lambda@Edge の詳細、および CloudFront で関数を作成してデプロイする方法の詳細については、「[Lambda@Edge を使用してエッジでカスタマイズする](lambda-at-the-edge.md)」を参照してください。独自のソリューションのためにカスタマイズできる多くのコードサンプルについては、[Lambda@Edge 関数の例](lambda-examples.md) を参照してください。

## Lambda@Edge カスタマイズを使用したプライベートコンテンツの供給
<a name="IntroductionUseCasesPrivateContentAtTheEdge"></a>

Lambda@Edge を使用すると、署名付き URL や署名付き Cookie の使用に加えて、独自のカスタムオリジンからプライベートコンテンツを供給する CloudFront ディストリビューションを設定するのに役立ちます。

CloudFront を使用してこのプライベートコンテンツを供給するには、次のことを実行します。
+ [署名付き URL または署名付き Cookie](PrivateContent.md) を使用してコンテンツにアクセスするようにユーザー (ビューワー) にリクエストします。
+ オリジンへのアクセスを制限して、CloudFront のオリジン向けサーバーからのみ利用できるようにします。これは、次のいずれかで実行できます。
  + Amazon S3 オリジンでは、[オリジンアクセスコントロール (OAC) を使用](private-content-restricting-access-to-s3.md)できます。
  + カスタムオリジンでは、次のように実行できます。
    + カスタムオリジンが Amazon VPC セキュリティグループまたは AWS Firewall Manager によって保護されている場合、[CloudFront マネージドプレフィックスリスト](LocationsOfEdgeServers.md#managed-prefix-list)を使用して、CloudFront のオリジン向け IP アドレスからのみ、オリジンへのインバウンドトラフィックを許可できます。
    + カスタム HTTP ヘッダーを使用して、CloudFront からのリクエストのみにアクセスを制限します。詳細については、「[カスタムオリジンのファイルへのアクセスを制限する](private-content-overview.md#forward-custom-headers-restrict-access)」および「[オリジンリクエストにカスタムヘッダーを追加する](add-origin-custom-headers.md)」を参照してください。カスタムヘッダーを使用して Application Load Balancer オリジンへのアクセスを制限する例については、[Application Load Balancer へのアクセスを制限する](restrict-access-to-load-balancer.md) を参照してください。
    + カスタムオリジンにカスタムアクセス制御ロジックが必要な場合は、このブログの記事、[Amazon CloudFront と Lambda@Edge を使用してプライベートコンテンツを供給する](https://aws.amazon.com/blogs/networking-and-content-delivery/serving-private-content-using-amazon-cloudfront-aws-lambdaedge/)で説明されているように、Lambda@Edge を使用してそのロジックを実装できます。

# CloudFront がコンテンツを配信する方法
<a name="HowCloudFrontWorks"></a>

初期セットアップを行った後、CloudFront は、ウェブサイトまたはアプリケーションと連携して動作し、コンテンツの配信を高速化します。このセクションでは、ビューワーがコンテンツをリクエストしたときに CloudFront がコンテンツを配信する方法について説明します。

**Topics**
+ [CloudFront がユーザーにコンテンツを配信する方法](#HowCloudFrontWorksContentDelivery)
+ [CloudFront とリージョン別エッジキャッシュとの連携](#CloudFrontRegionaledgecaches)

## CloudFront がユーザーにコンテンツを配信する方法
<a name="HowCloudFrontWorksContentDelivery"></a>

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

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

1. DNS は、リクエストを、最も適切に処理できる CloudFront POP (エッジロケーション) にルーティングします。通常は、レイテンシーを考慮して最寄りの CloudFront POP が対象となります。

1. CloudFront では、リクエストされたオブジェクトのキャッシュをチェックします。オブジェクトがキャッシュにある場合、CloudFront はオブジェクトをユーザーに返します。オブジェクトがキャッシュに*ない*場合、CloudFront は次の処理を実行します。

   1. CloudFront は、リクエストを、ディストリビューションで指定されている内容と照合し、ファイルのリクエストを、対応するオブジェクトに応じてオリジンサーバーに転送します (例えば、Amazon S3 バケットや HTTP サーバー)。

   1. そのオリジンサーバーが、エッジロケーションにオブジェクトを返します。

   1. オリジンから最初のバイトが到着した直後に、CloudFront はそのオブジェクトをユーザーに転送し始めます。また、CloudFront は、そのオブジェクトに対する次回のリクエストに備えて、キャッシュにそのオブジェクトを追加します。

![\[CloudFront を経由したユーザーからオリジンへのリクエストとレスポンス\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/images/how-cloudfront-delivers-content.png)


## CloudFront とリージョン別エッジキャッシュとの連携
<a name="CloudFrontRegionaledgecaches"></a>

CloudFront ポイントオブプレゼンス (*POP* または*エッジロケーション*とも呼ばれます) を使用することで、人気のあるコンテンツをすばやくビューワーに提供できます。CloudFront には*リージョン別エッジキャッシュ*もあり、コンテンツが POP に残るだけの人気が十分にない場合でも、より多くのコンテンツをビューワーの近くに配置して、そのコンテンツのパフォーマンスを向上させます。

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

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

ビューワーがウェブサイトで、またはアプリケーション経由でリクエストを実行すると、DNS はユーザーのリクエストに対応できる最適な POP にリクエストをルーティングします。通常、この場所は、レイテンシーに関して最も近い CloudFront エッジロケーションです。その POP では、CloudFront によってリクエストされたオブジェクトがキャッシュにあるかどうかをチェックします。オブジェクトがキャッシュにある場合、CloudFront はオブジェクトをユーザーに返します。オブジェクトがキャッシュにない場合、POP は最も近いリージョン別エッジキャッシュをフェッチします。POP がリージョン別エッジキャッシュをスキップして直接オリジンに移動する場合の詳細については、次の注記を参照してください。

そのリージョン別エッジロケーションで、CloudFront は要求されたオブジェクトがキャッシュにあるかどうかをもう一度チェックします。オブジェクトがキャッシュにある場合、CloudFront はリクエスト元の POP にオブジェクトを転送します。リージョン別エッジキャッシュロケーションから最初のバイトが到着した直後に、CloudFront はそのオブジェクトをユーザーに転送し始めます。また、CloudFront は、そのオブジェクトに対する次回のリクエストに備えて、POP 内のキャッシュにそのオブジェクトを追加します。

POP とリージョン別エッジキャッシュロケーションのいずれかでキャッシュされていないオブジェクトについて、CloudFront はディストリビューションの仕様とリクエストを比較し、リクエストをオリジンサーバーに転送します。オリジンサーバーがオブジェクトをリージョン別エッジキャッシュロケーションに送り返すと、POP に転送され、CloudFront はオブジェクトをユーザーに転送します。この場合、CloudFront は次回にビューワーがオブジェクトをリクエストしたときに、POP に加えてリージョン別エッジキャッシュロケーションのキャッシュにオブジェクトを追加します。これにより、リージョン内のすべての POP がローカルキャッシュを共有されて、オリジンサーバーに対して複数のリクエストがおこなわれなくなります。また、CloudFront はオリジンサーバーと永続的接続を保持しているため、可能な限り迅速にオリジンからオブジェクトが取得されます。

**注記**  
リージョン別エッジキャッシュには、POP と同等の機能があります。たとえば、キャッシュ無効化リクエストでは、有効期限が切れる前に、POP とリージョン別エッジキャッシュの両方からオブジェクトが削除されます。エンドユーザーが次にオブジェクトを要求したときに、CloudFront はオリジンに戻ってオブジェクトの最新バージョンをフェッチします。
プロキシ HTTP メソッド (`PUT`、`POST`、`PATCH`、`OPTIONS`、`DELETE`) は POP からオリジンに直接送信され、リージョン別エッジキャッシュを経由してプロキシを実行しません。
リクエスト時に決定される動的リクエストは、リージョン別エッジキャッシュを通過せず、直接オリジンに送信されます。
オリジンが Amazon S3 バケットで、リクエストの最適なリージョン別エッジキャッシュが S3 バケットと 同じ AWS リージョン である場合、POP はリージョン別エッジキャッシュをスキップして S3 バケットに直接移動します。

次の図は、CloudFront エッジロケーションとリージョン別エッジキャッシュを通るリクエストとレスポンスの流れを示しています。

![\[エッジロケーションとリージョン別エッジキャッシュを介したビューワーからオリジンへのリクエスト/レスポンスパスを示す図。\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/images/regional-edge-caches.png)


# CloudFront エッジサーバーの場所と IP アドレス範囲
<a name="LocationsOfEdgeServers"></a>

CloudFront エッジサーバーの場所の一覧については、「[Amazon CloudFront グローバルエッジネットワーク](https://aws.amazon.com/cloudfront/features/#Global_Edge_Network)」をご覧ください。

Amazon Web Services (AWS) は、その現在の IP アドレス範囲を JSON 形式で公開します。現在の範囲を表示するには、「[ip-ranges.json](https://ip-ranges.amazonaws.com/ip-ranges.json)」ファイルをダウンロードします。詳細については、*Amazon Web Services 全般のリファレンス* の [AWS IP アドレスの範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)をご参照ください。

CloudFront エッジサーバーに関連付けられた IP アドレス範囲を見つけるには、ip-ranges.json ファイルで次の文字列を検索します。

```
"region": "GLOBAL",
"service": "CLOUDFRONT"
```

また、[https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips](https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips) での CloudFront の IP 範囲についてのみ表示できます。

## CloudFront マネージドプレフィックスリストを使用
<a name="managed-prefix-list"></a>

CloudFront マネージドプレフィクスリストには、CloudFront のグローバルに分散されたオリジン向けサーバーの IP アドレス範囲が含まれています。オリジンが AWS でホストされ、AmazonVPC [セキュリティグループ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)で保護されている場合、CloudFront マネージドプレフィックスリストを使用して、CloudFront のオリジン側サーバーからのみオリジンへのインバウンドトラフィックを許可し、CloudFront 以外のトラフィックがオリジンに到達するのを防ぐことができます。CloudFront がマネージドプレフィクスリストを維持するため、CloudFront のグローバルオリジン向けサーバーの IP アドレスは常に最新になります。CloudFront マネージドプレフィクスリストを使用すると、IP アドレス範囲のリストを自分で読み取ったり、管理したりする必要はなくなります。

例えば、オリジンが欧州 (ロンドン) (`eu-west-2`) リージョンの Amazon EC2 インスタンスであると想定します。インスタンスが VPC 内にある場合は、CloudFront マネージドプレフィクスリストからのインバウンド HTTPS アクセスを許可するセキュリティグループルールを作成できます。これにより、CloudFront のグローバルオリジン向けのすべてのサーバーがインスタンスに到達できるようになります。セキュリティグループから他のすべてのインバウンドルールを削除すると、CloudFront 以外のトラフィックがインスタンスに到達するのを防ぐことができます。

CloudFront マネージドプレフィックスリストは次のとおりです。
+ `com.amazonaws.global.cloudfront.origin-facing` (IPv4)
+ `com.amazonaws.global.ipv6.cloudfront.origin-facing` (IPv6)



詳細については、*Amazon VPC ユーザーガイド*の「[AWS マネージドプレフィックスリストの使用](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#use-aws-managed-prefix-list)」を参照してください。

**重要**  
CloudFront マネージドプレフィックスリストは、Amazon VPC クォータに適用される点で独特です。詳細については、*Amazon VPC ユーザーガイド*の「[AWS マネージドプレフィックスリストの重み](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#aws-managed-prefix-list-weights)」を参照してください。

# AWS SDK での CloudFront の使用
<a name="sdk-general-information-section"></a>

AWS Software Development Kit (SDK) は、多くの一般的なプログラミング言語で使用できます。各 SDK には、デベロッパーが好みの言語でアプリケーションを簡単に構築できるようになる API、コード例、およびドキュメントが提供されています。


| SDK ドキュメント | コードの例 | 
| --- | --- | 
| [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK for C\$1\$1 コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI コードの例](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK for Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK for Go コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK for Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK for Java コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK for JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK for JavaScript コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK for Kotlin コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK for .NET コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK for PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK for PHP コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Tools for PowerShell コードの例](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK for Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK for Python (Boto3) コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK for Ruby コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK for Rust コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK for SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK for SAP ABAP コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK for Swift コードの例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**可用性の例**  
必要なものが見つからなかった場合。このページの下側にある [**Provide feedback**] リンクから、コードの例をリクエストしてください。

## 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 認定プロフェッショナルとエキスパートからのヘルプを得ます。