使用 Amazon CloudFront 分配为静态网站提供服务 - Amazon Route 53
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Amazon CloudFront 分配为静态网站提供服务

此入门教程演示如何执行以下任务:

  • 注册一个域名,如 example.com。

  • 为域创建证书。

  • 创建两个 Amazon S3 存储桶,并将一个存储桶配置为托管网站,另一个配置为重新导向到子域。

  • 创建一个示例网站,并将文件保存到 S3 存储桶中。

  • 为两个 S3 存储桶创建 CloudFront 分配。

  • 配置 Amazon Route 53 将流量路由到 CloudFront 分配。

完成后,您将能够打开一个浏览器,输入您的域名并安全地查看您的网站。

先决条件

开始之前,请确保您已完成 设置 Amazon Route 53 中的步骤。

步骤 1:注册域

要使用某个域名(如 example.com),您必须找到一个尚未被使用的域名并注册该域名。当您注册域名时,即表示您要保留它以供您在 Internet 上的任何位置独占使用,通常为期一年。预设情况下,我们会在每年年底自动续订您的域名,但您可以关闭自动续订。

要使用 Amazon Route 53 注册新域

  1. 请登录 Amazon Web Services Management Console,并通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/

  2. 如果您不熟悉 Route 53,请选择入门

    如果您已经在使用 Route 53,则在导航窗格中,选择 Registered domains(注册域)。

  3. 选择 Register Domain

  4. 输入要注册的域名,选择 Check 来了解该域名是否可用。

    有关如何指定除 a-z、0-9 和 - (连字符) 以外的字符以及如何指定国际化域名的信息,请参阅 DNS 域名格式

  5. 如果该域可用,则选择 Add to cart。域名将出现在您的购物车中。

    Related domain suggestions(相关域建议)列表显示您可能希望注册的其它域,以在您的首选域不可用时代替首选域,或者在首选域之外注册其它域。对于您希望注册的每个额外域,选择 Add to cart,最多可选择五个域。

    如果域名不可用,并且您不想使用建议的域名,请重复步骤 4,直到找到一个中意的可用域名。

    注意

    如果您还希望用户能够使用 www.your-domain-name(如 www.example.com)来访问您的示例网站,则无需注册另一个域。在本主题的稍后部分,我们将解释如何将 www.your-domain-name 的流量路由到您的网站。

  6. 在购物车中,选择域要注册的年数。

  7. 要注册多个域,请重复步骤 4 到 6。

  8. 选择 Continue (继续)

  9. Contact Details for Your n Domains 页面上,输入域注册者、管理员和技术联系人的联系信息。

    默认情况下,我们对全部三个联系人使用相同信息。如果要为一个或多个联系人输入不同信息,请将 My Registrant, Administrative, and Technical contacts are all the same 的值更改为 No

    如果您要注册多个域,我们将对所有域使用相同的联系人信息。

    有关更多信息,请参阅 您在注册或转移域时指定的值

  10. 对于某些顶级域 (TLD),我们需要收集更多信息。对于这些 TLD,请在 Postal/Zip Code 字段后输入适用的值。

  11. 选择是否要向 WHOIS 查询隐藏您的联系人信息。有关更多信息,请参阅以下主题:

  12. 选择 Continue (继续)

  13. 检查您输入的信息,阅读服务条款,并选中相应复选框,以确认您已阅读服务条款。

  14. 选择 Complete Purchase

    我们会向域注册人发送一封电子邮件,以确认可以按照您指定的电子邮件地址联系注册联系人。(这是一项 ICANN 要求。) 电子邮件来自以下电子邮件地址之一:

    • noreply@registrar.amazon.com — 用于 Amazon Registrar 注册的 TLD。

    • noreply@domainnameverification.net — 用于我们的注册商合作者 Gandi 注册的 TLD。要确定您的 TLD 注册商是谁,请参阅可向 Amazon Route 53 注册的域。

    重要

    注册联系人必须按照电子邮件中的说明来确认已收到电子邮件,否则我们必须按照 ICANN 的要求暂停该域。域被暂停后,将无法在 Internet 上访问该域。

    当您的域注册获批后,您将收到另一封电子邮件。要确定您的请求的最新状态,请参阅 查看域注册的状态

默认情况下,域注册的有效期为一年。如果您不希望保留该域,可以取消激活自动续订,则该域将在一年后过期。

(可选)要关闭域的自动续订

  1. 在导航窗格中,选择 Registered domains

  2. 在域列表中,选择域的链接名称。

  3. 如果 Auto renew(自动续订)字段的值为 Enabled (disable)(启用(禁用)),则选择 disable(禁用)以关闭自动续订。更改会立即生效。

    如果该字段的值为 Disabled (enable),则不要更改设置。

步骤 2:请求公有证书

您需要一个公有证书来将 Amazon CloudFront 分配配置为要求查看器使用 HTTPS,以便在 CloudFront 与查看器通信时加密连接。

要请求 Amazon Certificate Manager (ACM) 公有证书(控制台)

  1. 登录Amazon管理控制台并从以下位置打开 ACM 控制台:https://console.aws.amazon.com/acm/home

    注意

    请确保您在美国东部(弗吉尼亚北部)区域创建证书。这是 Amazon CloudFront 的必需条件。

    选择 Request a private certificate(请求私有证书),然后选择 Request a certificate(请求证书)。

  2. Domain name(域名)项下,输入您的域(如 example.com)。

    Add another name to this certificate(向此证书添加其它名称)项下,请在域名前面输入星号,以便为所有子域申请通配符证书,例如 *.example.com

  3. 选择 Next (下一步)

  4. Select validation method page(选择验证方法)页面,选择 DNS validation(DNS 验证),然后选择 Next(下一步)。

  5. Add tags (添加标签) 页面上,您可以选择为证书添加标签。标签是键值对,用作标识和组织Amazon资源的元数据。

    完成添加标签后,选择 Review (审核)

  6. Review(审核)页面上,确保您输入的信息正确无误,然后选择 Confirm and request(确认并请求)。

  7. Validation(验证)页面上,展开两个域,然后选择 Create record in Route 53(在 Route 53 中创建记录)以为您的域自动添加别名记录,然后选择 Create(创建)。

    在两个域中均显示 Success(成功)时,请选择页面底部的 Continue(继续)。

步骤 3:创建 S3 存储桶来托管子域

为 www.your-domain-name 创建一个 S3 存储桶

Amazon S3 允许您从互联网上的任何位置存储和检索您的数据。在此步骤中,您将创建一个 S3 存储桶来存储您网站的所有文件。

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

  2. 选择 Create bucket (创建存储桶)

  3. 输入以下值:

    存储桶名称

    输入 www.your-domain-name。例如,如果您注册了域名 example.com,则输入 www.example.com

    区域

    为您的存储桶选择一个区域。

  4. 要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。

    有关 S3 存储桶设置的更多信息,请参阅 Amazon S3 用户指南中的查看存储桶属性

步骤 4:为根域创建另一个 S3 存储桶

如果您还希望用户能够使用根域 your-domain-name(如 www.example.com)来访问您的示例网站,则需要创建另一个 S3 存储桶。然后对第二个存储桶进行配置,将流量路由至第一个存储桶。

要为 your-domain-name 创建一个 S3 存储桶

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

  2. 选择 Create bucket (创建存储桶)

  3. 输入以下值:

    存储桶名称

    输入 your-domain-name。例如,如果您注册了域名 example.com,则输入 example.com

    区域

    选择创建第一个存储桶时所在的同一区域。

  4. 要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。

步骤 5:将网站文件上载到您的子域存储桶

现在您有了 S3 存储桶,可以上载您的网站文件。在本教程中,您只需上载一个简单的 index.html 文件,以在页面上显示文本。

要为 S3 存储桶启用网站托管

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

  2. Buckets(存储桶)列表中,选择要将网站文件上载到的存储桶的链接名称,例如 www.example.com

  3. 复制创建一个简单的单页网页的示例文本,将其粘贴到文本编辑器中,并将其保存为 index.html:

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet traffic to Cloudfront distributions for your website stored in an S3 bucket</h1> <p>For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p> </body> </html>
  4. Objects(对象)选项卡中,选择 Upload(上载)。

  5. Files and folders(文件和文件夹)中,选择 Add files(添加文件)并上载您的网站文件。对于本教程,请上载您在步骤 3 中保存的 index.html 文件。

步骤 6:为网站重新导向设置根域存储桶

在为网站托管配置了根域存储桶后,可以选择将子域存储桶配置为将所有请求重新导向到该域。例如,您可以为 example.com 配置所有要重新导向到 www.example.com 的请求。

要配置重新导向

  1. 在 Amazon S3 控制台上的 Buckets(存储桶)列表中,选择您的存储桶名称(在本例中为 example.com)。

  2. 选择属性

  3. 静态网站托管下,选择编辑

  4. Static website hosting(静态网站托管)下,选择 Enable(启用)。

  5. 选择 Redirect requests for an object (重新导向对于对象的请求)

  6. Host name(主机名称)框中,输入您的子域(例如 www.example.com)。

  7. 对于 Protocol(协议),选择 HTTPS

  8. 选择保存更改

  9. Static website hosting(静态网站托管)下,记下 Endpoint(端点)。

    Endpoint (端点) 是存储桶的 Amazon S3 网站端点。您将使用此端点设置 Amazon CloudFront 分配。

步骤 7:为您的子域创建 Amazon CloudFront 分配

在此步骤中,您将为您的子域创建一个 CloudFront 分配,例如 www.example.com,以使您的网站能够使用 HTTPS,从而让人们可以安全地查看该网站。

创建 CloudFront 分配

  1. 通过 打开 CloudFront 控制台https://console.amazonaws.cn/cloudfront/v3/home

  2. 选择 Create Distribution

  3. 对于 Origin Settings(源设置)下的 Origin Domain Name(源域名),选择您之前创建的 Amazon S3 存储桶。

    对于 S3 bucket access(S3 存储桶访问),选择 Yes, use OAI (bucket can restrict access to only CloudFront)(是的,请使用 OAI(存储桶只能限制对 CloudFront 的访问))。对于 Origin access identity(来源访问标识(OAI)),您可以从列表中选择,或选择 Create new OAI(创建新的 OAI),两种选择都有效。

    对于 Bucket policy(存储桶策略),选择 Yes, update the bucket policy(是,更新存储桶策略)。

  4. 对于 Default Cache Behavior Settings(默认缓存行为设置)下的设置,在 Viewer(查看器)下,将 Viewer protocol policy(查看器协议策略)设置为 Redirect HTTP to HTTPS(重新导向 HTTP 至 HTTPS)并接受其余部分的默认值。

    有关缓存行为的更多信息,请参阅 Amazon CloudFront 开发人员指南中的缓存行为设置

  5. 对于 Settings(设置)项下的字段,执行以下操作:

    • 对于 Alternate domain name (CNAME)(备用域名(别名记录)- 可选)选择 Add item(添加项目),然后输入您的子域,例如 www.example.com

    • 对于 Custom SSL Certificate(自定义 SSL 证书),选择您以前创建的证书。

    • Default root object(默认根对象)文本框中,键入 index.html

    • 对于其余部分,请接受默认值。

      有关分配选项的更多信息,请参阅分配设置

  6. 在页面底部,选择创建分配

  7. 在CloudFront 创建了分配后,分配的状态列的值将从进行中更改为已部署。这通常需要花费几分钟的时间。

    记录 CloudFront 指派给分配的域名,这些域名会出现在分配列表中。您可以使用此域名来测试分配。

步骤 8:为您的根域创建 Amazon CloudFront 分配

在此步骤中,您将为您的根域创建 CloudFront 分配,以便在其 URL 重新导向到子域时使用 HTTPS。

创建 CloudFront 分配

  1. 通过 打开 CloudFront 控制台https://console.amazonaws.cn/cloudfront/v3/home

  2. 选择 Create Distribution

  3. Origin Settings(源设置)项下,对于 Origin Domain Name(源域名),输入存储桶网站端点。您可以从以前创建的 Amazon S3 存储桶的 Properties(属性)中的 Static website hosting(静态网站托管)部分获得此信息。

    对于其余部分,请接受默认值。

  4. 对于 Default Cache Behavior Settings(默认缓存行为设置)下的字段,请执行以下操作:

    • Viewer(查看器)项下,将 Viewer protocol policy(查看器协议策略)设置为 Redirect HTTP to HTTPS(重新导向 HTTP 至 HTTPS)。

    • Cache settings(缓存设置)设置为 CachingDisabled

    • 接受其余部分的默认值。

    有关缓存行为的更多信息,请参阅 Amazon CloudFront 开发人员指南中的缓存行为设置

  5. 对于 Settings(设置)项下的字段,执行以下操作:

    • 对于 Alternate domain name (CNAME)(备用域名(别名记录)- 可选)选择 Add item(添加项目),然后输入您的根域,例如 example.com

    • 对于 Custom SSL Certificate(自定义 SSL 证书),选择您以前创建的证书。

    • 对于其余部分,请接受默认值。

    有关分配选项的更多信息,请参阅分配设置

  6. 在页面底部,选择创建分配

  7. 在CloudFront 创建了分配后,分配的状态列的值将从进行中更改为已部署。这通常需要花费几分钟的时间。

    记录 CloudFront 指派给分配的域名,这些域名会出现在分配列表中。您可以使用此域名来测试分配,

步骤 9:将域的 DNS 流量路由到您的 CloudFront 分配

现在,您的 S3 存储桶中有使用了 CloudFront 分配的单页网站。要开始将域的互联网流量路由到 CloudFront 分配,请执行以下过程。

有关将流量路由到 CloudFront 分配的更多信息,请参阅 使用域名将流量路由到 Amazon CloudFront 分配

将流量路由到您的网站

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

  2. 在导航窗格中,选择 Hosted zones(托管区域)

    注意

    当您注册域时,Amazon Route 53 将自动使用相同的名称创建一个托管区域。托管区域包含有关您希望 Route 53 如何路由域流量的信息。

  3. 在托管区域列表中,选择您的域名。

  4. 选择创建记录

    如果您位于 Quick create record(快速创建记录)视图中,请选择 Switch to wizard(切换到向导)。

    注意

    每个记录都包含有关您希望如何路由某个域 (如 example.com) 或子域 (如 www.example.com 或 test.example.com) 流量的信息。记录存储在域的托管区域中。

  5. 选择 Simple routing(简单路由),然后选择 Next(下一步)。

  6. 选择定义简单记录

  7. Record name(记录名称)中,在默认值前键入 www,该值为您的托管区域和域的名称。

  8. Record type(记录类型)中,选择 A – Routes traffic to an IPv4 address and some Amazon resources(A – 将流量路由到 IPv4 地址和某些亚马逊云科技资源)。

  9. Value Route traffic to(值路由流量至)项下,选择 Alias to CloudFront distribution((别名到 CloudFront 分配))。

  10. 选择分配。

    分配名称应与 Distributions(分配)列表中的 Domain name(域名)中出现的名称相匹配,例如 dddjjjkkk.cloudfront.net

  11. 对于评估目标运行状况,选择

  12. 选择定义简单记录

为您的根域 (example.com) 添加别名记录

同时为根域添加别名记录,以便它指向将流量重新导向到 www.example.com 的 S3 存储桶。有关将流量路由到 CloudFront 分配的更多信息,请参阅 使用域名将流量路由到 Amazon CloudFront 分配

  1. 配置记录下,选择定义简单记录

  2. Record name(记录名称)中,请接受默认值。

  3. Record type(记录类型)中,选择 A – Routes traffic to an IPv4 address and some Amazon resources(A – 将流量路由到 IPv4 地址和某些亚马逊云科技资源)。

  4. Value Route traffic to(值路由流量至)项下,选择 Alias to CloudFront distribution((别名到 CloudFront 分配))。

  5. 选择分配。

    分配名称应与 Distributions(分配)列表中的 Domain name(域名)中出现的名称相匹配,例如 dddjjjkkk.cloudfront.net

  6. 对于评估目标运行状况,选择

  7. 选择定义简单记录

  8. 配置记录页面上,选择创建记录

步骤 10:测试您的网站

要验证您的网站是否工作正常,请打开一个 Web 浏览器并浏览到下列 URL:

  • http://www.your-domain-name,例如 www.example.com — 显示 www.your-domain-name 存储桶中的索引文档

  • http://www.your-domain-name,例如 example.com — 将您的请求重新导向至 www.your-domain-name 存储桶

在某些情况下,您可能需要清除缓存才能看到预期行为。

有关路由 Internet 流量的更多高级信息,请参阅 将 Amazon Route 53 配置为 DNS 服务。有关将互联网流量路由到 Amazon 资源的更多信息,请参阅 将 Internet 流量路由到您的 Amazon 资源