Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)

什么是 Amazon CloudFront?

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

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

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

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

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

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

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

如何设置 CloudFront 以传输内容

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

 
				CloudFront 的工作原理

如何配置 CloudFront 以便传输您的内容

  1. 您指定源服务器(如 Amazon S3 存储桶或您自己的 HTTP 服务器),CloudFront 从该服务器中获取您的文件,然后从全世界的 CloudFront 边缘站点中分配这些文件。

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

    如果您使用 Adobe Media Server RTMP 协议按需分发媒体文件,则源服务器始终为 Amazon S3 存储桶。

  2. 您将您的文件上传到源服务器。您的文件也称为对象,通常包括网页、图像和媒体文件,但可以是可通过 HTTP 或支持的 Adobe RTMP(Adobe Flash Media Server 使用的协议)版本提供的任何内容。

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

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

  4. CloudFront 为新分配指定一个域名,您可以在 CloudFront 控制台中查看该域名,或者返回该域名以响应编程请求(如 API 请求)。

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

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

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

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