本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 CloudFront 功能最佳化 MediaTailor 效能
AWS Elemental MediaTailor 使用 Amazon CloudFront 的效能可以透過基本組態以外的其他功能進行增強。使用 MediaTailor 設定基本 CloudFront 組態之後,您可以實作其他功能來增強效能、可靠性和自訂選項。這些最佳化有助於提供更好的檢視體驗。它們也會降低成本和原始負載。
使用 Origin Shield 減少原始伺服器負載
Origin Shield 在 CloudFront 節點和原始伺服器之間新增快取層。此功能對於即時串流和熱門 VOD 內容非常有用。當許多瀏覽者同時請求相同的內容時,這很有幫助。
透過合併來自多個節點的請求,Origin Shield 可減少 MediaTailor 和內容原始伺服器的負載。
為您的 MediaTailor 原始伺服器啟用 Origin Shield
-
開啟 CloudFront 主控台並導覽至您的分佈。
-
選取指向 MediaTailor 播放組態的原始伺服器。
-
在 Origin Shield 下,選取是。
-
從下拉式選單中,選取最接近 MediaTailor 端點 AWS 的區域。
-
儲存您的變更。
對於高流量事件,Origin Shield 可大幅降低原始伺服器的請求負載並改善可靠性。如需詳細說明,請參閱 CloudFront 開發人員指南中的啟用 Origin Shield。
使用 CloudFront Functions 自訂內容交付
CloudFront Functions 可讓您在邊緣執行輕量型 JavaScript 程式碼,以修改檢視器請求和回應。您可以使用這些函數進行簡單的自訂,例如 URL 修改、標頭操作或基本身分驗證。對於 MediaTailor 工作流程,Functions 可協助處理不需要複雜處理的任務。
CloudFront Functions 提供輕量的方式來自訂邊緣的內容交付。以下是為 MediaTailor 整合實作它們的方法:
實作 MediaTailor 的 CloudFront 函數
-
在 CloudFront 主控台中,導覽至函數。
-
建立新的 函數,然後選取適當的用途:
-
URL 操作 - 在多變體播放清單、媒體播放清單和 MPD 請求 URLs到達 MediaTailor 之前進行修改
-
標頭操作 - 新增或修改請求標頭
-
簡單身分驗證 - 驗證字符或查詢參數
-
-
撰寫您的 JavaScript 函數程式碼。
-
使用 MediaTailor 請求範例測試您的函數。
-
發佈函數並將其與分佈的快取行為建立關聯。
範例 用於 URL 標準化的 CloudFront 函數範例
function handler(event) { var request = event.request; var uri = request.uri; // Normalize URLs to lowercase to improve cache hit ratio if (uri.includes('.m3u8') || uri.includes('.mpd')) { request.uri = uri.toLowerCase(); } return request; }
如需詳細資訊和程式碼範例,請參閱 CloudFront 開發人員指南中的使用 CloudFront Functions 在邊緣自訂。 CloudFront
使用 Lambda@Edge 實作進階自訂
當您需要比 CloudFront Functions 更複雜的處理功能時,請使用 Lambda@Edge。此服務可讓您在 CloudFront 節點執行 Node.js 或 Python 函數。
Lambda@Edge 函數可以執行複雜的操作,例如複雜的身分驗證、較大的回應修改或第三方 API 整合。
如需更複雜的自訂,請將 Lambda@Edge 函數與 MediaTailor 和 CloudFront 整合搭配使用:
使用 MediaTailor 實作 Lambda@Edge
-
在美國東部 (維吉尼亞北部) 區域建立 Lambda 函數。
-
為下列其中一個使用案例撰寫函數程式碼:
-
URL 操作 - 在多變體播放清單、媒體播放清單和 MPD 請求 URLs到達 MediaTailor 之前進行修改
-
A/B 測試 - 將使用者路由到不同的廣告決策伺服器
-
請求身分驗證 - 新增身分驗證標頭
-
回應標頭修改 - 新增 CORS 標頭
-
-
發佈函數的版本並建立函數別名。
-
在適當的觸發點 (檢視器請求或檢視器回應) 將函數與 CloudFront 分佈建立關聯。
注意
搭配 MediaTailor 使用 Lambda@Edge 時,如果您計劃使用 Media Quality-Aware Resiliency (MQAR) 功能,請避免使用面向原始伺服器的觸發 (原始伺服器請求和原始伺服器回應),因為這些功能目前不相容。
如需詳細資訊和程式碼範例,請參閱 CloudFront 開發人員指南中的使用 Lambda@Edge 在邊緣自訂。
其他效能最佳化秘訣
請考慮這些額外的最佳化,以進一步改善效能:
- 最佳化快取命中率
-
在 CloudFront 指標中監控快取命中率,並尋找改善的機會:
-
標準化 URL 模式以改善快取金鑰一致性
-
使用查詢字串白名單,在快取金鑰中僅包含必要的參數
-
考慮使用 CloudFront Functions 實作 URL 標準化
-
- 減少延遲
-
實作這些技術,將延遲降至最低:
-
針對文字型回應啟用 Brotli 壓縮
-
使用 HTTP/2 或 HTTP/3 以提高連線效率
-
考慮啟用現代網路的 IPv6 支援
-
- 成本最佳化
-
平衡效能與成本效益:
-
使用 Origin Shield 減少備援原始伺服器請求
-
根據您的受眾地理位置考慮價格分級選擇
-
實作區段的積極快取,以減少原始流量
-
後續步驟
使用 CloudFront 功能最佳化效能之後,請考慮下列後續步驟:
-
使用 MQAR 實作多區域彈性 (請參閱 使用 MQAR 實作 MediaTailor 的多區域彈性)
-
設定監控和故障診斷 (請參閱 監控 CloudFront 和 MediaTailor 整合並進行疑難排解)