什么是 Amazon CloudFront? - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

什么是 Amazon CloudFront?

Amazon CloudFront 是一项加快将静态和动态 Web 内容(例如 .html、.css、.js 和图像文件)分发给用户的速度的 Web 服务。CloudFront 通过全球数据中心(称作边缘站点)网络传输内容。当用户请求您用 CloudFront 提供的内容时,请求被路由到提供最低延迟(时间延迟)的边缘站点,从而以尽可能最佳的性能传送内容。

  • 如果该内容已经在延迟最短的边缘站点上,CloudFront 将直接提供它。

  • 如果内容不在边缘站点中,CloudFront 将从已定义的源(例如,已确定为内容最终版本的来源的 Amazon S3 存储桶、MediaPackage 通道或 HTTP 服务器,如 Web 服务器)检索内容。

例如,假设您要从传统的 Web 服务器中提供图像,而不是从 CloudFront 中提供图像。例如,您可能会使用 URL https://example.com/sunsetphoto.png 提供图像 sunsetphoto.png。

您的用户可以轻松导航到该 URL 并查看图像。但他们可能不知道其请求从一个网络路由到另一个网络(通过构成互联网的相互连接的复杂网络集合),直到找到图像。

CloudFront 通过 Amazon 主干网络将每个用户请求传送到能以最佳方式提供您的内容的边缘站点,以此来加速分发您的内容。通常,这是向查看器提供传输最快的 CloudFront 边缘服务器。使用 Amazon 网络可大大降低用户的请求必须经由的网络数量,从而提高性能。用户将会体验到延迟 (加载文件的第一个字节所花费的时间) 更短、数据传输速率更高。

您还会获得更高的可靠性和可用性,因为您的文件(也称为对象)的副本现在存储(或缓存)在全球各地的多个边缘站点上。

如何设置 CloudFront 以提供内容

您创建 CloudFront 分配,以告知 CloudFront 您希望内容从何处传输,并告知有关如何跟踪和管理内容传输的详细信息。然后,当有人想查看或使用内容时,CloudFront 使用靠近您的查看器的计算机(边缘服务器)快速传输内容。

CloudFront 的工作原理
如何配置 CloudFront 以提供您的内容
  1. 您指定源服务器(如 Amazon S3 存储桶或您自己的 HTTP 服务器),CloudFront 将从该服务器获取您的文件,这些文件随后将从全世界的 CloudFront 边缘站点分配。

    源服务器将存储您的对象的原始最终版本。如果您通过 HTTP 提供内容,您的源服务器将为 Amazon S3 存储桶或 HTTP 服务器,例如,Web 服务器。您的 HTTP 服务器可以在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行,也可以在您管理的服务器上运行;这些服务器也称为自定义源

  2. 您将您的文件上传至您的源服务器。您的文件也称为对象,通常包括网页、图像和媒体文件,但可以是可通过 HTTP 提供的任何内容。

    如果您将 Amazon S3 存储桶用作源服务器,则可以将存储桶中的对象设为公开可读,这样知道这些对象的 CloudFront URL 的任何人都可以访问它们。您还可以选择将对象设为私有,并控制哪些人可以访问它们。请参阅 使用签名 URL 和签名 Cookie 提供私有内容

  3. 创建一项 CloudFront 分配,此项分配将在用户通过您的网站或应用程序请求文件时告诉 CloudFront 从哪些源服务器获取您的文件。同时,您还需指定一些详细信息,如您是否希望 CloudFront 记录所有请求以及您是否希望此项分配创建后便立即启用。

  4. CloudFront 为新分配指定一个域名,您可以在 CloudFront 控制台中查看该域名,该域名也可能被返回以响应编程请求(例如 API 请求)。如果您愿意,您可以添加要改用的备用域名。

  5. CloudFront 将您的分配的配置(而不是您的内容)发送到其所有边缘站点节点 (POP) – 它们是位于地理位置分散的数据中心(CloudFront 在其中缓存您的文件的副本)内的服务器的集合。

您在开发网站或应用程序时,需使用 CloudFront 为您的 URL 提供的域名。例如,如果 CloudFront 返回 d111111abcdef8.cloudfront.net 作为您的分配的域名,则 Amazon S3 存储桶中(或 HTTP 服务器上的根目录中)的 logo.jpg 的 URL 将为 https://d111111abcdef8.cloudfront.net/logo.jpg

或者,您可以设置 CloudFront 对您的分配使用您自己的域名。在这种情况下,URL 可能是 https://www.example.com/logo.jpg

(可选)您可配置您的源服务器以向文件添加标头,表示您希望文件在 CloudFront 边缘站点的缓存中保留的时长。默认情况下,每个文件在边缘站点中保留 24 个小时后即会过期。最小过期时间为 0 秒;没有最大过期时间。有关更多信息,请参阅管理内容保留在缓存中的时间长度(过期)

定价

CloudFront 对从其边缘站点传出的数据以及 HTTP 或 HTTPS 请求收费。定价因使用类型、地理区域和功能选择而异。

使用 Amazon Simple Storage Service(Amazon S3)、Elastic Load Balancing 或 Amazon API Gateway 等 Amazon 源时,从您的源到 CloudFront 的数据传输始终是免费的。使用 Amazon 源,您只需为从 CloudFront 向查看器传输的出站数据付费。

有关更多信息,请参阅 CloudFront 定价以及 Billing and Savings Bundle 常见问题解答