

# 教程：使用 Amazon S3、Amazon CloudFront 和 Amazon Route 53 托管点播流视频
<a name="tutorial-s3-cloudfront-route53-video-streaming"></a>

您可以将 Amazon S3 与 Amazon CloudFront 结合使用托管视频，实现以安全和可扩展的方式进行点播观看。点播视频 (VOD) 流代表您的视频内容存储在服务器上，观看者能够随时观看。

CloudFront 是一项快速、高度安全和可编程内容传送网络 (CDN) 服务。CloudFront 可以通过 HTTPS 从全球所有 CloudFront 节点安全地交付您的内容。有关 CloudFront 的更多信息，请参阅 *Amazon CloudFront 开发人员指南*中的[什么是 Amazon CloudFront？](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html)。

CloudFront 缓存减少了源服务器必须直接响应的请求数量。观看者（最终用户）请求您使用 CloudFront 提供的视频时，请求将路由到离观看者所在位置更近的附近边缘站点。CloudFront 从其缓存中提供视频，只有在尚未缓存的情况下才从 S3 存储桶中检索视频。这种缓存管理特征可以通过低延迟、高吞吐量和高传输速度加快向全球观众传送视频的速度。有关 CloudFront 缓存管理的更多信息，请参阅 *Amazon CloudFront 开发人员指南*中的[优化缓存和可用性](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html)。

![\[显示 CloudFront 缓存机制的工作原理的图。\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/images/cf-example-image-global.png)


**目标**  
在本教程中，您将配置 S3 存储桶以托管点播视频流，用 CloudFront 进行传输，并用 Amazon Route 53 进行域名系统（DNS）和自定义域管理。

**Topics**
+ [先决条件：用 Route 53 注册并配置自定义域](#cf-s3-prerequisites)
+ [步骤 1：创建 S3 存储桶](#cf-s3-step1)
+ [步骤 2：将视频上传到 S3 存储桶](#cf-s3-step2)
+ [步骤 3：创建 CloudFront 源访问身份](#cf-s3-step3)
+ [步骤 4：创建 CloudFront 分配](#cf-s3-step4)
+ [步骤 5：通过 CloudFront 分配访问视频](#cf-s3-step5)
+ [步骤 6：配置您的 CloudFront 分配以使用自定义域名](#cf-s3-step6)
+ [步骤 7：用自定义域名通过 CloudFront 分配访问 S3 视频](#cf-s3-step7)
+ [（可选）步骤 8：查看有关您的 CloudFront 分配接收的请求的数据](#cf-s3-step8)
+ [步骤 9：清除](#cf-s3-step9)
+ [后续步骤](#cf-s3-next-steps)

## 先决条件：用 Route 53 注册并配置自定义域
<a name="cf-s3-prerequisites"></a>

开始本教程之前，您必须用 Route 53 注册和配置自定义域（例如，**example.com**)，从而可将 CloudFront 分配配置为以后使用自定义域名。

如果没有自定义域名，并可通过 CloudFront 从类似于以下内容的 URL 中公开访问和托管您的 S3 视频：

```
https://CloudFront distribution domain name/Path to an S3 video
```

例如 **https://d111111abcdef8.cloudfront.net/sample.mp4**。

将您的 CloudFront 分配配置来使用配置了 Route 53 的自定义域名后，可以公开访问您的 S3 视频并通过 CloudFront 托管，URL 看起来类似于以下内容：

```
https://CloudFront distribution alternate domain name/Path to an S3 video
```

例如 **https://www.example.com/sample.mp4**。自定义域名对于观看者来说更简单、更直观。

****  
若要注册自定义域，请参阅 *Amazon Route 53 开发人员指南*中的[使用 Route 53 注册新域名](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)。

用 Route 53 注册域名时，Route 53 会为您创建稍后在本教程中使用的托管区域。此托管区域用于存储有关如何为域路由流量的信息，例如路由到 Amazon EC2 实例或 CloudFront 分配。

您的域名注册、您的托管区域和域名收到的 DNS 查询会产生相关费用。有关更多信息，请参阅 [Amazon Route 53 定价](https://aws.amazon.com/route53/pricing/)。

**注意**  
注册域名时，会立即产生费用，这是不可逆转的。您可以选择不自动续订域名，但要预先支付域名年费。有关更多信息，请参阅 *Amazon Route 53 开发人员指南*中的[注册新域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)。

## 步骤 1：创建 S3 存储桶
<a name="cf-s3-step1"></a>

创建存储桶来存储计划流式传输的原始视频。

**创建存储桶**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要在其中创建存储桶的区域。
**注意**  
要最大程度地减少延迟和成本以及满足法规要求，请选择一个靠近您的区域。在某一区域存储的对象将一直留在该区域，除非您特意将其转移到其他区域。有关 Amazon S3 AWS 区域的列表，请参阅《Amazon Web Services 一般参考》**中的 [AWS 服务 端点](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 选择**创建存储桶**。此时将打开**创建存储桶**页面。

1. 对于**存储桶名称**，输入您的存储桶的名称（例如 **tutorial-bucket**）。

   有关 Amazon S3 存储桶命名的更多信息，请参阅 [通用存储桶命名规则](bucketnamingrules.md)。

1. 对于**区域**，选择要放置存储桶的 AWS 区域。

   如果可能，您应选择最接近大多数观看者的区域位置。有关存储桶区域的更多信息，请参阅 [通用存储桶概述](UsingBucket.md)。

1. 对于**阻止此存储桶的公有访问设置**，保留默认设置（**阻止*全部*公有访问权限**已启用）。

   即使启用**阻止*全部*公有访问**，观看者仍然可以通过 CloudFront 访问上传的视频。此特征使用 CloudFront 托管存储在 S3 中视频的主要优势。

   除非需要为您的用例关闭一个或多个设置，我们建议您启用所有设置。有关阻止公有访问的更多信息，请参阅 [阻止对您的 Amazon S3 存储的公有访问](access-control-block-public-access.md)。

1. 对于其余设置，保留默认值。

   （可选）如果要为您的特定用例配置其他存储桶设置，请参阅 [创建通用存储桶](create-bucket-overview.md)。

1. 选择**创建存储桶**。

## 步骤 2：将视频上传到 S3 存储桶
<a name="cf-s3-step2"></a>

以下过程介绍了如何使用控制台将视频文件上传到 S3 存储桶。如果将许多大型视频文件上传到 S3 时，您还可以使用 [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) 配置快速安全的文件传输。Transfer Acceleration 可以加快视频上传到 S3 存储桶的速度，以便远距离传输较大的视频。有关更多信息，请参阅 [使用 Amazon S3 Transfer Acceleration 配置快速、安全的文件传输](transfer-acceleration.md)。

**将文件上传到存储桶**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 在**通用存储桶**列表中，选择您在[步骤 1](#cf-s3-step1) 中创建的存储桶名称（例如 **tutorial-bucket**），以便将您的文件上传到其中。

1. 在存储桶的**对象** 选项卡上，选择**上传**。

1. 在**上传**页面的**文件和文件夹**下，选择**添加文件**。

1. 选择要上传的文件，然后选择**打开**。

   例如，您可以上传名为`sample.mp4`的视频文件。

1. 选择**上传**。

## 步骤 3：创建 CloudFront 源访问身份
<a name="cf-s3-step3"></a>

要限制从 S3 存储桶直接访问视频，请创建一个称为源访问身份（OAI）的特殊 CloudFront 用户。您会在本教程的后面部分中将 OAI 与您的分配关联。通过使用 OAI，您可以确保观看者无法绕过 CloudFront 并直接从 S3 存储桶获取视频。只有 CloudFront OAI 才能访问 S3 存储桶中的文件。有关更多信息，请参阅《Amazon CloudFront 开发人员指南》**中的[限制对 Amazon S3 源的访问](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)。



**重要**  
如果您用于托管静态网站的存储桶已使用具有 AWS Key Management Service（AWS KMS）密钥的服务器端加密（SSE-KMS）进行加密，则必须使用来源访问控制（OAC）而不是来源访问身份（OAI）来保护来源。OAI 不支持 SSE-KMS，因此您必须改用 OAC。有关 OAC 的更多信息，请参阅《Amazon CloudFront 开发人员指南》**中的[限制对 Amazon S3 源的访问](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)。

**创建 CloudFront OAI**

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格的**安全**部分，选择**来源访问**。

1. 在**身份**选项卡下，选择**创建来源访问身份**。

1. 输入名称（例如，**S3-OAI**) 作为新的源访问身份。

1. 选择**创建**。

## 步骤 4：创建 CloudFront 分配
<a name="cf-s3-step4"></a>

要使用 CloudFront 在您的 S3 存储桶中提供和分发视频，您必须创建 CloudFront 分配。

**Topics**
+ [创建 CloudFront 分配。](#cf-s3-step4-create-cloudfront)
+ [查看存储桶策略](#cf-s3-step4-review-bucket-policy)

### 创建 CloudFront 分配。
<a name="cf-s3-step4-create-cloudfront"></a>

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格中，选择**分发**。

1. 选择**创建分发**。

1. 在**源**部分中，针对**源域**，选择以您在[步骤 1](#cf-s3-step1) 中创建的 S3 存储桶的名称开头的 S3 源域名（例如，**tutorial-bucket**)。

1. 对于**来源访问**，请选择**遗留访问身份**。

1. 在**源访问身份**下，选择您在[步骤 3](#cf-s3-step3) 中创建的现有源访问身份（例如，**S3-OAI**)。

1. 在**存储桶策略**下，选择**是，更新存储桶策略**。

1. 对于**默认缓存行为**部分，在**观看者协议策略**下，选择**重新定向 HTTP 至 HTTPS**。

   当您选择此特征时，HTTP 请求会自动重定向到 HTTPS，保护您的网站并保护观看者的数据。

1. 对于**默认缓存行为** 部分中的其他设置，请保留默认值。

   （可选）您还可以控制文件在 CloudFront 转发另一请求到您的源之前留在 CloudFront 缓存中的时长。减少持续时间让您可提供动态内容。增加持续时间意味着您的观看者将获得更好的性能，因为直接从边缘缓存提供文件的可能性更大。较长的持续时间还会减少源的负载。有关更多信息，请参阅 *Amazon CloudFront 开发人员指南*中的[管理内容在边缘缓存中保留的时长（过期时间）](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)。

1. 对于其他部分，将其余设置保留设置为默认值。

   有关不同设置选项的更多信息，请参阅 *Amazon CloudFront 开发人员指南*中的[您创建或更新分发时指定的值](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html)。

1. 在页面底部，选择**创建分发**。

1. 在 CloudFront 分配的**常规**选项卡中，在**详细信息**下，分配的**上次修改**列的值从**部署中**更改为上次修改分配的时间戳。该过程通常需要花费几分钟的时间。

### 查看存储桶策略
<a name="cf-s3-step4-review-bucket-policy"></a>

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**存储桶**。

1. 在**存储桶**列表中，选择您之前用作 CloudFront 分配源的存储桶名称（例如，**tutorial-bucket**)。

1. 选择**权限**选项卡。

1. 在**存储桶策略**部分中，确认您看到类似于存储桶策略文本中以下内容的语句：

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Id": "PolicyForCloudFrontPrivateContent",
       "Statement": [
           {
               "Sid": "1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::tutorial-bucket/*"
           }
       ]
   }
   ```

   这是您之前选择**是，更新存储桶策略**时 CloudFront 分配添加到存储桶策略的语句。

   此存储桶策略更新表示您已成功配置 CloudFront 分配以限制对 S3 存储桶的访问。由于存在此限制，只能通过 CloudFront 分配访问存储桶中的对象。

## 步骤 5：通过 CloudFront 分配访问视频
<a name="cf-s3-step5"></a>

现在，CloudFront 可以为存储在 S3 存储桶中的视频提供服务。要通过 CloudFront 访问您的视频，您必须将 CloudFront 分配域名与 S3 存储桶中视频路径组合在一起。

**用 CloudFront 分配域名创建 S3 视频的 URL**

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格中，选择**分发**。

1. 要获取分发域名，请执行以下操作：

   1. 在**源**列中，通过查找其源名称来识别正确的 CloudFront 分配，该名称以[步骤 1](#cf-s3-step1) 中创建的 S3 存储桶开头（例如，**tutorial-bucket**)。

   1. 从列表中找到分布后，扩大**域名**列，复制域名值来获取您的 CloudFront 分配。

1. 在新浏览器选项卡中，粘贴您之前复制的分发域名。

1. 返回到上一个浏览器选项卡，然后通过以下网址打开 S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**存储桶**。

1. 在**存储桶**列表中，选择您在[步骤 1](#cf-s3-step1) 中创建的存储桶名称（例如，**tutorial-bucket**)。

1. 在**对象**列表中，选择您在[步骤 2](#cf-s3-step2) 中上传的视频名称（例如，`sample.mp4`)。

1. 在对象详细信息页面上的**对象概述**部分中，复制**密钥**值。此值是指向 S3 存储桶中上传视频对象的路径。

1. 返回您之前粘贴分发域名的浏览器选项卡，在分发域名之后输入正斜杠 (**/**)，然后粘贴您之前复制的视频的路径（例如，`sample.mp4`)。

   现在，您的 S3 视频可以公开访问，并通过 CloudFront 托管在类似于以下的 URL 中：

   ```
   https://CloudFront distribution domain name/Path to the S3 video
   ```

   使用适当的值替换 *CloudFront 分配域名*和 *S3 视频的路径*。示例 URL 为 **https://d111111abcdef8.cloudfront.net/sample.mp4**

## 步骤 6：配置您的 CloudFront 分配以使用自定义域名
<a name="cf-s3-step6"></a>

要使用自己的域名而非 URL 中的 CloudFront 域名来访问 S3 视频，您必须在 CloudFront 分配中添加备用域名。

**Topics**
+ [请求 SSL 证书](#cf-s3-step6-create-SSL)
+ [将备用域名添加到您的 CloudFront 分配。](#cf-s3-step6-custom-domain)
+ [创建 DNS 记录，将备用域名的流量路由到您的 CloudFront 分配的域名](#cf-s3-step6-DNS-record)
+ [检查是否为您的分发启用了 IPv6，并根据需要创建另一个 DNS 记录](#s3-step6-ipv6)

### 请求 SSL 证书
<a name="cf-s3-step6-create-SSL"></a>

要允许观看者在视频流的 URL 中使用 HTTPS 和自定义域名，请使用 AWS Certificate Manager (ACM) 以请求安全套接字层 (SSL) 证书。SSL 证书建立了指向网站的加密网络连接。

1. 登录到 AWS 管理控制台 并通过 [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/) 打开 ACM 控制台。

1. 如果显示介绍页面，请在**设置证书**中，选择**开始**。

1. 在**请求证书**页面上，选择**请求公有证书**，然后选择**请求证书**。

1. 在**添加域名**页面上，键入您要使用 SSL/TLS 证书保护的站点的完全限定域名 (FQDN)。使用星号 (`*`) 创建通配符证书保护同一域中的多个站点名称。具体来说，在本教程中，键入 **\$1** 和您在[先决条件](#cf-s3-prerequisites)中配置的自定义域名。例如，输入 **\$1.example.com**，然后选择**下一步**。

   有关更多信息，请参阅 *AWS Certificate Manager 用户指南*中的[请求 ACM 公有证书（控制台）](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console)。

1. 在**选择验证方法**页面上，选择 **DNS 验证**。然后选择**下一步**。

   如果您可以编辑 DNS 配置，建议使用 DNS 域验证而不是电子邮件验证。相对于电子邮件验证，DNS 验证有多种优势。有关更多信息，请参阅 *AWS Certificate Manager 用户指南*中的[选项 1：DNS 验证](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)。

1. （可选）在**添加标签**页面上，您可以选择用元数据标记证书。

1. 选择**审核**。

1. 在**审核**页面上，验证**域名**和**验证方法**下的信息都正确无误。然后，选择**确认和请求**。

   **验证**页面显示正在处理您的请求，并且正在验证证书域。等待验证的证书处于**等待验证**状态。

1. 在**验证**页面上，选择自定义域名左侧的向下箭头，然后选择**在 Route 53 中创建记录**以通过 DNS 验证您的域所有权。

   这将添加由 AWS Certificate Manager 提供的 CNAME 记录到您的 DNS 配置。

1. 在**在 Route 53 中创建记录**对话框中，选择**创建**。

   **验证**页面应在底部显示**成功**状态通知。

1. 选择**继续**查看**证书**列表页。

   新证书的**状态**将在 30 分钟内从**等待验证**更改为**已颁发**。

### 将备用域名添加到您的 CloudFront 分配。
<a name="cf-s3-step6-custom-domain"></a>

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格中，选择**分发**。

1. 为您在[步骤 4](#cf-s3-step3) 中创建的分发选择 ID。

1. 在**常规**选项卡，转到**设置**部分，然后选择**编辑**。

1. 在**编辑设置**页面上，对于**备用域名（CNAME）- *可选***，选择**添加项目**，以添加要在此 CloudFront 分配提供的 S3 视频 URL 中使用的自定义域名。

   例如，在本教程中，如果您要路由子域，如 `www.example.com`，请输入带域名 (`example.com`) 的子域名 (`www`)。具体来说，输入 **www.example.com**。
**注意**  
您添加的备用域名（CNAME）必须包含您之前附加到 CloudFront 分配的 SSL 证书。

1. 对于**自定义 SSL 证书 - *可选***，选择您在之前请求的 SSL 证书（例如，**\$1.example.com**)。
**注意**  
如果在请求后没有立即看到 SSL 证书，则可以等待 30 分钟，然后刷新列表，直到 SSL 证书可供您选择。

1. 对于其余设置，保留默认值。选择**保存更改**。

1. 在分发的**常规**选项卡中，请等待**上次修改**的值从**部署中**更改为上次修改分发的时间戳。

### 创建 DNS 记录，将备用域名的流量路由到您的 CloudFront 分配的域名
<a name="cf-s3-step6-DNS-record"></a>

1. 登录 AWS 管理控制台，并通过以下网址打开 Route 53 控制台：[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在左侧导航窗格中，选择**托管区域**。

1. 在**托管区域**页面上，选择 Route 53 在[先决条件](#cf-s3-prerequisites)中为您创建的托管区域名称（例如，**example.com**)。

1. 选择**创建记录**，然后使用**快速创建记录**方法。

1. 对于**记录名称**，请保持记录名称的值与您在之前添加的 CloudFront 分配的备用域名相同。

   在本教程中，要将流量路由到子域，如 `www.example.com`，请输入不带域名的子域名。例如，在您的自定义域名之前仅输入 **www** 文本字段。

1. 在**记录类型**中，选择 **A – 将流量路由到 IPv4 地址和某些 AWS 资源**。

1. 对于**值**，选择**别名**切换以启用别名资源。

1. 在**将流量路由至**下，从下拉列表中选择**别名到 CloudFront 分配**。

1. 在**选择分发**搜索框中，选择您在[步骤 4](#cf-s3-step4) 中创建的 CloudFront 分配的域名。

   要查找您的 CloudFront 分配域名，请执行以下操作：

   1. 在新浏览器选项卡中，登录到 AWS 管理控制台 并通过 [https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home) 打开 CloudFront 控制台。

   1. 在左侧导航窗格中，选择**分发**。

   1. 在**源**列中，通过查找其源名称来识别正确的 CloudFront 分配，该名称以[步骤 1](#cf-s3-step1) 中创建的 S3 存储桶开头（例如，**tutorial-bucket**)。

   1. 从列表中找到分发后，扩大**域名**列，查找域名来获取您的 CloudFront 分配。

1. 在 Route 53 控制台中的**创建记录**页面上，对于其余设置，请保留默认值。

1. 选择**创建记录**。

### 检查是否为您的分发启用了 IPv6，并根据需要创建另一个 DNS 记录
<a name="s3-step6-ipv6"></a>

如果为您的分发启用了 IPv6，则必须创建另一个 DNS 记录。

1. 要检查是否为分发启用了 IPv6，请执行以下操作：

   1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

   1. 在左侧导航窗格中，选择**分发**。

   1. 选择您在[步骤 4](#cf-s3-step4) 中创建的 CloudFront 分配的 ID。

   1. 在**常规**选项卡上，在**设置**下，请检查是否**启用** **IPv6**。

      如果为您的分发启用了 IPv6，则必须创建另一个 DNS 记录。

1. 如果为分发启用了 IPv6，请执行以下操作来创建 DNS 记录：

   1. 登录 AWS 管理控制台，并通过以下网址打开 Route 53 控制台：[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

   1. 在左侧导航窗格中，选择**托管区域**。

   1. 在**托管区域**页面上，选择 Route 53 在[先决条件](#cf-s3-prerequisites)中为您创建的托管区域名称（例如，**example.com**)。

   1. 选择**创建记录**，然后使用**快速创建记录**方法。

   1. 对于**记录名称**，在自定义域名之前的文本字段中，输入您在之前创建 IPv4 DNS 记录时键入的相同值。例如，在本教程中，要将流量路由到子域 `www.example.com`，请仅输入 **www**。

   1. 对于**记录类型**，选择 **AAAA-将流量路由到 IPv6 地址和 AWS 一些资源**。

   1. 对于**值**，选择**别名**切换以启用别名资源。

   1. 在**将流量路由至**下，从下拉列表中选择**别名到 CloudFront 分配**。

   1. 在**选择分发**搜索框中，选择您在[步骤 4](#cf-s3-step4) 中创建的 CloudFront 分配的域名。

   1. 对于其余设置，保留默认值。

   1. 选择**创建记录**。

## 步骤 7：用自定义域名通过 CloudFront 分配访问 S3 视频
<a name="cf-s3-step7"></a>

要用自定义 URL 访问 S3 视频，您必须将备用域名与 S3 存储桶中视频路径结合起来。

**创建自定义 URL 通过 CloudFront 分配访问 S3 视频**

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格中，选择**分发**。

1. 要获取您的 CloudFront 分配的备用域名，请执行以下操作：

   1. 在**源**列中，通过在[步骤 1](#cf-s3-step1) 中创建的 S3 存储桶名称查找源名称来识别正确的 CloudFront 分配（例如，**tutorial-bucket**)。

   1. 从列表中找到分发后，扩大**备用域名**列，复制 CloudFront 分配的备用域名值。

1. 在新的浏览器选项卡中，粘贴 CloudFront 分配的备用域名。

1. 返回到上一个浏览器选项卡，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 查找[步骤 5](#cf-s3-step5) 中解释的 S3 视频的路径。

1. 返回到之前粘贴备用域名的浏览器选项卡，键入正斜杠 (**/**)，然后粘贴 S3 视频的路径（例如，`sample.mp4`)。

   现在，您的 S3 视频可以公开访问，并可通过 CloudFront 从类似于以下的自定义 URL 中托管：

   ```
   https://CloudFront distribution alternate domain name/Path to the S3 video
   ```

   使用适当的值替换 *CloudFront 分配备用域名*和 *S3 视频的路径*。示例 URL 为 **https://www.example.com/sample.mp4**。

## （可选）步骤 8：查看有关您的 CloudFront 分配接收的请求的数据
<a name="cf-s3-step8"></a>

**查看有关您的 CloudFront 分配接收的请求数据**

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧窗格中，在**报告和分析**中，从控制台中选择报告，范围从**缓存统计数据**、**常见对象**、**顶级推荐人**、**使用**和**观看者**。

   您可以筛选每个报告仪表板。有关更多信息，请参阅 [Amazon CloudFront 开发人员指南](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/reports.html)中的*控制台中的 CloudFront 报告*。

1. 要筛选数据，请选择您在[步骤 4](#cf-s3-step4) 中创建的 CloudFront 分配的 ID。

## 步骤 9：清除
<a name="cf-s3-step9"></a>

如果您仅使用 CloudFront 和 Route 53 托管 S3 串流视频作为学习练习，请删除您分派的 AWS 资源，使其不再产生费用。

**注意**  
注册域名时，会立即产生费用，这是不可逆转的。您可以选择不自动续订域名，但要预先支付域名年费。有关更多信息，请参阅 *Amazon Route 53 开发人员指南*中的[注册新域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)。

**Topics**
+ [删除 CloudFront 分配](#cf-s3-step9-delete-cf)
+ [删除 DNS 记录](#cf-s3-step9-delete-dns)
+ [删除您的自定义域公有托管区域](#cf-s3-step9-delete-hosted-zone)
+ [从 Route 53 中删除自定义域名](#cf-s3-step9-delete-domain)
+ [删除 S3 源存储桶中的原始视频](#cf-s3-step9-delete-video)
+ [删除 S3 源存储桶](#cf-s3-step9-delete-bucket)

### 删除 CloudFront 分配
<a name="cf-s3-step9-delete-cf"></a>

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左侧导航窗格中，选择**分发**。

1. 在**源**列中，通过在[步骤 1](#cf-s3-step1) 中创建的 S3 存储桶名称查找以其开头的源名称，识别正确的 CloudFront 分配（例如，**tutorial-bucket**)。

1. 要删除 CloudFront 分配，必须先将其禁用。
   + 如果**状态**列的值为**已启用**，**上次修改**的值是上次修改分发的时间戳，请继续禁用分发，然后再删除它。
   + 如果**状态**的值为**已启用**，并且**上次修改**的值为**部署中**，请等待**状态**的值更改为上次修改分配的时间戳。然后继续禁用分发，再删除它。

1. 要禁用 CloudFront 分配，请执行以下操作：

   1. 在**分发**列表中，选中要删除分发的 ID 旁边的复选框。

   1. 要禁用分发，选择**禁用**，然后选择**禁用**确认。

      如果禁用的分发包含一个相关的备用域名，则 CloudFront 会停止接受该域名（例如，`www.example.com`）的流量，即便另一个分发有一个包含通配符 (`*`) 且匹配同样域的备用域名（例如，`*.example.com`）。

   1. **状态**的值立即变为**禁用**。等到**上次修改**的值从**部署中**变为上次修改分发的时间戳。

      由于 CloudFront 必须将此更改传播到所有边缘站点，所以可能需要几分钟时间才能完成更新，并且**删除**选项可供您删除分发。

1. 要删除禁用的分发，请执行以下操作：

   1. 选中要删除分发的 ID 旁边的复选框。

   1. 选择**删除**，然后选择**删除**以确认。

### 删除 DNS 记录
<a name="cf-s3-step9-delete-dns"></a>

如果要删除域的公有托管区域（包括 DNS 记录），请参阅 *Amazon Route 53 开发人员指南*中的 [删除您的自定义域公有托管区域](#cf-s3-step9-delete-hosted-zone)。如果您只想删除在[步骤 6](#cf-s3-step6) 中创建的 DNS 记录，执行以下操作：

1. 登录 AWS 管理控制台，并通过以下网址打开 Route 53 控制台：[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在左侧导航窗格中，选择**托管区域**。

1. 在**托管区域**页面上，选择 Route 53 在[先决条件](#cf-s3-prerequisites)中为您创建的托管区域名称（例如，**example.com**)。

1. 在记录列表中，选择要删除的记录旁边的复选框（在[步骤 6](#cf-s3-step6) 中创建的记录)。
**注意**  
您不能删除**类型**值为 **NS**或 **SOA** 的记录。

1. 选择**删除记录**。

1. 要确认删除，请选择**删除**。

   对记录的更改需要一定时间才会传播到 Route 53 DNS 服务器。目前，验证更改是否已传播的唯一方式是使用 [GetChange API 操作](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)。更改通常在 60 秒内传播到所有 Route 53 服务器。

### 删除您的自定义域公有托管区域
<a name="cf-s3-step9-delete-hosted-zone"></a>

**警告**  
如果您希望保留域注册，但停止将互联网流量路由到您的网站或 Web 应用程序，建议您删除托管区域（如前一节所述）中的记录，而不是删除托管区域。  
如果删除托管区域，其他人可以劫持域并使用您的域名将流量路由到他们自己的资源。  
此外，如果您删除托管区域，则无法取消删除它。您必须创建新的托管区域并更新域注册的名称服务器，这最多需要 48 个小时生效。  
如果您想要使域在互联网上不可用，可以将 DNS 服务转移到免费的 DNS 服务，然后删除 Route 53 托管区域。这可防止以后的 DNS 查询可能被错误路由。  
如果已经用 Route 53 注册域，请参阅 *Amazon Route 53 开发人员指南*中的[为域添加或更改名称服务器和粘附记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html)，了解有关将 Route 53 名称服务器替换为新 DNS 服务的名称服务器的信息。
如果此域已向其他注册商注册，请使用注册商提供的方法更改此域的名称服务器。
如果要删除子域 (`www.example.com`) 的托管区域，则不需要更改域 (`example.com`) 的名称服务器。

1. 登录 AWS 管理控制台，并通过以下网址打开 Route 53 控制台：[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在左侧导航窗格中，选择**托管区域**。

1. 在**托管区域**页面上，选择您要删除的托管区域所对应的行。

1. 在托管区域的**记录**选项卡上，请确认您要删除的托管区域仅包含 **NS** 和 **SOA** 记录。

   如果它包含其他记录，请先将其删除。

   如果您为子域的托管区域创建了任何 NS 记录，请也删除此类记录。

1. 在托管区的 **DNSSEC 签署**选项卡上，禁用 DNSSEC 签名（如果启用）。有关更多信息，请参阅 *Amazon Route 53 开发人员指南*中的[禁用 DNSSEC 签名](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-disable.html)。

1. 在托管区域的详细信息页面顶部，选择**删除区域**。

1. 若要确认删除，请输入 **delete**，然后选择**删除**。

### 从 Route 53 中删除自定义域名
<a name="cf-s3-step9-delete-domain"></a>

对于大多数顶级域 (TLD)，可在不需要域时删除域注册。如果在注册的计划到期时间之前从 Route 53 删除域名注册，AWS 将不退还注册费。有关更多信息，请参阅 *Amazon Route 53 开发人员指南*中的[删除域名注册](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html)。

**重要**  
如果您想在 AWS 账户 之间转移域或将域转移到另一个注册商，请不要删除域并期望立即重新注册。相反，请参阅 *Amazon Route 53 开发人员指南*中的适用文档：  
[将域转移到其他 AWS 账户](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html)
[将域从 Amazon Route 53 转移到另一注册商](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html)

### 删除 S3 源存储桶中的原始视频
<a name="cf-s3-step9-delete-video"></a>

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**存储桶**。

1. 在**存储桶**列表中，选择您在[步骤 2](#cf-s3-step2) 中将视频上传到其中的存储桶名称（例如，**tutorial-bucket**)。

1. 在**对象**选项卡上，选中要删除的对象名称左侧的复选框（例如，`sample.mp4`）。

1. 选择**删除**。

1. 在**永久删除对象？**下方，输入 **permanently delete** 以确认您要删除此对象。

1. 选择**删除对象**。

### 删除 S3 源存储桶
<a name="cf-s3-step9-delete-bucket"></a>

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**存储桶**。

1. 在**存储桶**列表中，选择您在[步骤 1](#cf-s3-step1) 中创建的存储桶名称旁边的选项按钮（例如，**tutorial-bucket**)。

1. 选择**删除**。

1. 在**删除存储桶**页面上，通过在文本字段中输入存储桶名称来确认要删除存储桶，然后选择**删除存储桶**。

## 后续步骤
<a name="cf-s3-next-steps"></a>

完成本教程后，您可以进一步探索以下相关使用案例：
+ 将 S3 视频转换为特定电视或连接设备所需的流媒体格式，然后再使用 CloudFront 分配托管这些视频。

  要使用 Amazon S3 批量操作、AWS Lambda 和 AWS Elemental MediaConvert 将视频集批量转码为各种输出媒体格式，请参阅[教程：使用 S3 批量操作对视频进行批量转码](tutorial-s3-batchops-lambda-mediaconvert-video.md)。
+ 使用 CloudFront 和 Route 53 托管存储在 S3 中的其他对象，如图像、音频、动态图形、样式表、HTML、JavaScript、反应应用等。

  有关示例，请参阅 [教程：使用注册到 Route 53 的自定义域配置静态网站](website-hosting-custom-domain-walkthrough.md) 和 [使用 Amazon CloudFront 为网站提速](website-hosting-cloudfront-walkthrough.md)。
+ 使用 [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) 配置快速安全的文件传输。Transfer Acceleration 可以加快视频上传到 S3 存储桶的速度，以便远距离传输较大的视频。Transfer Acceleration 通过 CloudFront 全球分布的边缘站点和 AWS 骨干网络路由流量，提高传输性能。它还利用网络协议优化。有关更多信息，请参阅 [使用 Amazon S3 Transfer Acceleration 配置快速、安全的文件传输](transfer-acceleration.md)。