

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取
<a name="cdn-emp-caching"></a>

AWS Elemental MediaTailor 使用 AWS Elemental MediaPackage 做為內容原始伺服器時， 需要適當的內容交付網路 (CDN) 快取組態，才能獲得最佳效能。MediaPackage 提供特定的快取控制標頭，可告知內容交付網路快取不同類型的內容的時間長度。遵循這些建議可確保順暢播放和高效的內容交付。

本主題特別著重於最佳化快取行為，以最大化效能並降低成本。在實作進階快取最佳化之前，請確定您已完成基本的內容交付網路整合設定。如果您尚未設定基本整合，請從 開始[整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。

## MediaPackage 快取控制標頭
<a name="emp-cache-control-headers"></a>

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-optimize-caching.md)。

## 設定 CDN 快取政策
<a name="cdn-cache-policy-configuration"></a>

適當的快取政策組態對於最佳效能和成本效益至關重要。不同類型的內容 （資訊清單、區段、初始化檔案） 有不同的快取需求。使用個別快取行為可讓您針對每個內容類型最佳化快取、改善快取命中率並減少原始伺服器負載。如果沒有適當的快取政策，您可能會遇到不必要的原始伺服器請求、成本增加和播放效能不佳。

若要正確遵守 MediaPackage 快取控制標頭並最佳化快取：

1. 在 CloudFront 主控台中開啟 CloudFront 分佈設定。

1. 為不同的內容類型建立個別的快取行為：
   + 資訊清單請求 (\$1.m3u8、\$1.mpd)
   + 媒體區段 (\$1.ts、\$1.mp4、\$1.m4s)
   + 初始化區段

1. 對於每個快取行為，請使用下列設定建立或選取快取政策：
   + 啟用「原始快取控制標頭」選項
   + 設定「原始請求政策」以轉送必要的標頭
   + 根據內容類型設定查詢字串轉送

### 資訊清單快取行為
<a name="manifest-cache-behavior"></a>

對於資訊清單請求 (\$1.m3u8、\$1.mpd)：
+ **路徑模式**：\$1.m3u8 和 \$1.mpd
+ **快取政策**：榮譽原始伺服器快取控制標頭
+ **查詢字串**：轉送特定參數 （請參閱 [最佳化查詢字串轉送](#cdn-query-string-optimization))
+ **標頭**：轉送所有標頭 （如需最低需求，請參閱 [MediaTailor CDN 整合所需的標頭](cdn-configuration.md#cdn-required-headers))

### 媒體區段快取行為
<a name="segment-cache-behavior"></a>

對於媒體區段 (\$1.ts、\$1.mp4、\$1.m4s)：
+ **路徑模式**：\$1.ts、\$1.mp4、\$1.m4s
+ **快取政策**：榮譽原始伺服器快取控制標頭 (14 天 TTL)
+ **查詢字串**：無 （區段不使用查詢參數）
+ **壓縮**：啟用 以提高交付效能

## 最佳化查詢字串轉送
<a name="cdn-query-string-optimization"></a>

查詢字串最佳化對於快取效率至關重要，因為不必要的查詢參數會為相同內容建立多個快取變化。每個唯一的查詢參數組合都會建立個別的快取項目，以減少快取命中率並增加原始伺服器請求。透過僅轉送 MediaPackage 實際使用的查詢字串，您可以最大限度地提高快取效率，同時保持完整的功能。

將 CDN 設定為僅轉送 MediaPackage 使用的查詢字串，以提高快取效率：

**基本查詢字串**  
`start` 和 `end` - 用於時間轉移檢視時段  
`time_delay` - 用於在資訊清單內容上套用時間延遲  
`_HLS_msn`、 `_HLS_m`和 `_HLS_part` - 適用於 LL-HLS 播放請求

**功能特定的查詢字串**  
`aws.manifestfilter` - 用於[資訊清單篩選](cdn-emp-manifest-filtering.md)

**重要**  
請勿在快取金鑰中包含任何其他查詢字串。MediaPackage 會忽略無法辨識的參數，並透過建立不必要的快取變化來降低快取效率。

## 效能最佳化技術
<a name="cache-performance-optimization"></a>

這些最佳化是在 CDN （例如 CloudFront) 上設定，而不是在 MediaPackage 或 MediaTailor 中設定。實作這些額外的最佳化，以最大化快取效能：

### 原始伺服器遮罩
<a name="origin-shield-configuration"></a>

原始伺服器遮罩可在 CDN 節點和 MediaPackage 端點之間提供額外的快取層。這可減少到達 MediaPackage 端點的請求數量，這可以改善效能並降低成本，尤其是在流量激增期間或快取命中率低於最佳時。原始伺服器遮罩特別適用於即時串流，其中多個節點可能會同時請求相同的內容。

啟用原始伺服器遮罩以減少 MediaPackage 端點的負載：

1. 在您的 CloudFront 分佈中，為您的 MediaPackage 原始伺服器啟用 Origin Shield。

1. 選取 MediaPackage 端點附近的原始伺服器遮罩區域。

1. 這會建立額外的快取層，以減少對 MediaPackage 的請求。

### 壓縮組態
<a name="compression-settings"></a>

針對文字型回應啟用壓縮：
+ 啟用資訊清單檔案的壓縮 (\$1.m3u8、\$1.mpd)
+ 請勿壓縮媒體區段 （已壓縮）
+ 確保所有標頭都轉送至 MediaPackage （如需最低需求，請參閱 [MediaTailor CDN 整合所需的標頭](cdn-configuration.md#cdn-required-headers))

## 監控快取效能
<a name="cache-monitoring-metrics"></a>

追蹤這些關鍵指標以確保最佳快取效能：

**快取命中率**  
目標：媒體客群為 90% 或更高，資訊清單為 70% 或更高  
低比率可能表示不正確的 TTL 設定或不必要的查詢參數

**原始請求磁碟區**  
監控到達 MediaPackage 端點的請求  
大量可能表示快取問題

**快取金鑰變化**  
檢閱快取金鑰模式以識別不必要的變化  
太多變化會降低快取效率

實作這些快取最佳化之後，請設定監控以追蹤其有效性。如需監控快取命中率、原始伺服器請求模式和其他關鍵效能指標的指引，請參閱 [監控 MediaPackage、CDN 和 MediaTailor 整合的效能](cdn-emp-monitoring.md)。如果您發現快取效能不佳或未預期的原始伺服器請求，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md) 進行故障診斷步驟。