使用 Amazon CloudFront 分发来提供静态网站

本入门教程向您展示如何执行以下任务:

  • 注册一个域名,例如 example.com。
  • 为您的域名创建证书。
  • 创建一个 Amazon S3 存储桶并配置托管网站。
  • 创建一个示例网站并将文件保存在您的 S3 存储桶中。
  • 为 S3 存储桶创建 CloudFront 分发。
  • 配置 Amazon Route 53 以将流量路由到 CloudFront 分发。

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

主题
  • 先决条件
  • [步骤 1:注册域名](#步骤 1:注册域名)
  • [步骤 2:请求公共证书](#步骤 2:请求公共证书)
  • [步骤 3:创建 S3 存储桶来托管您的域名](#步骤 3:创建 S3 存储桶来托管您的域名)
  • [步骤 4:将网站文件上传到您的域名存储桶](#步骤 4:将网站文件上传到您的域名存储桶)
  • [步骤 5:为您的域名创建 Amazon CloudFront 分配](#步骤 5:为您的域名创建 Amazon CloudFront 分配)
  • [步骤 6:将您的域的 DNS 流量路由到您的 CloudFront 分配](#步骤 6:将您的域的 DNS 流量路由到您的 CloudFront 分配)
  • [步骤 7:测试您的网站](#步骤 7:测试您的网站)

先决条件

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

步骤 1:注册域名

要使用域名(例如 example.com),您必须找到一个尚未使用的域名并注册。注册域名后,您将在互联网上保留该域名供您独享,通常为一年。默认情况下,我们会在每年年底自动续订您的域名,但您可以关闭自动续订。有关更多信息,请参阅注册新域名

步骤 2:请求公共证书

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

请求 AWS 证书管理器 (ACM) 公有证书(控制台)
  1. 登录 AWS 管理控制台并通过 https://console.aws.amazon.com/acm/home打开 ACM 控制台

    确保在美国东部(弗吉尼亚北部)地区创建证书。这是 Amazon CloudFront 所必需的。

    在左侧导航栏中,选择“请求证书”,在“请求证书”页面上, 选择“请求公共证书”,然后选择“下一步”

  2. 域名部分,输入您的域名,例如 example.com

    选择为此证书添加其他名称,在域名前输入星号,即可为所有子域名申请通配符证书,例如*.example.com

  3. 验证方法部分中,选择DNS 验证

  4. 密钥算法部分中,选择RSA 2048

  5. 添加标签部分,您可以选择标记您的证书。标签是键值对,用作识别和组织 AWS 资源的元数据。

    选择请求以进入证书页面。

  6. 当您的新证书出现在“待处理”状态时,请选择证书 ID,然后在证书详细信息页面上,选择Route 53 中的“创建记录” 以自动添加您的域的 CNAME 记录,然后选择“创建记录”

    证书状态页面应打开,并显示一个状态横幅,报告已成功创建 DNS 记录

    您的新证书可能会继续显示“待验证”状态长达 30 分钟。

步骤 3:创建 S3 存储桶来托管您的域名

为 your -domain-name创建 S3 存储桶

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

  1. 打开 Amazon S3 控制台 https://console.aws.amazon.com/s3/。

  2. 选择创建存储桶

  3. 输入以下值:

    • 存储桶名称

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

    • 地区

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

  4. 要接受默认设置并创建存储桶,请选择 创建存储桶

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

步骤 4:将网站文件上传到您的域名存储桶

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

启用 S3 存储桶以进行网站托管
  1. 打开 Amazon S3 控制台 https://console.aws.amazon.com/s3/。

  2. Buckets列表中,选择您要上传网站文件的存储桶的链接名称,例如 example.com

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <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. “对象”选项卡中,选择 “上传”

  5. 文件和文件夹下,选择添加文件并上传您的网站文件。在本教程中,上传您在此过程的第 3 步中保存的 index.html 文件。

步骤 5:为您的域名创建 Amazon CloudFront 分配

在此步骤中,您将为域名(例如 example.com)创建 CloudFront 分配,以允许您的网站使用 HTTPS,以便人们可以安全地查看它。

创建 CloudFront 分配
  1. 打开 CloudFront 控制台https://console.aws.amazon.com/cloudfront/v4/home。

  2. 选择创建分发

  3. 在Origin下,对于Origin 域,选择您之前创建的Amazon S3 存储桶。格式类似于www.example.com.s3.<Region>.amazonaws.com

    对于Origin access,选择Legacy access identities。对于Origin access Identity,您可以从列表中选择,或者选择 Create new OAI(两者都可以)。

    对于存储桶策略,选择是,更新存储桶策略

  4. 对于默认缓存行为设置下的设置,在 查看器下,将查看器协议策略设置为将 HTTP 重定向到 HTTPS,并接受其余的默认值。

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

  5. 在**Web 应用程序防火墙 (WAF)**部分,您可以选择启用或禁用 AWS WAF 安全保护。

  6. 对于“设置”下的字段,执行以下操作:

    • 选择添加备用域名 (CNAME) - 可选的****项目,然后输入您的子域名,例如。example.com

    • 对于自定义 SSL 证书,请选择您之前创建的证书。

    • 默认根对象文本框中输入 index.html

    • 其余部分请接受默认值并选择“创建分发”

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

  7. 在 CloudFront 创建您的分配后,分配的 Status列的值将从In Progress更改为 Deployed。这通常需要几分钟。

    记录 CloudFront 分配给您的分配的域名,该域名显示在分配列表中。您可以使用此域名来测试分配。

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

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

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

将流量路由至您的网站
  1. 打开 Route 53 控制台: https://console.aws.amazon.com/route53/。

  2. 在导航窗格中,选择托管区域

    笔记

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

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

  4. 选择创建记录

    如果您处于快速创建记录视图,请选择切换到向导

    笔记

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

  5. 选择简单路由,然后选择下一步

  6. 选择“定义简单记录”

  7. 记录名称中,在默认值前面输入www,即您的托管区域和域的名称。

  8. 记录类型中,选择A‐将流量路由到 IPv4 地址和一些 AWS 资源

  9. 值/路由流量到中,选择别名为 CloudFront 分布

  10. 选择分布。

    分发名称应与分发列表中域名框中显示的名称相匹配,例如。dddjjjkkk.cloudfront.net

  11. 对于评估目标健康状况,选择

  12. 选择“定义简单记录”

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

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

  1. 在导航窗格中,选择托管区域

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

  3. 选择创建记录

    如果您处于快速创建记录视图,请选择切换到向导

    笔记

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

  4. 选择简单路由,然后选择下一步

  5. 选择“定义简单记录”

  6. 记录名称中,接受默认值。

  7. 记录类型中,选择A‐将流量路由到 IPv4 地址和一些 AWS 资源

  8. 值/路由流量到中,选择别名为 CloudFront 分布

  9. 选择分布。

    分发名称应与分发列表中 域名框中显示的名称相匹配 ,例如 。dddjjjkkk.cloudfront.net

  10. 对于评估目标健康状况,选择

  11. 选择“定义简单记录”

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

步骤 7:测试您的网站

要验证网站是否正常运行,请打开 Web 浏览器并浏览以下 URL:

  • your-domain-name例如 https://www. – 显示存储桶www.example.com中的索引文档 www.your-domain-name
  • your-domain-name例如https:// example.com – 将您的请求重定向到 www.your-domain-name存储桶

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

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