利用 CloudFront功能优化 MediaTailor 性能 - AWS Elemental MediaTailor

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

利用 CloudFront功能优化 MediaTailor 性能

AWS Elemental MediaTailor 除了基本配置之外, CloudFront 还可以通过其他功能来增强 Amazon 的性能。使用设置基本 CloudFront 配置后 MediaTailor,您可以实现其他功能以增强性能、可靠性和自定义选项。这些优化有助于提供更好的观看体验。它们还可以降低成本和原产地负荷。

使用 Origin Shield 减少原点负荷

Origin Shield 在 CloudFront 边缘站点和您的源服务器之间添加了一个缓存层。此功能对于直播和热门的 VOD 内容非常有用。当许多观众同时请求相同的内容时,这会有所帮助。

通过整合来自多个边缘站点的请求,Origin Shield 可以减少内容来源的负担 MediaTailor 。

为你的起源启用 Orig MediaTailor in Shield
  1. 打开 CloudFront 控制台并导航到您的发行版。

  2. 选择指向您的 MediaTailor 播放配置的原点。

  3. Origin Shield 下,选择

  4. 从下拉菜单中,选择离您的 MediaTailor终端节点最近的 AWS 区域。

  5. 保存您的更改。

对于高流量事件,Origin Shield 可显著减少源站的请求负载并提高可靠性。有关详细说明,请参阅 CloudFront 开发者指南中的启用 Origin Shield

使用函数自定义内容交 CloudFront 付

CloudFront 函数允许您在边缘运行轻量级 JavaScript 代码来修改查看者的请求和响应。您可以使用这些函数进行简单的自定义,例如网址修改、标头操作或基本身份验证。对于 MediaTailor 工作流程,Functions 可以帮助完成不需要复杂处理的任务。

CloudFront 函数提供了一种在边缘自定义内容交付的轻量级方法。以下是如何为您的 MediaTailor 集成实现它们:

要实现的 CloudFront 函数 MediaTailor
  1. 在 CloudFront 控制台中,导航到函数

  2. 创建一个新函数并选择适当的用途:

    • 网址操纵-在多变播放列表、媒体播放列表和 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 函数在边缘进行自定义

使用 Lambda 实现高级自定义 @Edge

当您需要比 CloudFront 函数所能提供的更复杂的处理能力时,可以使用 Lambda @Edge。该服务允许您在 CloudFront 边缘位置运行 Node.js 或 Python 函数。

Lambda @Edge 函数可以执行复杂的操作,例如复杂的身份验证、更大的响应修改或第三方 API 集成。

要进行更复杂的自定义,请将 Lambda @Edge 函数与 MediaTailor 你的 CloudFront和集成一起使用:

要使用 Lambda @Edge 来实现 MediaTailor
  1. 在美国东部(弗吉尼亚州北部)区域创建 Lambda 函数。

  2. 为以下用例之一编写函数代码:

    • 网址操纵-在多变播放列表、媒体播放列表和 MPD 请求到达 URLs 之前对其进行修改 MediaTailor

    • A/B 测试-将用户路由到不同的广告决策服务器

    • 请求身份验证-添加身份验证标头

    • 修改响应标头-添加 CORS 标头

  3. 发布您的函数版本并创建函数别名。

  4. 在适当的触发点(查看者请求或查看者响应)将函数与您的 CloudFront 分布相关联。

注意

使用 Lambda @Edge 时 MediaTailor,如果您计划使用媒体质量感知弹性 (MQAR) 功能,请避免使用面向源的触发器(源请求和源站响应),因为这些功能目前不兼容。

有关更多信息和代码示例,请参阅 CloudFront 开发者指南中的使用 Lambda @Edge 在边缘进行自定义

其他性能优化技巧

考虑以下额外优化以进一步提高性能:

优化缓存命中率

在 CloudFront 指标中监控你的缓存命中率,并寻找改善它的机会:

  • 标准化 URL 模式以提高缓存密钥的一致性

  • 使用查询字符串白名单在缓存密钥中仅包含必需的参数

  • 考虑使用 CloudFront 函数实现 URL 标准化

减少延迟

实施以下技术以最大限度地减少延迟:

  • 为基于文本的响应启用 Brotli 压缩

  • 使用 HTTP/2 或 HTTP/3 来提高连接效率

  • 考虑启用对现代网络的 IPv6 支持

成本优化

在性能与成本效益之间取得平衡:

  • 使用 Origin Shield 减少冗余的源站请求

  • 考虑根据受众地理位置选择价格等级

  • 对区段实施主动缓存以减少源站流量

后续步骤

使用 CloudFront 功能优化性能后,请考虑以下步骤: