更快速地分发内容

在本教程中,您将了解如何使用 Amazon CloudFront 更快速地分发内容和减少 Web 应用程序的最终用户延迟。CloudFront 利用其全球数据中心网络 (也称为边缘站点),将内容缓存在靠近最终用户的位置,以缩短分发时间,加快内容分发速度。要实现这一目标,您需要一个原始服务器,当内容尚不在边缘缓存中时,CloudFront 会从该位置获取内容。在以下步骤中,您将配置一个 Amazon S3 存储桶作为原始服务器,并且将使用 Web 浏览器测试分配,以确保您的内容正在分发。

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

Amazon CloudFront 和其他 Amazon Web Services

  • Amazon CloudFront:CloudFront 可使用全球边缘站点网络分发您的整个网站或应用程序,包括动态、静态、流媒体和交互内容。
  • Amazon CloudFront 可以很好地与其他 Amazon Web Services 配合使用。您可以轻松使用 Amazon S3 存储桶、Amazon EC2 实例、Amazon Elastic Load Balancing 负载均衡器或您自己的 Web 服务器作为原始服务器。在本教程中,我们将使用 Amazon S3 作为原始服务器。

管理 AWS 资源

登录控制台

要通过 Web 分配向最终用户分发内容,您需要先准备内容。Amazon CloudFront 可分配多种类型的内容,包括图片、视频、HTML 页面、.css 文件和 .php 文件。在此步骤中,我们使用 Amazon S3 将示例内容上传到云。


a. 在本教程中,我们使用的示例图片是一张名为 cloudfront-test-image.png 的 PNG 图片。单击右侧的按钮下载该示例图片,并确保将其保存为 cloudfront-test-image.png。如果需要,您也可以使用已经保存在计算机上的图片。

下载示例图片

b. 将 cloudfront-test-image.png 上传到 Web 分配可以引用的 Amazon S3 存储桶:

  • 如果已经有 S3 存储桶:将图片上传到现有 S3 存储桶,请记住将其公开,然后跳到步骤 2。
  • 如果没有 S3 存储桶:您可以免费轻松设置一个,然后继续步骤 1c。
cloudfront11

c. 单击此处后,AWS 管理控制台将在新的浏览器窗口中打开。找到存储和内容分发下的 S3,然后双击以打开控制面板。

Backup Files to S3 - Console

(单击以缩放)

Backup Files to S3 - Console

d. 现在您已进入 S3 控制面板,请单击创建存储桶按钮。

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

单击创建

Backup Files to S3 - Create a Bucket

(单击以缩放)

Backup Files to S3 - Create a Bucket

e. 在控制面板上,选择您新创建的存储桶,然后单击上传

Backup Files to S3 - Upload

(单击以缩放)

Backup Files to S3 - Upload

f. 单击添加文件,从您的计算机中选择 cloudfront-test-image.png然后,单击 Start Upload 按钮。您的图片将上传到 CloudFront 可以引用的 S3 存储桶。

Backup Files to S3 - Add Files

(单击以缩放)

Backup Files to S3 - Add Files

g. 您需要将图片配置为公开可读。默认情况下,S3 对象设置为私有。将鼠标悬停在 cloudfront-test-image.png 上方,右键单击,然后选择公开

cloudfront-18

(单击以缩放)

cloudfront-18

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


a. 单击此处后,AWS 管理控制台将在新的浏览器标签页中打开。找到存储和内容分发下的 CloudFront,然后单击打开 Amazon CloudFront 控制台。

cloudfront-0

(单击以缩放)

cloudfront-0

b. 选择 Create Distribution


 

cloudfront-1

(单击以缩放)

cloudfront-1

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


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

因为 cloudfront-test-image.png 是静态图片,所以请在 Web 选项下选择开始使用

cloudfront-2

(单击以缩放)

cloudfront-2

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:默认为已启用。这意味着您的内容将在分配创建之后立即提供。
cloudfront-3

(单击以缩放)

cloudfront-3

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

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

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

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

cloudfront-8

(单击以缩放)

cloudfront-8

创建 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. 选中您创建的分配旁边的复选框,然后单击禁用

cloudfront-14

(单击以缩放)

cloudfront-14

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

cloudfront-15

(单击以缩放)

cloudfront-15

您已经创建了自己的第一个 Amazon CloudFront Web 分配,并通过 Amazon S3 分发了托管在云中的一份静态内容。更改一些配置后,您可以使用 CloudFront 通过 HTTP 或 HTTPS 实时分发动态内容和现场活动,比如会议、研讨会或音乐会

现在,您已经了解了如何设置 Web 分配和使用 Amazon CloudFront 分发一份静态内容,接下来,您可以了解一下如何为全球用户流式处理媒体内容。 

 Amazon CloudFront 媒体流式处理教程 »