更快速地分发内容

在本教程中,您将了解如何使用 Amazon CloudFront 更快速地分发内容和减少 Web 应用程序的最终用户延迟。CloudFront 利用其全球数据中心网络 (也称为边缘站点),将内容缓存在靠近最终用户的位置,以缩短分发时间,加快内容分发速度。 在尚未处于边缘站点时,CloudFront 可从原始服务器获取您的内容,如 Amazon S3 存储桶、Amazon EC2 实例、Amazon Elastic Load Balancing 负载均衡器或您自己的 Web 服务器。CloudFront 可用于交付您的整个网站或应用程序,包括动态、静态、流式处理和交互式内容。

在以下步骤中,您将配置一个 Amazon S3 存储桶作为原始服务器,并且将使用 Web 浏览器测试分配,以确保分发您的内容。

在本教程中完成的所有操作均符合免费套餐条件。

提高内容分发速度需要拥有账户

登录控制台

AWS 免费套餐包括每个月 50GB 数据输出和 2000000 次 HTTP 或 HTTPS 请求,为期一年。 

查看 AWS 免费套餐详细信息 »


在此步骤中,我们要将示例静态内容上传至 Amazon S3 存储桶。在后续步骤中,我们将使用此存储桶作为 CloudFront 原始服务器。Amazon S3 非常适合作为 Amazon CloudFront 原始服务器,包括图像、视频、HTML 页面、.css 文件和 .js 文件等静态内容。


a.我们在本教程中将要使用的示例图像是一个名为 cloudfront-test-image.png 的 PNG 图像。 单击右侧的按钮下载示例图像,并确保将其保存为 cloudfront-test-image.png

下载示例图片

b.当您单击此处时,AWS 管理控制台将会在一个新的浏览器窗口中打开。在搜索框中键入 S3,然后双击以打开控制面板。

tmt_faster-content-delivery-01

(单击以缩放)

tmt_faster-content-delivery-01

c.现在将显示 S3 控制面板,单击 Create Bucket (创建存储桶) 按钮。

  • Bucket Name (存储桶名称):输入您的存储桶的名称 该名称必须是唯一的且全部小写。有关 S3 存储桶名称的其他限制,请参阅存储桶限制。 
  • Region (地区):您可以选择一个靠近您的地区,以便优化延迟、尽可能降低成本或满足法规要求。 

选择 Next

Set properties (设置属性) 面板上有许多适用于 S3 存储桶的实用选项,包括“Versioning”(版本控制)、“Server Access Logging”(服务器访问日志记录)、“Tags”(标签)、“Object-level Logging”(对象级别日志记录) 和“Default Encryption”(默认加密)。在本教程中,我们将不启用这些功能。

选择 Next

在“设置权限”面板上,您可为我们的存储桶设置访问控制权限。在本教程中,我们将不启用这些功能。

选择 Next

在“Review”(审核) 面板上,选择 Create bucket (创建存储桶)

tmt_faster-content-delivery-02

(单击以缩放)

tmt_faster-content-delivery-02

d.双击您的存储桶名称。选择 Upload (上传),然后选择 Add Files (添加文件),并从您的计算机上选择 cloudfront-test-image.png 

选择 Next

tmt_faster-content-delivery-03

(单击以缩放)

tmt_faster-content-delivery-03

e.在“Set permissions”(设置权限) 选项卡上,您需要将您的图像设置为公共可读。 默认情况下,S3 对象会设置为私有。  将“Manage public permissions”(管理公共权限) 更改为 Grant public access to objects(s) (为对象授予公共访问权限)

选择 Next

在“设置属性”选项卡上,您可以设置“存储类别”、“加密”和“元数据”。在本教程中,我们将不启用这些功能。

选择 Next

在“审核”选项卡上,审核您的文件上传。

选择 Upload (上传)

tmt_faster-content-delivery-04

(单击以缩放)

tmt_faster-content-delivery-04

将内容上传到 Amazon S3 之后,您可以使用 Amazon CloudFront 控制台向全球最终用户分发内容。


a.当您单击此处时,AWS 管理控制台将会在一个新的浏览器选项卡中打开。 在 Storage & Content Delivery (存储和内容分发) 下面找到 CloudFront,然后单击以打开 Amazon CloudFront 控制台。

tmt_faster-content-delivery-06

(单击以缩放)

tmt_faster-content-delivery-06

b. 选择 Create Distribution (创建分配)


 

tmt_faster-content-delivery-07

(单击以缩放)

tmt_faster-content-delivery-07

Web 分配指定了配置设置,因此当用户请求时,CloudFront 知道从哪个原始服务器获取您的内容。您可以使用 Amazon S3 存储桶 (存储文件夹) 和 HTTP 服务器 (例如,Web 服务器) 作为原始服务器。


a. 您将首先选择内容分发方法。 Web 分配 适用于静态和动态的内容,而 RTMP 分配 最适合使用 Adobe Flash Media Server 的 RTMP 协议的流媒体文件。

由于 cloudfront-test-image.png 是静态图片,因此选择 Web 选项下的 Get Started (开始)

tmt_faster-content-delivery-08

(单击以缩放)

tmt_faster-content-delivery-08

b. 现在将配置您的设置。 

Origin Domain Name (原始域名) 中,选择您存储 cloudfront-test-image.png 的 S3 存储桶的名称。

在本教程中,您可以将其余配置设置保留默认值。 如果您想了解有关每项配置设置的更多信息,请单击下面的下拉列表。

Default Cache Behavior Settings (默认缓存行为设置):

分配设置:

  • Price Class (价格级别):CloudFront 有三种价格级别,具体取决于您想在全球范围内支持的边缘站点的数量。默认情况下,CloudFront 使用所有边缘站点,以确保最佳性能。有关更多信息,请参阅 Amazon CloudFront 定价
  • AWS WAF Web ACL:如果您想基于您指定的标准允许或阻止 HTTP 和 HTTPS 请求,请选择与此次分配相关联的 Web ACL。有关更多信息,请参阅 AWS WAF 开发人员指南
  • Alternate Domain Names (替代域名):CloudFront 将在您创建 Web 分配时自动为您分配域名 (例如,http://abcdefghi888.cloudfront.net/filename.jpg)。您还可以在更新 DNS 配置以将 DNS 查询路由到 CloudFront 分配后,在对象的 URL (比如 http://yourDomain.com/filename.jpg) 中指定自己的域名。在本教程中,请将此字段留空。
  • SSL Certificate (SSL 证书):CloudFront 提供默认证书,您也可以指定自定义 SSL 证书。 
  • Default Root Object (默认根对象):您可以在这里指定当用户仅请求分配的根 URL 时,您希望 CloudFront 从原始服务器请求的对象。例如,用户请求 http://www.example.com/,您就可以指定分发 http://www.example.com/product-description.html。指定一个默认根对象,以避免公开分配的内容。
  • Logging (日志记录): CloudFront 可以记录有关对象的每个请求的相关信息,并将日志文件存储在 Amazon S3 存储桶中。启用日志记录不会产生额外费用,但存储和访问文件会产生 Amazon S3 费用。
  • Bucket for Logs (日志存储桶):如果您指定了用于存储访问日志的 Amazon S3 存储桶,CloudFront 将可以记录有关对象的每个用户请求的信息,并将文件存储在指定的 Amazon S3 存储桶中。您可以随时启用或禁用日志记录。有关 CloudFront 访问日志的更多信息,请参阅访问日志
  • Log Prefix (日志前缀):如果为“Logging”(日志记录) 选择了“On”(开启),则您可以将希望 CloudFront 前缀采用的字符串指定为此次分配的访问日志文件名。有关 CloudFront 访问日志的更多信息,请参阅访问日志
  • Cookie Logging (Cookie 日志记录):当使用 Amazon S3 作为对象的原始服务器时,Amazon S3 不会处理 Cookie,因此除非您的分配还包括 Amazon EC2 或其他自定义原始服务器,否则您需要为“Cookie Logging”(Cookie 日志记录) 选择“Off”(关闭) 值。有关 Cookie 的更多信息,请参阅配置 CloudFront 以基于 Cookie 缓存对象
  • Comment (注释):您可以输入您想与分配一起保存的任何注释。
  • Distribution Status (分配状态):默认为 Enable (已启用)。这意味着您的内容将在分配创建之后立即提供。
tmt_faster-content-delivery-09

(单击以缩放)

tmt_faster-content-delivery-09

配置分配后,CloudFront 将创建分配,并将其传播到整个 CloudFront 网络供您使用。  选择 Create Distribution (创建分配)。 

此过程完成后,状态列将从 In Progress (正在进行) 更改为 Deployed (已部署)

注意:这可能需要几分钟才能完成。

CloudFront 指派给分配的域名将出现在分配列表中。请记住这一点,您在后续步骤中需要使用该域名。 单击 Distribution ID (分配 ID) 字段可将您带到一个页面,您可以在此页面的“Domain Name”(域名) 下看到完整的 CloudFront 域。

tmt_faster-content-delivery-10

(单击以缩放)

tmt_faster-content-delivery-10

创建 Web 分配之后,您可以对其进行测试,方法是:确认 CloudFront 从原始服务器获取对象,并将其返回到 Web 浏览器。 在此测试中,您需要使用步骤 4 中的 CloudFront 域名和您在步骤 1 中上传到 S3 存储桶的图像名称。


a.在您的计算机上打开文本编辑器。复制并粘贴以下 HTML 代码:

</html>

<head>My CloudFront Test</head>

<body>

<p>My text content goes here.

<p><img src="http://domain name/object name" alt="my test image">

</body>

</html>

  • 使用 CloudFront 指派给您的分配的域名来替换 domain name,例如 d111111abcdef8.cloudfront.net
  • 使用 Amazon S3 存储桶中您的图像文件的名称来替换 object name,在本教程中是 cloudfront-test-image.png
  • 将文件中的文本保存为 mycloudfronttest.html

b.在浏览器中打开您的网站,以确保您可以看到您的内容。 

cloudfront-16

(单击以缩放)

cloudfront-16

您可以从 CloudFront 控制台轻松禁用分配。 事实上,最佳实践是禁用您不再使用的分配,以免继续为其付费。但请注意,分配被禁用后,将关闭该分配支持的任何网站,并且最终用户将无法再访问相应内容。


a. 选择您创建的分配旁边的复选框并单击 Disable (禁用)

tmt_faster-content-delivery-11

(单击以缩放)

tmt_faster-content-delivery-11

b.您将需要进行确认 - 单击 Yes, Disable (是,禁用)

tmt_faster-content-delivery-12

(单击以缩放)

tmt_faster-content-delivery-12

您已经创建了自己的第一个 Amazon CloudFront Web 分配,并通过 Amazon S3 分发了托管在云中的一份静态内容。更改一些配置后,您可以使用 CloudFront 通过 HTTP 或 HTTPS 实时分发动态内容和现场活动,比如会议、研讨会或音乐会。使用 Amazon Cloudfront 加速整个网站或应用程序的交付,包括动态、静态、流式处理和交互式内容。

现在,您已了解了如何使用 Amazon CloudFront 设置 Web 分配和分发静态内容,您可以在授课期间或即将召开的 AWS Tech Talks 期间向我们的 CloudFront 专家提问。

Amazon CloudFront 入门页面 >>