使用 CloudFront 功能最佳化 MediaTailor 效能 - AWS Elemental MediaTailor

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

使用 CloudFront 功能最佳化 MediaTailor 效能

AWS Elemental MediaTailor 使用 Amazon CloudFront 的效能可以透過基本組態以外的其他功能進行增強。使用 MediaTailor 設定基本 CloudFront 組態之後,您可以實作其他功能來增強效能、可靠性和自訂選項。這些最佳化有助於提供更好的檢視體驗。它們也會降低成本和原始負載。

使用 Origin Shield 減少原始伺服器負載

Origin Shield 在 CloudFront 節點和原始伺服器之間新增快取層。此功能對於即時串流和熱門 VOD 內容非常有用。當許多瀏覽者同時請求相同的內容時,這很有幫助。

透過合併來自多個節點的請求,Origin Shield 可減少 MediaTailor 和內容原始伺服器的負載。

為您的 MediaTailor 原始伺服器啟用 Origin Shield
  1. 開啟 CloudFront 主控台並導覽至您的分佈。

  2. 選取指向 MediaTailor 播放組態的原始伺服器。

  3. Origin Shield 下,選取

  4. 從下拉式選單中,選取最接近 MediaTailor 端點 AWS 的區域。

  5. 儲存您的變更。

對於高流量事件,Origin Shield 可大幅降低原始伺服器的請求負載並改善可靠性。如需詳細說明,請參閱 CloudFront 開發人員指南中的啟用 Origin Shield

使用 CloudFront Functions 自訂內容交付

CloudFront Functions 可讓您在邊緣執行輕量型 JavaScript 程式碼,以修改檢視器請求和回應。您可以使用這些函數進行簡單的自訂,例如 URL 修改、標頭操作或基本身分驗證。對於 MediaTailor 工作流程,Functions 可協助處理不需要複雜處理的任務。

CloudFront Functions 提供輕量的方式來自訂邊緣的內容交付。以下是為 MediaTailor 整合實作它們的方法:

實作 MediaTailor 的 CloudFront 函數
  1. 在 CloudFront 主控台中,導覽至函數

  2. 建立新的 函數,然後選取適當的用途:

    • URL 操作 - 在多變體播放清單、媒體播放清單和 MPD 請求 URLs到達 MediaTailor 之前進行修改

    • 標頭操作 - 新增或修改請求標頭

    • 簡單身分驗證 - 驗證字符或查詢參數

  3. 撰寫您的 JavaScript 函數程式碼。

  4. 使用 MediaTailor 請求範例測試您的函數。

  5. 發佈函數並將其與分佈的快取行為建立關聯。

範例 用於 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
  1. 在美國東部 (維吉尼亞北部) 區域建立 Lambda 函數。

  2. 為下列其中一個使用案例撰寫函數程式碼:

    • URL 操作 - 在多變體播放清單、媒體播放清單和 MPD 請求 URLs到達 MediaTailor 之前進行修改

    • A/B 測試 - 將使用者路由到不同的廣告決策伺服器

    • 請求身分驗證 - 新增身分驗證標頭

    • 回應標頭修改 - 新增 CORS 標頭

  3. 發佈函數的版本並建立函數別名。

  4. 在適當的觸發點 (檢視器請求或檢視器回應) 將函數與 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 功能最佳化效能之後,請考慮下列後續步驟: