

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

# 設定與 MediaTailor 的 CDN 整合
<a name="cdn-configuration"></a>

本節提供 AWS Elemental MediaTailor 與內容交付網路 (CDN) 整合的指引。

有效的 CDN 與 MediaTailor 整合對於透過大規模個人化廣告提供高品質串流體驗至關重要。本指南會逐步引導您完成設定、設定和最佳化 CDN 整合的完整程序。

如需詳細資訊，請參閱下列連結：
+ 如需透過 CDNs傳遞查詢參數以進行授權和廣告目標的資訊，請參閱 [MediaTailor 資訊清單查詢參數](manifest-query-parameters.md)。
+ 如需使用動態變數和組態別名的進階路由，請參閱 [ADS 請求的 MediaTailor 動態廣告變數](variables.md)。
+ 如需建立 MediaTailor 組態的資訊，請參閱 [使用 AWS Elemental MediaTailor 插入廣告](configurations.md)。
+ 如需有關建立 CloudFront 分佈的資訊，請參閱CloudFront開發人員指南》中的[建立分佈](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)。

為了確保本指南的清晰度，下列術語用於描述不同類型的資訊清單：
+ **HLS 資訊清單**：
  + *多變體播放清單*：最上層資訊清單，其中包含媒體播放清單的連結
  + *媒體播放清單*：包含內容區段連結的第二層資訊清單
+ **DASH 資訊清單**：
  + *MPD （媒體簡報描述）*：DASH 資訊清單的標準術語

將 MediaTailor 與 CDN 整合可提供下列優點：
+ 降低瀏覽者的延遲
+ 改善高流量事件的可擴展性
+ 透過備援交付路徑增強可靠性
+ 透過減少原始伺服器流量來最佳化成本
+ 更好的 DDoS 攻擊防護

## CDN 整合元件和需求
<a name="cdn-integration-components"></a>

與 MediaTailor 成功整合 CDN 涉及設定下列關鍵元件：

**CDN 路由行為**  
決定不同類型的請求 （資訊清單、內容區段、廣告區段） 如何透過 CDN 路由的規則。

**MediaTailor 中的 CDN 映射**  
MediaTailor 中的組態，可確保資訊清單參考您的 CDN 網域，而不是直接參考原始伺服器。

**安全性設定**  
保護您的內容和基礎設施的組態，包括傳輸安全性、存取控制和監控。

**測試和驗證**  
在部署到生產環境之前，驗證 CDN 整合是否正常運作的程序。

## CDN 整合的先決條件
<a name="prerequisites"></a>

在設定 CDN 整合之前，請確定您有下列項目：

1. 具有下列設定的 MediaTailor 組態：
   + 您的內容原始伺服器做為**內容來源**
   + 您的 ADS 做為**廣告決策伺服器**

   您也需要在 CDN 整合步驟中使用原始伺服器和 ADS URLs。

1. 存取 CDN 的組態界面

1. 了解 CDN 的行為、規則和快取設定的特定術語

1. 了解您的內容結構，包括用於客群的副檔名 （例如 .ts、.mp4 或 .m4)

## CDN 整合設定步驟
<a name="cdn-integration-workflow"></a>

將 MediaTailor 與 CDN 整合的程序遵循下列高階步驟：

1. **設定 CDN 路由行為** - 設定您的 CDN 以適當路由不同類型的請求。

1. 在** MediaTailor 中設定 CDN 映射** - 更新您的 MediaTailor 組態以使用您的 CDN 網域名稱。

1. **實作安全最佳實務** - 設定安全設定來保護您的內容和基礎設施。

1. **測試您的整合** - 驗證您的 CDN 整合是否正常運作。

## MediaTailor CDN 整合所需的標頭
<a name="cdn-required-headers"></a>

若要讓 MediaTailor 正確搭配 CDN 運作，您必須設定 CDN 以轉送特定的 HTTP 標頭。這些標頭對於適當的功能至關重要，包括壓縮、裝置偵測、廣告個人化和地理目標。

設定 CDN 將下列標頭轉送至 MediaTailor：

**`Accept-Encoding`**  
**目的**：壓縮功能的必要項目  
**詳細資訊**：此標頭會告知 MediaTailor 用戶端支援哪些壓縮方法。MediaTailor 會盡可能使用此資訊來壓縮資訊清單，減少頻寬用量並改善效能。不支援壓縮的舊版裝置不會傳送此標頭，MediaTailor 會傳回未壓縮的資訊清單。

**`User-Agent`**  
**目的**：裝置偵測和廣告個人化的必要項目  
**詳細資訊**：MediaTailor 會分析 User-Agent 標頭，以識別用戶端裝置類型、瀏覽器和功能。此資訊用於廣告目標、裝置特定最佳化，並確保與不同播放用戶端的相容性。

**`Host`**  
**目的**：正確請求路由的必要項目  
**詳細資訊**： `Host`標頭可確保請求路由到正確的 MediaTailor 端點。這在多租用戶環境和使用自訂網域組態時特別重要。  
許多 CDNs，包括 Amazon CloudFront，預設不會轉送 `Host`標頭。對於 CloudFront 使用者：請參閱 [設定快取行為](cloudfront-basic-setup.md#cf-cache-behaviors) 以取得組態指示。

**`X-Forwarded-For`**  
**目的**：用戶端 IP 偵測和地理目標設定的必要項目  
**詳細資訊**：當請求通過您的 CDN 時，此標頭會保留原始用戶端 IP 地址。MediaTailor 會將此資訊用於地理廣告目標、分析和區域內容限制合規。

**重要**  
完整 MediaTailor 功能需要這四個標頭。缺少任何這些標頭都可能導致功能降低，包括：  
無法壓縮資訊清單 （缺少接受編碼）
廣告目標和裝置相容性問題不佳 （缺少 User-Agent)
請求路由失敗 （缺少主機）
不正確的地理目標和分析 （缺少 X-Forwarded-For)

如需 CDN 特定的組態指示，請參閱參考此標頭清單的路由行為和快取區段。

下列主題提供 CDN 整合各方面的詳細說明。

**Topics**
+ [CDN 整合元件和需求](#cdn-integration-components)
+ [CDN 整合的先決條件](#prerequisites)
+ [CDN 整合設定步驟](#cdn-integration-workflow)
+ [MediaTailor CDN 整合所需的標頭](#cdn-required-headers)
+ [設定 MediaTailor 的 CDN 路由行為](cdn-routing-behaviors.md)
+ [在 MediaTailor 中設定 CDN 映射](cdn-mapping-mediatailor.md)
+ [MediaTailor 的 CDN 整合安全最佳實務](cdn-security-best-practices.md)

# 設定 MediaTailor 的 CDN 路由行為
<a name="cdn-routing-behaviors"></a>

本節說明如何設定內容交付網路 (CDN)，以適當路由不同類型的請求以進行 AWS Elemental MediaTailor 整合。適當的路由組態可確保正確處理資訊清單請求、內容區段和廣告區段。

設定 CDN 路由行為是建立高效內容交付管道的關鍵步驟。透過為不同的內容類型設定特定路由規則，您可以最佳化快取、改善交付效能，並確保個人化廣告插入正常運作。

如需使用動態變數和組態別名的進階路由案例，請參閱 [ADS 請求的 MediaTailor 動態廣告變數](variables.md)。如需跨 CDN 路由保留查詢參數的詳細資訊，請參閱 [MediaTailor 資訊清單查詢參數](manifest-query-parameters.md)。

**重要**  
如果無法在快取物件中或對檢視器的 CDN 回應中包含 CORS 標頭，可能會導致播放失敗。

## CDN 路由行為組態
<a name="cdn-routing-configuration"></a>

設定 CDN 以適當地路由不同類型的請求。

### 內容區段路由
<a name="content-segment-routing"></a>

內容區段路由會將實際內容區段的請求導向原始伺服器。如同廣告客群路由，內容客群路由也需要適當的 CORS 組態，以確保在 Web 型玩家中順暢播放。

如需詳細的組態指引，請參閱 中的 CloudFront 範例[優先順序 4：內容原始伺服器路徑行為](cf-comprehensive-configuration.md#cf-default-behavior)。此範例提供您應針對 CloudFront 遵循或適應其他 CDNs的特定設定。

內容區段路由的關鍵組態需求包括：
+ 使用符合您內容區段副檔名的路徑模式 （例如 `*.ts`、 `*.mp4`或 `*.m4s`)
+ 將請求路由到您的內容原始伺服器 （例如 Amazon S3 儲存貯體或 MediaPackage 端點）
+ 為了獲得最佳快取命中率，請僅包含查詢字串參數，這些參數會導致原始伺服器修改快取金鑰中的回應並轉送原始伺服器請求 
+ 套用具有大於 24 小時 TTL 值的適當快取政策
+ 將 CORS 回應標頭包含到您的檢視器

### 廣告客群路由
<a name="ad-segment-routing"></a>

廣告客群路由對於向瀏覽者提供個人化廣告至關重要。設定廣告客群路由時，您必須實作適當的 CORS （跨來源資源共用） 處理，以防止可能導致 Web 型播放器播放失敗的問題。

如需詳細的組態指引，請參閱 中的 CloudFront 範例[優先順序 0：廣告客群路徑行為](cf-comprehensive-configuration.md#cf-transcode-manage-behavior)。此範例提供您應針對 CloudFront 遵循或適應其他 CDNs的特定設定。

廣告客群路由的關鍵組態需求包括：
+ `/tm/*` 使用專門針對 MediaTailor 廣告客群的路徑模式
+ 將請求路由至 `segments.mediatailor.region.amazonaws.com`
+ 為了獲得最佳快取命中率，請勿在快取金鑰或原始伺服器請求中包含任何檢視器請求標頭、Cookie 或查詢字串參數
+ 套用具有大於 24 小時 TTL 值的適當快取政策
+ 將 CORS 回應標頭包含到您的檢視器

### 資訊清單請求路由
<a name="manifest-routing"></a>

若要將多變體播放清單、媒體播放清單和 MPD 請求路由至 MediaTailor，請使用下列一般設定。如需 CloudFront 組態，請參閱 [設定資訊清單快取行為](cloudfront-basic-setup.md#cf-manifest-behavior)。

1. 在 CDN 組態界面中，為不同的資訊清單類型建立行為。

1. 設定路徑模式以符合多變體播放清單和媒體播放清單副檔名 (`*.m3u8`HLS 為 ) 和 MPD 副檔名 (`*.mpd` DASH 為 )。

1. 在 CDN 中設定原始伺服器設定，以指向 MediaTailor 組態端點。

1. 對於廣告插入，請停用個人化多變體播放清單、媒體播放清單和 MPDs快取。由於廣告插入提供個人化的資訊清單，因此您的 CDN 不應快取它們。如果與預期不同的播放裝置收到快取播放清單或 MPD，可能會導致播放或追蹤發生問題。如需完整的快取指引，包括所有內容類型的 TTL 建議，請參閱 [CDN 和 MediaTailor 整合的快取最佳化](cdn-optimize-caching.md)。

1. 設定所有標頭的標頭轉送。如需最低需求，請參閱 [MediaTailor CDN 整合所需的標頭](cdn-configuration.md#cdn-required-headers)。

1. 啟用查詢字串轉送以傳遞廣告目標參數。

------
#### [ HLS multivariant playlist ]

HLS 多變量播放清單請求遵循下列格式：

```
https://<playback-endpoint>/v1/index/<hashed-account-id>/<origin-id>/<index>.m3u8
```

範例：

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/a1bc06b59e9a570b3b6b886a763d15814a86f0bb/Demo/assetId.m3u8
```

------
#### [ HLS media playlist ]

HLS 媒體播放清單請求遵循下列格式：

```
https://<playback-endpoint>/v1/manifest/<hashed-account-id>/<session-id>/<manifestNumber>.m3u8
```

對 的玩家請求`https://mediatailor.us-west-2.amazonaws.com/v1/session/configuration/endpoint`會根據請求`*.m3u8`中的關鍵字`https://CDN_Hostname/some/path/asset.m3u8`路由到 MediaTailor 路徑。

範例：

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/manifest/a1bc06b59e9a570b3b6b886a763d15814a86f0bb/c240ea66-9b07-4770-8ef9-7d16d916b407/0.m3u8
```

------
#### [ DASH MPD ]

DASH MPD 請求遵循下列格式：

```
https://<playback-endpoint>/v1/dash/<hashed-account-id>/<origin-id>/<assetName>.mpd
```

對 的玩家請求`https://mediatailor.us-west-2.amazonaws.com/v1/dash/configuration/endpoint`會根據請求`*.mpd`中的關鍵字`https://CDN_Hostname/some/path/asset.mpd`路由到 MediaTailor 路徑。

範例：

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/a1bc06b59e9a570b3b6b886a763d15814a86f0bb/Demo/0.mpd
```

------

## CDN 路由最佳實務
<a name="cdn-routing-best-practices"></a>

設定 CDN 路由行為時，請遵循下列最佳實務以確保最佳效能和可靠性：

**使用特定路徑模式**  
建立符合您內容結構的特定路徑模式，以確保適當的路由。

**排定行為順序的優先順序**  
在大多數 CDNs中，行為會依序評估。將更具體的行為放在更一般的行為之前。

**測試行為模式**  
在部署到生產環境之前，請確認您的路徑模式正確符合預期的請求。

**記錄您的組態**  
維護 CDN 路由行為的文件，以利故障診斷和未來的更新。

## 後續步驟
<a name="cdn-routing-next-steps"></a>

設定 CDN 路由行為後，下一步是在 MediaTailor 中設定 CDN 映射。如需說明，請參閱 [在 MediaTailor 中設定 CDN 映射](cdn-mapping-mediatailor.md)。

# 在 MediaTailor 中設定 CDN 映射
<a name="cdn-mapping-mediatailor"></a>

本節說明如何設定 AWS Elemental MediaTailor 以使用您的內容交付網路 (CDN) 網域名稱。設定 CDN 路由行為之後，您需要更新 MediaTailor 組態，以確保資訊清單參考您的 CDN 網域，而不是直接參考原始伺服器。

在 MediaTailor 中設定 CDN 映射可確保資訊清單中的所有內容和廣告區段 URLs都指向您的 CDN，而不是直接指向原始伺服器。此步驟對於建立完整的 CDN 交付鏈和最大化 CDN 整合的優勢至關重要。

## MediaTailor 中的 CDN 映射組態
<a name="mediatailor-configuration"></a>

設定 CDN 路由行為後，將 MediaTailor 設定為使用您的 CDN 網域名稱：

1. 開啟 [MediaTailor 主控台](https://console.aws.amazon.com/mediatailor/home)。

1. 選取您要更新的組態。

1. 在 **CDN 組態**的**進階設定**區段中，在 CDN **內容區段字首欄位中輸入您的 CDN** 網域名稱。

1. 如果您為廣告客群使用單獨的 CDN 網域，請在 **CDN 廣告客群字首**欄位中輸入它。

1. 儲存您的變更。

此組態可確保 MediaTailor 會產生資訊清單，其中包含指向 CDN 而非直接指向原始伺服器或廣告區段儲存體的 URLs。

### 了解基本 URL 行為
<a name="base-url-behavior"></a>

MediaTailor 會根據 CDN 字首組態，決定資訊清單中的基本 URLs：
+ **CDN 廣告區段字首已設定**：廣告區段使用 CDN 字首做為基本 URL。
+ **CDN 廣告區段字首未設定**：廣告區段使用直接 MediaTailor 位置作為基本 URL。
+ **CDN 內容區段字首已設定**：內容區段使用 CDN 字首做為基本 URL。
+ **未設定 CDN 內容區段字首**：內容區段參考原始內容原始伺服器。

#### DASH BaseURL 處理
<a name="dash-baseurl-handling"></a>

對於 DASH 資訊清單，MediaTailor 會以不同的方式管理內容和廣告區段`BaseURL`的設定：

**內容區段：**
+ **使用 CDN 內容區段字首**：MediaTailor 會使用您指定的字首在`MPD`關卡`BaseURL`上設定剛好一個。
+ **沒有 CDN 內容區段字首**：MediaTailor 會保留原始伺服器資訊清單中的現有`BaseURL`設定，如果不存在，則根據原始伺服器 `MPD` URL 新增設定。

**廣告客群：**
+ **使用 CDN 廣告區段字首**：每個廣告期間只會`BaseURL`使用設定的字首取得一個。
+ **沒有 CDN 廣告區段字首**：每個廣告期間只會一個`BaseURL`指向 MediaTailor 廣告內容伺服器。

**Example CDN 映射範例**  
如果您的內容原始伺服器是 `http://origin.com/contentpath/`，而 CDN 內容區段字首是 `https://cdn.example.com/`，則通常參考為 的內容區段`http://origin.com/contentpath/subdir/content.ts`會在資訊清單中顯示為 `https://cdn.example.com/subdir/content.ts`。

## 重要考量
<a name="cdn-mapping-considerations"></a>

在 MediaTailor 中設定 CDN 映射時，請記住下列重要考量事項：

**針對 CDN 字首使用 HTTPS**  
一律為您的 CDN 字首使用 HTTPS URLs，以確保安全的內容交付。

**比對 CDN 行為路徑**  
請確定您在 MediaTailor 中設定的 CDN 字首符合您在 CDN 行為中設定的路徑模式。

**考慮區域 CDNs**  
如果您針對不同區域使用不同的 CDN 網域，則需要為每個區域建立個別的 MediaTailor 組態。

**驗證網域所有權**  
請確定您能夠控制您在 MediaTailor 中設定的 CDN 網域。

## 驗證 CDN 映射組態
<a name="cdn-mapping-verification"></a>

在 MediaTailor 中設定 CDN 映射之後，請確認您的組態正常運作：

1. 透過 CDN 請求資訊清單。

1. 檢查資訊清單內容，以確認區段 URLs參考您的 CDN 網域。

1. 檢查資訊清單中的內容區段 URLs是否指向您的 CDN 網域。

1. 檢查資訊清單中的廣告區段 URLs是否指向您的 CDN 網域。

如需完整的測試和驗證程序，請參閱 [CDN 和 MediaTailor 整合的測試和驗證](cdn-integration-testing.md)。

## 後續步驟
<a name="cdn-mapping-next-steps"></a>

在 MediaTailor 中設定 CDN 映射後，下一步是實作 CDN 整合的安全最佳實務。如需說明，請參閱 [MediaTailor 的 CDN 整合安全最佳實務](cdn-security-best-practices.md)。

# MediaTailor 的 CDN 整合安全最佳實務
<a name="cdn-security-best-practices"></a>

本節說明如何實作 AWS Elemental MediaTailor 內容交付網路 (CDN) 整合的安全最佳實務。適當的安全組態有助於保護您的內容和基礎設施免於未經授權的存取和潛在的威脅。

保護您的 CDN 整合對於保護您的內容、防止未經授權的存取，以及確保符合安全要求至關重要。實作這些最佳實務有助於為您的串流工作流程建立健全的安全狀態。

## CDN 安全組態
<a name="cdn-security-settings"></a>

在設定 CDN 路由和快取設定之前，請實作這些安全最佳實務來保護您的內容和基礎設施：

### 傳輸安全性
<a name="transport-security"></a>

MediaTailor 僅使用 HTTPS 進行所有通訊，不允許 HTTP 連線。若要確保串流工作流程中所有元件之間的安全通訊，請完成下列步驟：

1. 針對 CDN 和 MediaTailor 端點之間的所有通訊設定 HTTPS。MediaTailor 需要 HTTPS 且不接受 HTTP 連線。

1. 針對所有 HTTPS 連線使用 TLS 1.2 或更新版本。

1. 設定您的 CDN 以強制執行來自檢視器的僅限 HTTPS 連線。

### 存取控制
<a name="access-control"></a>

若要保護您的內容和基礎設施免於未經授權的存取，請實作下列存取控制：

1. 如果您需要限制特定區域的內容存取，請設定地理限制設定。

1. 針對需要檢視器身分驗證的內容，實作簽章URLs 或簽章的 Cookie。

1. 為 CDN 組態的管理存取設定 IP 型允許清單。

### 安全監控
<a name="security-monitoring"></a>

若要有效偵測和回應安全事件，請實作下列監控實務：

1. 為您的 CDN 分佈啟用存取記錄。

1. 設定異常流量模式或存取嘗試的提醒。

1. 定期檢閱安全組態並視需要更新。

## 進階安全功能
<a name="advanced-security-features"></a>

下列進階安全功能為您的 CDN 整合提供增強型保護：

**Web Application Firewall (WAF)**  
如果您的 CDN 支援 WAF 功能，請將其設定為防止常見的 Web 漏洞和攻擊。

**DDoS 保護**  
啟用 CDN 提供的 DDoS 保護功能，以緩解分散式denial-of-service攻擊。

**原始存取控制**  
將原始伺服器設定為僅接受來自 CDN 的請求，以防止直接存取嘗試。

**內容加密**  
對於高度敏感的內容，請考慮實作傳輸安全性以外的其他加密機制。

## 後續步驟
<a name="security-best-practices-next-steps"></a>

實作安全最佳實務後，下一步是測試和疑難排解 CDN 整合。如需完整的測試和故障診斷說明[故障診斷 CDN 整合](cdn-troubleshooting.md)，請參閱 。