

# 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 を使用してそのロジックを実装できます。