MediaTailor の本番稼働対応 CloudFront 設定 - AWS Elemental MediaTailor

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

MediaTailor の本番稼働対応 CloudFront 設定

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

この設定の目的

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

この設定を使用するタイミング

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

3 オリジンアーキテクチャ

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

特定のコンテンツオリジン要件に基づいて、オリジンリクエストポリシーを確認して調整します。この例では S3 オリジンポリシーを使用していますが、カスタムオリジンには異なるポリシーが必要になる場合があります。オリジンリクエストポリシーを選択するときは、次の要素を考慮してください。

  • S3 オリジン: Amazon S3 バケットManaged-CORS-S3Originに使用

  • カスタムオリジン: カスタム HTTP オリジンManaged-AllViewerAndCloudFrontHeaders-2022-6Managed-AllViewerまたは を使用する

  • MediaPackage オリジン: MediaPackage V2 エンドポイントManaged-CORS-S3Originに使用

Origins table showing ContentOrigin, MediaTailorSegments, and MediaTailorManifests with their respective details.

キャッシュ動作の優先順位と設定

MediaTailor では、さまざまなタイプのリクエストを適切に処理するために、特定のキャッシュ動作設定が必要です。CDNs処理し、最初の一致するパスパターンに動作を使用するため、キャッシュ動作の優先順位は重要です。この優先順位を理解することは、トラブルシューティングに不可欠です。

  • 優先順位 0: ほとんどの特定のパターン ( など/tm/*) が最初に評価されます

  • 優先順位が高い: より具体的なパターンが順番に評価される

  • デフォルトの動作: 他のパターンと一致しないすべてのリクエストをキャッチします

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

Table showing behaviors with path patterns, origins, and policies for different URL paths.

優先順位 0: 広告セグメントのパス動作

この動作は、セグメントパス動作からのリダイレクトされたリクエストを処理し、実際の広告セグメントを処理します。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

    CORS Managed-CachingOptimizedキャッシュポイズニングの問題を防ぐために、キャッシュキーにオリジンヘッダーを含めるようにキャッシュポリシーを設定する必要があります。キャッシュキーに Originヘッダーがない場合、次のシナリオが発生する可能性があります。

    1. Origin ヘッダーのないリクエストは CloudFront によって受信およびキャッシュされます

    2. Origin ヘッダーを含む後続のリクエストは、キャッシュされたレスポンス (CORS ヘッダーがない) を受け取ります。

    3. CORS ヘッダーがないため、ブラウザがレスポンスを拒否し、再生が失敗する

    CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドのCachingOptimized」を参照してください。サードパーティー CDN の 管理ポリシーから、これらの同じ設定を使用することもできます。

  • オリジンリクエストポリシー: Managed-CORS-S3Origin

    CloudFront マネージドオリジンリクエストポリシーの内容の詳細については、CloudFront ユーザーガイドのCORS-S3Origin」を参照してください。サードパーティー CDN の 管理ポリシーから、これらの同じ設定を使用することもできます。

  • レスポンスヘッダーポリシー: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    Managed-CORS-with-preflight-and-SecurityHeadersPolicy レスポンスヘッダーポリシーの使用は、CORS キャッシュポイズニングを防ぐために重要です。このポリシーにより、CloudFront がレスポンスに Access-Control-Allow-Originヘッダーを含めるようになります。これは、ウェブベースのプレイヤーがさまざまなオリジンから広告セグメントにアクセスするために必要です。

    レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドのCORS-with-preflight-and-SecurityHeadersPolicy」を参照してください。

これらの設定を他の CDNs

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

パスパターンマッチング

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

キャッシュキーの設定

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

ヘッダー転送

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

レスポンスヘッダー管理

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

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

優先順位 1: サーバーガイド広告挿入動作

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

  • パスパターン: /i-media/* (SGAI の iMedia パス)

    このパターンに一致する URLsの例:

    • https://your-distribution.cloudfront.net/i-media/your-config/manifest.m3u8

    • https://your-distribution.cloudfront.net/i-media/your-config/playlist.mpd

  • オリジン: manifests.mediatailor.region.amazonaws.comドメインで作成したオリジン。

    これは、オリジンに関する前のセクションの例の MediaTailorManifests です。

  • キャッシュポリシー: Managed-CachingOptimized

    CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドのCachingOptimized」を参照してください。サードパーティー CDN の 管理ポリシーから、これらの同じ設定を使用することもできます。

  • オリジンリクエストポリシー: Managed-CORS-S3Origin

    CloudFront マネージドオリジンリクエストポリシーの内容の詳細については、CloudFront ユーザーガイドのCORS-S3Origin」を参照してください。サードパーティー CDN の 管理ポリシーから、これらの同じ設定を使用することもできます。

  • レスポンスヘッダーポリシー: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドのCORS-with-preflight-and-SecurityHeadersPolicy」を参照してください。

優先順位 2: パーソナライズされたマニフェストの動作

この動作は、パーソナライズされたマニフェストリクエストを処理します。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」を参照してください。

  • オリジンリクエストポリシー: Managed-AllViewerAndCloudFrontHeaders-2022-6

    オリジンリクエストポリシーの内容の詳細については、CloudFront ユーザーガイドのAllViewerAndCloudFrontHeaders-2022-6」を参照してください。

  • レスポンスヘッダーポリシー: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドのCORS-with-preflight-and-SecurityHeadersPolicy」を参照してください。

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: サーバー側のビーコンパスの動作

この動作は、 のリダイレクトにつながる MediaTailor へのリクエストを処理しますサーバー側の追跡。これらのリクエストはビーコンを追跡するために不可欠であるため、すべてのリクエストは 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」を参照してください。

  • オリジンリクエストポリシー: Managed-AllViewerAndCloudFrontHeaders-2022-6

    オリジンリクエストポリシーの内容の詳細については、CloudFront ユーザーガイドのAllViewerAndCloudFrontHeaders-2022-6」を参照してください。

  • レスポンスヘッダーポリシー: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    レスポンスヘッダーポリシーに含まれる内容の詳細については、CloudFront ユーザーガイドのCORS-with-preflight-and-SecurityHeadersPolicy」を参照してください。

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

優先順位 4: コンテンツオリジンパスの動作

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

  • パスパターン: (*)

  • オリジン: コンテンツオリジンのドメインで作成したオリジン。

    これは、オリジンに関する前のセクションの例の ContentOrigin です。

  • キャッシュポリシー: Managed-CachingOptimized

    CloudFront マネージドキャッシュポリシーの内容の詳細については、CloudFront ユーザーガイドのCachingOptimized」を参照してください。サードパーティー CDN の 管理ポリシーから、これらの同じ設定を使用することもできます。

    注記

    低レイテンシーの HLS 実装では、標準ポリシーの代わりに低レイテンシー HLS (LLH) ディレクティブでカスタムキャッシュCachingOptimizedポリシーを使用することを検討してください。

  • オリジンリクエストポリシー: 適切なヘッダーとクエリ文字列パラメータをコンテンツオリジンに渡すように設定されています。利用可能なマネージドオリジンリクエストポリシーの詳細については、CF デベロッパーガイドの「マネージドオリジンリクエストポリシーを使用する」を参照してください。

  • レスポンスヘッダーポリシー: 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」を参照してください。