本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
最佳化 MediaTailor 和 MediaPackage 內容交付的 CDN 快取
AWS Elemental MediaTailor 使用 AWS Elemental MediaPackage 做為內容原始伺服器時, 需要適當的內容交付網路 (CDN) 快取組態,才能獲得最佳效能。MediaPackage 提供特定的快取控制標頭,可告知內容交付網路快取不同類型的內容的時間長度。遵循這些建議可確保順暢播放和高效的內容交付。
本主題特別著重於最佳化快取行為,以最大化效能並降低成本。在實作進階快取最佳化之前,請確定您已完成基本的內容交付網路整合設定。如果您尚未設定基本整合,請從 開始整合 MediaTailor 與 MediaPackage 和 CDN 。
MediaPackage 快取控制標頭
MediaPackage 會為不同的內容類型設定特定的 TTL 值,以最佳化快取行為:
- 多變體播放清單 (HLS 和 LL-HLS)
-
TTL:媒體區段的一半持續時間
原因:這些播放清單會隨著新客群可用而變更,因此需要經常更新
- 媒體播放清單 (一般 HLS)
-
TTL:媒體區段的一半持續時間
原因:與多變量播放清單類似,這些更新會隨著內容進行
- 媒體播放清單 (LL-HLS)
-
TTL:1 秒
原因:低延遲串流需要非常頻繁的更新
- TS 媒體區段和初始化區段
-
TTL:1209600 秒 (14 天)
原因:媒體區段一旦建立就不會變更,因此可以長時間快取
- CMAF 媒體區段和初始化區段
-
TTL:1209600 秒 (14 天)
原因:與 TS 區段一樣,這些區段在建立後是不可變的
如需所有 MediaTailor 工作流程和其他快取最佳化策略的完整 TTL 建議,請參閱 CDN 和 MediaTailor 整合的快取最佳化。
設定 CDN 快取政策
適當的快取政策組態對於最佳效能和成本效益至關重要。不同類型的內容 (資訊清單、區段、初始化檔案) 有不同的快取需求。使用個別快取行為可讓您針對每個內容類型最佳化快取、改善快取命中率並減少原始伺服器負載。如果沒有適當的快取政策,您可能會遇到不必要的原始伺服器請求、成本增加和播放效能不佳。
若要正確遵守 MediaPackage 快取控制標頭並最佳化快取:
-
在 CloudFront 主控台中開啟 CloudFront 分佈設定。
-
為不同的內容類型建立個別的快取行為:
-
資訊清單請求 (*.m3u8、*.mpd)
-
媒體區段 (*.ts、*.mp4、*.m4s)
-
初始化區段
-
-
對於每個快取行為,請使用下列設定建立或選取快取政策:
-
啟用「原始快取控制標頭」選項
-
設定「原始請求政策」以轉送必要的標頭
-
根據內容類型設定查詢字串轉送
-
資訊清單快取行為
對於資訊清單請求 (*.m3u8、*.mpd):
-
路徑模式:*.m3u8 和 *.mpd
-
快取政策:榮譽原始伺服器快取控制標頭
-
查詢字串:轉送特定參數 (請參閱 最佳化查詢字串轉送)
-
標頭:轉送所有標頭 (如需最低需求,請參閱 MediaTailor CDN 整合所需的標頭)
媒體區段快取行為
對於媒體區段 (*.ts、*.mp4、*.m4s):
-
路徑模式:*.ts、*.mp4、*.m4s
-
快取政策:榮譽原始伺服器快取控制標頭 (14 天 TTL)
-
查詢字串:無 (區段不使用查詢參數)
-
壓縮:啟用 以提高交付效能
最佳化查詢字串轉送
查詢字串最佳化對於快取效率至關重要,因為不必要的查詢參數會為相同內容建立多個快取變化。每個唯一的查詢參數組合都會建立個別的快取項目,以減少快取命中率並增加原始伺服器請求。透過僅轉送 MediaPackage 實際使用的查詢字串,您可以最大限度地提高快取效率,同時保持完整的功能。
將 CDN 設定為僅轉送 MediaPackage 使用的查詢字串,以提高快取效率:
- 基本查詢字串
-
start
和end
- 用於時間轉移檢視時段time_delay
- 用於在資訊清單內容上套用時間延遲_HLS_msn
、_HLS_m
和_HLS_part
- 適用於 LL-HLS 播放請求 - 功能特定的查詢字串
-
aws.manifestfilter
- 用於資訊清單篩選
重要
請勿在快取金鑰中包含任何其他查詢字串。MediaPackage 會忽略無法辨識的參數,並透過建立不必要的快取變化來降低快取效率。
效能最佳化技術
這些最佳化是在 CDN (例如 CloudFront) 上設定,而不是在 MediaPackage 或 MediaTailor 中設定。實作這些額外的最佳化,以最大化快取效能:
原始伺服器遮罩
原始伺服器遮罩可在 CDN 節點和 MediaPackage 端點之間提供額外的快取層。這可減少到達 MediaPackage 端點的請求數量,這可以改善效能並降低成本,尤其是在流量激增或快取命中率低於最佳時。原始伺服器遮罩特別適用於即時串流,其中多個節點可能會同時請求相同的內容。
啟用原始伺服器遮罩以減少 MediaPackage 端點的負載:
-
在您的 CloudFront 分佈中,為您的 MediaPackage 原始伺服器啟用 Origin Shield。
-
選取 MediaPackage 端點附近的原始伺服器遮罩區域。
-
這會建立額外的快取層,以減少對 MediaPackage 的請求。
壓縮組態
啟用文字型回應的壓縮:
-
啟用資訊清單檔案的壓縮 (*.m3u8、*.mpd)
-
請勿壓縮媒體區段 (已壓縮)
-
確保所有標頭都轉送到 MediaPackage (如需最低需求,請參閱 MediaTailor CDN 整合所需的標頭)
監控快取效能
追蹤這些關鍵指標以確保最佳快取效能:
- 快取命中率
-
目標:媒體區段為 90% 或更高,資訊清單為 70% 或更高
低比率可能表示不正確的 TTL 設定或不必要的查詢參數
- 原始請求磁碟區
-
監控到達 MediaPackage 端點的請求
大量可能表示快取問題
- 快取金鑰變化
-
檢閱快取金鑰模式以識別不必要的變化
太多變化會降低快取效率
實作這些快取最佳化之後,請設定監控以追蹤其有效性。如需監控快取命中率、原始伺服器請求模式和其他關鍵效能指標的指引,請參閱 監控 MediaPackage、CDN 和 MediaTailor 整合的效能。如果您發現快取效能不佳或未預期的原始伺服器請求,請參閱 針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷 以取得疑難排解步驟。