

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# MediaTailor の本番稼働対応 CloudFront 設定
<a name="cf-comprehensive-configuration"></a>

この CloudFront ディストリビューション設定は、MediaTailor コンテンツをサーバー側の広告挿入で大規模に配信するために必要なすべてを提供します。この設定をコピーし、特定のオリジンと要件に合わせてカスタマイズします。

**この設定の目的**  
この設定により、最適なキャッシュとパフォーマンスですべての MediaTailor リクエストタイプを処理する、本稼働対応の CloudFront ディストリビューションが作成されます。これには、リクエストを正しくルーティングし、コンテンツを適切にキャッシュする 4 つのキャッシュ動作を持つ 3 つのオリジン (コンテンツ、MediaTailor セグメント、MediaTailor マニフェスト) が含まれます。

**この設定を使用するタイミング**  
この設定は、サーバー側の広告挿入を必要とするライブストリーミング、video-on-demand、ハイブリッドワークフローに最適です。

## 3 オリジンアーキテクチャ
<a name="cf-three-origin-architecture"></a>

MediaTailor は、3 つのオリジンアーキテクチャパターンを使用して、コンテンツ配信と広告挿入のパフォーマンスを最適化します。各オリジンは、広告挿入ワークフローで特定の目的を果たします。

コンテンツオリジン  
これは、MediaTailor にフィードする実際のコンテンツオリジンです。例えば、V AWS Elemental MediaPackage V2 や別のコンテンツ配信サービスなどです。このオリジンは、広告挿入前に元のコンテンツを提供します。一般的な例としては次のようなものがあります。  
+ MediaPackage V2 パッケージ設定
+ サードパーティーのコンテンツ配信ネットワーク
+ オンプレミスストリーミングサーバー
+ 静的コンテンツを含む Amazon S3 バケット

MediaTailor セグメントのオリジン  
このオリジンはホスト名を使用し`segments.mediatailor.region.amazonaws.com`、MediaTailor がエンコードした後に実際の広告セグメントを提供します。これらは広告を含む動画セグメントです。このオリジンは以下を処理します。  
+ コンテンツと同じ形式のトランスコードされた広告セグメント
+ `/segment/*` パスパターンからリダイレクトされたリクエスト
+ サーバー側の広告挿入用に処理された広告セグメント

MediaTailor マニフェストオリジン  
このオリジンはホスト名を使用し`manifests.mediatailor.region.amazonaws.com`、指定されたリージョンの再生設定の AWS リージョンホスト名として使用できます。MediaTailor は、リクエストのパスに基づいて正しい再生設定を選択します。このオリジンは以下を提供します。  
+ ビューワー固有の広告挿入を使用したパーソナライズされた HLS および DASH マニフェスト
+ キャッシュ可能なコンテンツのサーバーガイド広告挿入 (SGAI) マニフェスト
+ サーバー側のレポートの広告追跡とビーコン処理

オリジンホスト名 を使用すると`manifests.mediatailor.region.amazonaws.com`、指定されたリージョンにあり、リクエストパスに再生設定名を含めると、同じ CloudFront ディストリビューションで動作する複数の再生設定を持つことができます。例えば、次のようになります。
+ `https://your-distribution.cloudfront.net/v1/master/playback-config-1/manifest.m3u8`
+ `https://your-distribution.cloudfront.net/v1/master/playback-config-2/manifest.m3u8`

コンテンツタイプに基づいてオリジンリクエストポリシーを選択し、適切な機能を確保しながらキャッシュポイズニングを防止します。主な違いは、キャッシュ可能なコンテンツとキャッシュ不可能なコンテンツです。
+ **マニフェスト (キャッシュ不可)**: 動的コンテンツに必要なすべてのヘッダーを転送`AllViewer`するために使用します。マニフェストはキャッシュされないため、キャッシュポイズニングのリスクはありません。
+ **セグメント (キャッシュ可能)**: 最適なパフォーマンス`None`を得るために を使用します。
+ **S3 オリジン**: Amazon S3 バケット`CORS-S3Origin`に使用
+ **MediaPackage オリジン**: MediaPackage V2 エンドポイント`CORS-S3Origin`に使用

![\[Origins table showing ContentOrigin, MediaTailorSegments, and MediaTailorManifests with their respective details.\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/origins-cdn.png)


## キャッシュ動作の優先順位と設定
<a name="cf-behavior-precedence"></a>

MediaTailor では、さまざまなタイプのリクエストを適切に処理するために、特定のキャッシュ動作設定が必要です。CDNs処理し、最初の一致するパスパターンに動作を使用するため、キャッシュ動作の優先順位は重要です。この優先順位を理解することは、トラブルシューティングに不可欠です。
+ **優先順位 0**: ほとんどの特定のパターン ( など`/tm/*`) が最初に評価されます
+ **優先順位の高い数値**: より具体的なパターンが順番に評価される
+ **デフォルトの動作**: 他のパターンと一致しないすべてのリクエストをキャッチします

リクエストが想定どおりに動作しない場合は、パスパターンが意図しない方法で重複していないことを確認します。

![\[Table showing behaviors with path patterns, origins, and policies for different URL paths.\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/bhv.png)


### 優先順位 0: 広告セグメントのパス動作
<a name="cf-transcode-manage-behavior"></a>

この動作は、セグメントパス動作からのリダイレクトされたリクエストを処理し、実際の広告セグメントを処理します。CloudFront は、`/tm/*`パスパターンを持つすべてのリクエストに次の動作を適用します。これは、広告セグメント配信が中断のない再生に重要であるため、最も優先度の高い動作です。
+ **パスパターン:** `/tm/*`

  このパターンに一致する URLsの例:
  + `https://your-distribution.cloudfront.net/tm/ad-segment-001.ts`
  + `https://your-distribution.cloudfront.net/tm/transcoded-ad.m4s`
+ **オリジン:** `segments.mediatailor.region.amazonaws.com`ドメインで作成したオリジン。

  これは、オリジンに関する前のセクションの例の **MediaTailorSegments** です。
+ **キャッシュポリシー:** `Managed-CachingOptimized`

  CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドの[CachingOptimized](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)」を参照してください。サードパーティー CDN の 管理ポリシーからこれらの同じ設定を使用することもできます。
+ **オリジンリクエストポリシー:** `None`
+ **レスポンスヘッダーポリシー:** `Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドの[CORS-with-preflight-and-SecurityHeadersPolicy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)」を参照してください。

#### これらの設定を他の CDNs
<a name="adapting-to-other-cdns"></a>

CloudFront 以外の CDN を使用している場合は、以下を達成する同等の設定を探します。

**パスパターンマッチング**  
MediaTailor 広告セグメントを処理するように`/tm/*`パスパターンに特定の動作を設定する

**キャッシュキーの設定**  
キャッシュキーに `Origin`ヘッダーを含めて、レスポンスが異なるオリジンに対して個別にキャッシュされるようにします。

**ヘッダー転送**  
`Origin` ヘッダーおよびその他の CORS 関連ヘッダーをオリジンに転送する

**レスポンスヘッダー管理**  
`Access-Control-Allow-Origin` ヘッダーがレスポンスに存在することを確認するように CDN を設定する

特定の用語と設定オプションは CDN プロバイダーによって異なりますが、基盤となる原則は変わりません。

### 優先順位 1: サーバーガイド広告挿入動作
<a name="cf-sgai-behavior"></a>

この動作は、お客様がキャッシュ可能なマニフェストを提供するガイドモードを設定するときに [MediaTailor サーバーガイド広告挿入の概要と実装](server-guided.md) (SGAI) リクエストを処理します。CloudFront は、`/v1/i-media/*`パスパターンを持つすべてのリクエストに次の動作を適用します。SGAI では、マニフェストがビューワー固有ではないため、キャッシュパフォーマンスが向上します。
+ **パスパターン:** `/v1/i-media/*` (SGAI の iMedia パス)

  このパターンに一致する URLsの例:
  + `https://your-distribution.cloudfront.net/v1/i-media/your-config/manifest.m3u8`
  + `https://your-distribution.cloudfront.net/v1/i-media/your-config/playlist.mpd`
+ **オリジン:** `manifests.mediatailor.region.amazonaws.com`ドメインで作成したオリジン。

  これは、オリジンに関する前のセクションの例の **MediaTailorManifests** です。
+ **キャッシュポリシー:** `Managed-CachingOptimized`

  CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドの[CachingOptimized](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)」を参照してください。サードパーティー CDN の 管理ポリシーからこれらの同じ設定を使用することもできます。
+ **オリジンリクエストポリシー:** `None`
+ **レスポンスヘッダーポリシー:** `Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドの[CORS-with-preflight-and-SecurityHeadersPolicy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)」を参照してください。

### 優先順位 2: パーソナライズされたマニフェストの動作
<a name="cf-personalized-manifest-behavior"></a>

この動作は、パーソナライズされたマニフェストリクエストを処理します。CloudFront は、`/v1/*`パスパターンを持つすべてのリクエストに次の動作を適用します。CloudFront は、ビューワー固有の広告コンテンツ URLs が含まれているため、以下の動作を適用し、パーソナライズされたマニフェストをキャッシュしません。これらの動作は、`/v1/*`パスパターンを持つすべてのリクエストに適用されます。これは、各ビューワーがパーソナライズされた広告挿入を含む一意のマニフェストを受け取る主要な MediaTailor 機能です。
+ **パスパターン:** `/v1/*` (標準の V1 MediaTailor リクエスト)

  このパターンに一致する URLsの例:
  + `https://your-distribution.cloudfront.net/v1/master/your-config/manifest.m3u8`
  + `https://your-distribution.cloudfront.net/v1/dash/your-config/manifest.mpd`
+ **オリジン:** `manifests.mediatailor.region.amazonaws.com`ドメインで作成したオリジン。

  これは、オリジンに関する前のセクションの例の **MediaTailorManifests** です。
+ **キャッシュポリシー:** `Managed-CachingDisabled`

  キャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドの[CachingDisabled](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-policy-caching-disabled)」を参照してください。
+ **オリジンリクエストポリシー:** `AllViewer`

  パーソナライズされたマニフェストの場合、 `AllViewer`ポリシーを使用して、動的コンテンツに必要なすべてのヘッダーを転送します。
+ **レスポンスヘッダーポリシー:** `Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドの[CORS-with-preflight-and-SecurityHeadersPolicy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)」を参照してください。

**Accept-Encoding ヘッダー**  
CDN はビューワーの `Accept-Encoding` ヘッダーを保持することをお勧めします。このヘッダーは、パーソナライズされたマニフェストの圧縮に関する指示を MediaTailor に与えます。

CloudFront では、`AllViewerAndCloudFrontHeaders`オリジンリクエストポリシーにビューワーからの `Accept-Encoding`ヘッダーのパススルーが含まれます。別の CDN を使用する場合は、このヘッダーが保持されていることを確認してください。

以下は、MediaTailor が `Accept-Encoding` ヘッダーを処理する方法です。
+ **レガシーデバイス:** gzip をサポートしていない古いスマートTVsは Accept-Encoding ヘッダーを送信しないため、MediaTailor は非圧縮マニフェストを返します
+ **最新のデバイス:** iPhones、Chrome ブラウザ、およびその他の最新のクライアントが Accept-Encoding ヘッダーを送信し、MediaTailor が配信前にマニフェストを圧縮できるようにします。

### 優先順位 3: サーバー側のビーコンパスの動作
<a name="cf-segment-path-behavior"></a>

この動作は、 のリダイレクトにつながる MediaTailor へのリクエストを処理します[サーバー側の追跡](ad-reporting-server-side.md)。これらのリクエストはビーコンの追跡に不可欠であるため、すべてのリクエストは MediaTailor によって処理される必要があります。CloudFront は、`/segment/*`パスパターンを持つすべてのリクエストに次の動作を適用します。
+ **パスパターン:** `/segment/*`

  このパターンに一致する URLsの例:
  + `https://your-distribution.cloudfront.net/segment/tracking-beacon-123`
  + `https://your-distribution.cloudfront.net/segment/ad-request-456.ts`
+ **オリジン:** `manifests.mediatailor.region.amazonaws.com`ドメインで作成したオリジン。

  これは、オリジンに関する前のセクションの例の **MediaTailorManifests** です。
+ **キャッシュポリシー:** `Managed-CachingDisabled`

  キャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドの[CachingDisabled](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-policy-caching-disabled)」を参照してください。
+ **オリジンリクエストポリシー:** `AllViewer`

  サーバー側のビーコンリクエストの場合、 `AllViewer`ポリシーを使用して、追跡に必要なすべてのヘッダーを転送します。これらのリクエストはキャッシュされないため、キャッシュポイズニングのリスクはありません。
+ **レスポンスヘッダーポリシー:** `Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドの[CORS-with-preflight-and-SecurityHeadersPolicy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)」を参照してください。

MediaTailor がこれらのリクエストを処理すると、実際のセグメントの場所を指すパスを含む 302 リダイレクトレスポンスが返されます。たとえば、 へのリクエストは、セグメントのオリジン`/tm/encoded-ad-segment.ts`で にリダイレクト`/segment/ad123.ts`される場合があります。

### 優先順位 4: コンテンツオリジンパスの動作
<a name="cf-default-behavior"></a>

リクエストパスが他のパターンのいずれとも一致しない場合、CloudFront はデフォルトの動作を適用します。この動作は、MediaTailor からの処理なしで、リクエストをコンテンツオリジンに直接送信します。これにより、必要に応じてコンテンツオリジン (MediaPackage V2 など) に直接アクセスできます。CloudFront は、以前のパスパターンを含まないすべてのリクエストに次の動作を適用します。
+ **パスパターン:** `(*)` 
+ **オリジン:** コンテンツオリジンのドメインで作成したオリジン。

  これは、オリジンに関する前のセクションの例の **ContentOrigin** です。
+ **キャッシュポリシー:** `Managed-CachingOptimized`

  CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドの[CachingOptimized](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)」を参照してください。サードパーティー CDN の 管理ポリシーからこれらの同じ設定を使用することもできます。
**注記**  
低レイテンシーの HLS 実装では、標準ポリシーの代わりに低レイテンシー HLS (LLH) ディレクティブでカスタムキャッシュ`CachingOptimized`ポリシーを使用することを検討してください。
+ **オリジンリクエストポリシー:** `None`
+ **レスポンスヘッダーポリシー:** `Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  デフォルトのコンテンツオリジン動作は通常、広告セグメント動作と同じ CORS キャッシュポイズニングリスクに直面しませんが、`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`レスポンスヘッダーポリシーを使用し、キャッシュキーに `Origin`ヘッダーを含めることをお勧めします。これにより、すべてのコンテンツタイプで一貫した CORS 処理が可能になり、ウェブベースのプレイヤーで発生する可能性のある再生の問題を防ぐことができます。

  コンテンツセグメントの場合、`Managed-CachingOptimized`キャッシュポリシーは優れたパフォーマンスを提供し、`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`レスポンスヘッダーポリシーは適切な CORS 処理を保証します。この組み合わせにより、CORS ヘッダーを必要とするウェブベースのプレイヤーとの互換性を維持しながら、効率的なキャッシュが可能になります。

  広告セグメントとコンテンツセグメントの両方に一貫した CORS 処理を適用すると、より信頼性の高い再生エクスペリエンスが得られ、トラブルシューティングが簡素化されます。適切な CORS 設定がないと、コンテンツと広告間の移行時にプレイヤーに一貫性のない動作が発生する可能性があります。

  レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドの[CORS-with-preflight-and-SecurityHeadersPolicy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)」を参照してください。