使用 Amazon CloudFront 为网站提速 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

使用 Amazon CloudFront 为网站提速

您可以使用 Amazon CloudFront 来提高 Amazon S3 网站的性能。CloudFront 可将您的网站文件(如 HTML、图像和视频)提供给全球各地的数据中心(称为边缘站点)使用。当访问者从您的网站请求文件时,CloudFront 会自动将请求重定向到最近边缘站点上的文件副本。这时的下载速度会比访问者从更远的数据中心请求该内容更快。

CloudFront 会将内容在边缘站点上缓存您指定的时间。如果访问者请求已过期的缓存内容,CloudFront 会检查来源服务器,确定该内容是否有更新的版本可用。如果有更新的版本,则 CloudFront 将新版本复制到该边缘站点。当访问者请求内容时,您对原始内容所做的更改便会复制到边缘站点。

使用 AWS CloudFormation 模板自动设置

有关使用 AWS CloudFormation 模板配置安全静态网站以创建 CloudFront 分配来为您的网站提供服务的更多信息,请参阅《Amazon CloudFront 开发人员指南》中的安全静态网站入门

步骤 1:创建 CloudFront 分配

首先,创建 CloudFront 分配。这将使您的网站可供全球各地的数据中心使用。

使用 Amazon S3 源创建分配

  1. 通过以下网址打开 CloudFront 控制台: https://console.aws.amazon.com/cloudfront/

  2. 选择 Create Distribution

  3. Select a delivery method for your content (选择内容交付方法) 页面上的 Web 下面,选择 Get Started (开始使用)

  4. Create Distribution(创建分配)页面上的 Origin Settings(源设置)部分中,对于 Origin Domain Name(源域名),输入您的存储桶的 Amazon S3 网站终端节点,例如 example.com.s3-website.us-west-1.amazonaws.com

    CloudFront 将为您填写 Origin ID (源 ID)

  5. 对于 Default Cache Behavior Settings (默认缓存行为设置),将值保留设置为默认值。

    当为查看器协议策略使用默认设置时,您可以为静态网站使用 HTTPS。有关这些配置选项的更多信息,请参阅《Amazon CloudFront 开发人员指南》中的您创建或更新 Web 分配时指定的值

  6. 对于 Distribution Settings,执行以下操作:

    1. Price Class (价格级别) 的设置保留为 Use All Edge Locations (Best Performance) (使用所有节点 (最佳性能))

    2. Alternate Domain Names (CNAMEs)(备用域名(CNAME)) 设置为根域和 www 子域。在本教程中,它们是 example.comwww.example.com

      重要

      在执行该步骤之前,请注意使用备用域名的要求,尤其是需要使用有效的 SSL/TLS 证书。

    3. 对于 SSL 证书,选择自定义 SSL 证书 (example.com),然后选择涵盖域名和子域名的自定义证书。

      有关更多信息,请参阅《Amazon CloudFront 开发人员指南》中的 SSL 证书

    4. Default Root Object (默认根对象) 中,输入索引文档的名称,例如 index.html

      如果用于访问分配的 URL 不包含文件名,CloudFront 分配将返回索引文档。Default Root Object (默认根对象) 应该与静态网站的索引文档的名称完全匹配。有关更多信息,请参阅 配置索引文档

    5. Logging (日志记录) 设置为 On (打开)

    6. 对于 Bucket for Logs,选择您创建的日志记录存储桶。

      有关配置日志记录存储桶的更多信息,请参阅(可选)记录 Web 流量

    7. 如果您要将由流量生成的日志存储到文件夹中的 CloudFront 分配,请在 Log Prefix (日志前缀) 中键入文件夹名称。

    8. 将所有其他设置保留为默认值。

  7. 选择 Create Distribution

  8. 要查看分配的状态,请在控制台中找到该分配,然后检查 Status 列。

    InProgress (进行中) 状态表示分配尚未完成部署。

    分配部署完毕后,您可以使用新的 CloudFront 域名来引用您的内容。

  9. 记录 CloudFront 控制台中显示的 Domain Name (域名) 值,例如 dj4p1rv6mvubz.cloudfront.net

  10. 要验证您的 CloudFront 分配是否正常运行,请在 Web 浏览器中输入该分配的域名。

    如果您的网站是可见的,则 CloudFront 分配正常工作。如果您的网站具有向 Amazon Route 53 注册的自定义域,您将需要 CloudFront 域名来在下一步更新记录集。

步骤 2:更新域和子域的记录集

现在您已成功地创建 CloudFront 分配,请更新 Route 53 中的别名记录以指向新的 CloudFront 分配。

更新别名记录以指向 CloudFront 分配

  1. 通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/

  2. Hosted Zones (托管区域) 页上,选择为您的子域创建的托管区域。

  3. 选择 Go to Record Sets

  4. 选择您为子域创建的 A 记录,例如, www.example.com

  5. 对于 Alias Target (别名目标),选择 CloudFront 分配。

  6. 选择 Save Record Set

  7. 要将根域的 A 记录重定向到 CloudFront 分配,请重复此过程。

    记录集的更新需要 2 – 48 小时才能生效。

  8. 要查看新的 A 记录是否已生效,请在 Web 浏览器中输入您的子域 URL,例如 http://www.example.com

    如果您的浏览器不再重定向至根域(例如,http://example.com),则说明新的 A 记录已生效。当新 A 记录生效时,由新 A 记录路由到 CloudFront 分配的流量不会重定向到根域。任何使用 http://example.comhttp://www.example.com 引用站点的访问者都会重定向到最近的 CloudFront 边缘站点,在这里可体验更快速的下载。

    提示

    浏览器可以缓存重定向设置。如果您认为新的 A 记录设置应该已经生效,但是您的浏览器仍然将 http://www.example.com 重定向至 http://example.com,请尝试清除浏览器的历史记录和缓存,然后关闭再重新打开浏览器应用程序,或使用其他 Web 浏览器。

(可选)步骤 3:检查日志文件

访问日志会告诉您有多少人正在访问网站。它们还包含有价值的业务数据,您可以使用 Amazon EMR 等其他服务分析这些数据。

CloudFront 日志存储在您在创建 CloudFront 分配并启用日志记录时所选择的存储桶和文件夹中。CloudFront 将在相应请求提出后的 24 小时内将日志写入您的日志存储桶。

查看网站的日志文件

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 为网站选择日志记录存储桶的名称。

  3. 选择 CloudFront 日志文件夹。

  4. 先下载由 CloudFront 编写的 .gzip 文件,然后再打开这些文件。

    如果您仅出于练习目的创建网站,则可以删除您所分配的资源,使其不再产生费用。为此,请参阅 清理示例资源。删除 AWS 资源后,您的网站将不再可用。