媒体 CDN 概览

媒体 CDN 是 Google Cloud的媒体分发解决方案。媒体 CDN 可与 Cloud CDN 搭配使用,后者是 Google Cloud的网站加速解决方案。媒体 CDN 针对高吞吐量出站流量工作负载(例如流式视频和大型文件下载)进行了优化。

边缘缓存通常是服务器基础架构,用于将内容存储在更靠近最终用户的位置,位于入网点 (PoP) 或合作伙伴 ISP 内。媒体 CDN 利用 Google 的全球边缘缓存基础架构,在尽可能靠近用户的位置传送内容。通过使用 Google 的基础架构来传送内容,您可以减轻源站基础架构的负载。

借助媒体 CDN,您可以从可公开访问的 HTTP 端点提取内容。您可以将 Media CDN 与现有的源站基础架构搭配使用,无论内容是托管在 Cloud Storage 中、其他云中还是本地基础架构中。

您可以控制在路由中为每个提供的 URI 缓存内容的方式。通过使用路由,您可以根据内容类型、客户端属性以及您为 Media CDN 定义的每个路由的新鲜度要求来优化行为。

如需了解应使用哪种 CDN 产品,请参阅选择 CDN 产品。如果两款产品都符合您的需求,您可以同时使用这两款产品。

媒体 CDN 的工作原理

媒体 CDN 包含三个主要组件:

  • 路由器
  • 缓存
  • 缓存填充器

从概念上讲,这些组件的连接方式如下图所示:

一张图片,描绘了下游用户代理与媒体 CDN 路由器之间、路由器与缓存之间、缓存与缓存填充器之间以及缓存填充器与上游源之间的通信。
图 1:媒体 CDN 组件。

路由器和缓存组件配置有其使用的 IP 地址和协议、安全和缓存政策,以及路由配置。配置包含在 EdgeCacheService 资源中。路由器使用 EdgeCacheService 中描述的 HeaderAction 来确定路由器如何修改请求(包括标头操作和路径重写)。

Media CDN 在反向代理处终止用户 HTTP 请求。反向代理会将 HTTP 请求与 Routing 配置相匹配。路由配置定义了 HTTP 请求的路由、修改、缓存和填充方式。

如果配置的缓存组件缺少用户请求的内容(称为缓存未命中),则该缓存组件会从配置的上游来源请求内容。Media CDN 使用请求参数(例如主机、路径和查询参数)作为缓存键。您可以配置媒体 CDN 将哪些项视为缓存键的一部分,这有助于减少媒体 CDN 向上游源站发出的请求。如需了解详情,请参阅缓存键

缓存填充器每次与上游来源联系时都会发出新请求。当缓存填充器与上游源站联系时,它会保存原始请求。然后,对于缓存为所请求项填充缓存的每次尝试,缓存填充器都会复制原始请求的标头,并根据 EdgeCacheOrigin 中的设置修改请求。

由于缓存组件位于路由器的下游,因此缓存填充器只能访问路由器已修改的标头。缓存填充器无法撤消这些路由器级更改。而是仅应用有效 EdgeCacheOrigin 资源中定义的标头配置。

当缓存组件拥有所请求的内容时,会将该内容返回给路由器,以便返回给下游用户代理。

媒体 CDN 功能

以下部分简要介绍了 Media CDN 的功能。

SSL (TLS) 证书支持

Media CDN 内置了对从您自己的网域传送 TLS 加密 (HTTPS) 流量的支持。Media CDN 通过您自己的网域(自带网域 [BYO])提供服务,不需要 Google 托管的网域。

提供 SSL (TLS) 流量或获取 Google 管理的 SSL 证书不会产生任何额外费用。

如需了解详情,请参阅 SSL (TLS) 证书

Google Cloud Armor 支持

Media CDN 支持 Cloud Armor 边缘安全政策。Media CDN 使用 Google Cloud Armor 来允许或拒绝访问内容。Cloud Armor 支持 IP 地址许可清单和拒绝清单、地理位置和第 7 层标头过滤控件,并通过插入自定义标头来修饰请求。此外,Cloud Armor for Media CDN 还与 Google Threat Intelligence 集成,可针对已知的恶意 IP 地址和流量模式提供高级防护。

Cloud Armor 还支持 Media CDN 的边缘安全政策中的自治系统编号 (ASN)。此功能可帮助您允许或阻止源自特定 ASN 的网络流量。

如需了解详情,请参阅配置安全政策

可扩展性

借助 Service Extensions 插件(预览版),媒体 CDN 可让您向请求-响应处理路径添加自定义代码。这种自定义功能可实现各种轻量级应用场景,例如标头规范化和自定义分词。

如需了解详情,请参阅在媒体 CDN 路由中部署 Service Extensions 插件

源站身份验证

媒体 CDN 支持通过源站身份验证将私密 Cloud Storage 存储分区用作源站。您可以授予媒体 CDN 对您的私密 Cloud Storage 存储分区的访问权限,并对请求进行身份验证,以确保仅授予有效的媒体 CDN 请求。

如需了解详情,请参阅源站连接和屏蔽

高级路由功能

媒体 CDN 提供高级 HTTP 路由功能,可让您以精细的级别将流量映射到特定的边缘配置和源。

如需了解详情,请参阅高级路由

客户端连接功能

媒体 CDN 支持从客户端到边缘的 HTTP/2 和 QUIC 等现代网络协议,从而提高吞吐量并降低整体网络延迟。

如需了解详情,请参阅客户端连接和 IP 地址

缓存失效操作

缓存失效(也称为缓存清除)是指声明缓存内容无效。当内容被声明为无效时,系统会从缓存中移除该内容,然后在下次请求该内容时从源服务器重新填充。

媒体 CDN 支持以下内容失效方式:

  • 按主机和网址路径
  • 按网址前缀和通配符
  • 按缓存标记,包括状态、来源和媒体类型的内置标记

您可以组合使用失效参数,以定位特定的缓存响应,并最大限度地减少后续缓存填充时的源站负载。

如需了解详情,请参阅缓存失效

自定义 HTTP 标头

媒体 CDN 可让您指定自定义 HTTP 标头。自定义请求标头支持静态值,而自定义响应标头同时支持静态值和动态值。

借助自定义标头,您可以执行以下操作:

  • 返回有关客户端的地理数据,以显示本地化内容,例如国家/地区、区域或城市。

  • 确定响应是完全还是部分从缓存中提供,并确定具体的缓存位置。

  • 通过剥离或替换请求和响应标头来修改标头行为。

如需了解详情,请参阅定义自定义标头

与 Cloud Logging 集成

媒体 CDN 还可与 Google Cloud的日志记录服务集成。

媒体 CDN 会将客户端与边缘之间以及媒体 CDN 与源站之间的每个 HTTP 请求记录到 Cloud Logging 中。日志通常会近乎实时地传送。您可以在 Logging 中查询日志,并将其导出到 Cloud StoragePub/Sub

如需了解详情,请参阅日志记录指南

已签名的请求

媒体 CDN 支持使用签名 Cookie 和签名网址进行内容身份验证。通过签名请求,您可以限定对特定客户端在有限时间内对确切网址前缀的访问权限。

如需了解详情,请参阅使用签名请求

请求访问权限

如需开始使用媒体 CDN,请与您的 Google Cloud 销售代表或客户支持团队联系,以便为您的项目启用媒体 CDN。然后,您可以使用快速入门来设置媒体 CDN。

后续步骤

  • 如需查找 Media CDN 接入点,请参阅缓存位置