CloudFront 使用方法
通过使用 CloudFront,可帮助您实现各种目标。此部分列出了其中的几个以及指向更多信息的链接,以便让您了解这些可能性。
加快静态网站内容分发速度
CloudFront 可以加快将静态内容(例如,图像、样式表、JavaScript 等)分发给全球范围内的查看器的速度。通过使用 CloudFront,您可以充分利用 AWS 主干网络和 CloudFront 边缘服务器以在查看器访问您的网站时为其提供快速、安全、可靠的体验。
存储和交付静态内容的简单方式是使用 Amazon S3 存储桶。将 S3 与 CloudFront 结合使用有许多好处,包括可以选择使用源访问控制来轻松限制对您的 Amazon S3 内容的访问。
有关将 Amazon S3 与 CloudFront 结合使用的更多信息(包括帮助您快速入门的 AWS CloudFormation 模板),请参阅安全静态网站入门。
提供点播视频或实时流视频
CloudFront 提供了多个选项来将媒体流式传输到全球查看器 – 预先录制的文件和实时内容。
对于点播视频 (VOD) 流,您可以使用 CloudFront 以常见格式(如 MPEG DASH、Apple HLS、Microsoft Smooth Streaming 和 CMAF)将内容流式传输到任何设备。
对于广播实时流,您可以在边缘站点缓存媒体片段,以便将按正确顺序传输片段的清单文件的多个请求组合起来,从而减小源服务器的负载。
有关如何使用 CloudFront 传输流内容的更多信息,请参阅使用 CloudFront 的点播视频和实时流视频。
在整个系统处理过程中加密特定字段
在对 CloudFront 配置 HTTPS 时,您已获得与源服务器的安全的端到端连接。在添加字段级加密时,您可以在整个系统处理过程中保护特定的数据并实施 HTTPS 安全,以便只有源中的某些应用程序可以查看数据。
要设置字段级加密,您可以将公有密钥添加到 CloudFront,然后指定要使用该密钥加密的字段集。有关更多信息,请参阅 使用字段级加密帮助保护敏感数据。
在边缘进行自定义
通过在边缘站点上运行无服务器代码,开启了为查看器自定义内容和体验的很多可能性,并减少了延迟。例如,您可以在源服务器停机进行维护时返回自定义错误消息,查看器不会获得一般 HTTP 错误消息。或者,您可以在 CloudFront 将请求转发到您的源之前,使用函数来帮助向用户授权并控制对您的内容的访问。
将 Lambda@Edge 与 CloudFront 配合使用,可以通过多种方式自定义 CloudFront 提供的内容。要详细了解 Lambda@Edge 以及如何使用 CloudFront 创建和部署函数,请参阅使用 Lambda@Edge 在边缘进行自定义。要查看可为您自己的解决方案自定义的大量代码示例,请参阅 Lambda@Edge 函数示例。
使用 Lambda@Edge 自定义提供私有内容
除了使用已签名的 URL 或已签名的 Cookie 之外,还可使用 Lambda@Edge 帮助您配置 CloudFront 分配以提供来自您自己的自定义源的私有内容。
要使用 CloudFront 提供私有内容,请执行以下操作:
-
要求用户(查看器)使用已签名的 URL 或已签名的 Cookie 来访问内容。
-
限制对源的访问,以便只能从 CloudFront 的面向源的服务器上进行访问。为此,可以执行以下操作之一:
-
对于 Amazon S3 源,您可以使用源访问控制(OAC)。
-
对于自定义源,您可以执行以下操作:
-
如果自定义源受 Amazon VPC 安全组或 AWS Firewall Manager 保护,您可以使用 CloudFront 托管式前缀列表,以便仅允许从 CloudFront 面向源的 IP 地址传入到源的流量。
-
使用自定义 HTTP 标头将访问限制为仅来自 CloudFront 的请求。有关更多信息,请参阅在自定义源上限制对文件的访问和向源请求添加自定义标头。有关使用自定义标头限制对应用程序负载均衡器源的访问的示例,请参阅限制访问应用程序负载均衡器。
-
如果自定义源需要自定义访问控制逻辑,则可以使用 Lambda@Edge 来实现该逻辑,如以下博文中所述:使用 Amazon CloudFront 和 Lambda@Edge 提供私有内容
。
-
-