更快速地分发内容

在本教程中,您将了解如何使用 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 控制面板,请单击创建存储桶按钮。

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

选择下一步

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

选择下一步

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

选择下一步

在“审核”面板上,选择创建存储桶

tmt_faster-content-delivery-02

(单击以缩放)

tmt_faster-content-delivery-02

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

选择下一步

tmt_faster-content-delivery-03

(单击放大图片)

tmt_faster-content-delivery-03

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

选择下一步

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

选择下一步

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

选择上传

tmt_faster-content-delivery-04

(单击放大图片)

tmt_faster-content-delivery-04

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


a. 单击此处后,AWS 管理控制台将在新的浏览器标签页中打开。找到存储和内容分发下的 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 选项下选择开始使用

tmt_faster-content-delivery-08

(单击以缩放)

tmt_faster-content-delivery-08

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

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

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

Default Cache Behavior Settings

Distribution 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 证书: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 访问日志的更多信息,请参阅 Access Logs
  • Log Prefix:如果选择了“On for Logging”,您可以将希望 CloudFront 前缀采用的字符串指定为此次分配的访问日志文件名。有关 CloudFront 访问日志的更多信息,请参阅 Access Logs
  • Cookie Logging:当使用 Amazon S3 作为对象的原始服务器时,Amazon S3 不会处理 Cookie,因此除非您的分配还包括 Amazon EC2 或其他自定义原始服务器,否则您需要为“Cookie Logging”选择“关闭”值。有关 Cookie 的更多信息,请参阅 Configuring CloudFront to Cache Objects Based on Cookies
  • 评论:您可以输入您想与分配一起保存的任何评论。
  • Distribution Status:默认为已启用。这意味着您的内容将在分配创建之后立即提供。
tmt_faster-content-delivery-09

(单击以缩放)

tmt_faster-content-delivery-09

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

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

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

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

tmt_faster-content-delivery-10

(单击以缩放)

tmt_faster-content-delivery-10

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


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

My CloudFront Test

My text content goes here.

my test image

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

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

cloudfront-16

(单击以缩放)

cloudfront-16

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


a. 选中您创建的分配旁边的复选框,然后单击禁用

tmt_faster-content-delivery-11

(单击以缩放)

tmt_faster-content-delivery-11

b. 系统将要求您确认,请单击是,请禁用进行确认。

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 入门页面 >>