

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在别名记录和非别名记录之间进行选择
<a name="resource-record-sets-choosing-alias-non-alias"></a>

Amazon Route 53 *别名记录*为 DNS 功能提供特定于 Route 53 的扩展。别名记录允许您将流量路由到选定 AWS 资源，包括但不限于 CloudFront 分配和 Amazon S3 存储桶。它们还允许您将流量从托管区域中的一个记录路由到另一个记录。

与 CNAME 记录不同，您可以在 DNS 命名空间的顶端节点（又称为*顶级域名*）上创建别名记录。例如，如果您注册了 DNS 名称 example.com，则顶级域名为 example.com。您不能为 example.com 创建 CNAME 记录，但可以为 example.com 创建一条会将流量路由到 www.example.com 的别名记录（前提是 www.example.com 的记录类型不是 CNAME 类型）。

Route 53 收到针对别名记录的 DNS 查询时，Route 53 使用该资源的适用值响应：
+ **Amazon API Gateway 自定义区域 API 或边缘优化 API** - Route 53 使用您的 API 的一个或多个 IP 地址响应。
+ **Amazon VPC 接口终端节点** - Route 53 使用您的接口终端节点的一个或多个 IP 地址响应。
+ ** CloudFront 分发** — Route 53 使用一个或多个 IP 地址作为响应，这些服务器可以提供您的内容的CloudFront 边缘服务器。
+ **App Runner 服务** - Route 53 使用一个或多个 IP 地址来响应。
+ **Elastic Beanstalk 环境** - Route 53 使用环境的一个或多个 IP 地址来响应。
+ **Elastic Load Balancing 负载均衡器** - Route 53 使用负载均衡器的一个或多个 IP 地址来响应。这包括应用程序负载均衡器、经典负载均衡器和网络负载均衡器。
+ ** AWS Global Accelerator 加速器** — Route 53 使用加速器的 IP 地址进行响应。
+ ** OpenSearch 服务 — Rout** e 53 使用 OpenSearch 服务自定义域的一个或多个 IP 地址进行响应。
+ **配置为静态网站的 Amazon S3 存储桶** - Route 53 使用 Amazon S3 存储桶的一个 IP 地址来响应。
+ **同一托管区中同类型的其他 Route 53 记录** – Route 53 会如同查询针对由别名记录所引用的记录一样做出响应（请参阅 [别名记录和 CNAME 记录的比较](#resource-record-sets-choosing-alias-non-alias-comparison)）。
+ **AWS AppSync 域名** — Route 53 使用您的接口终端节点的一个或多个 IP 地址进行响应。

有关更多信息，请参阅 [将互联网流量路由到您的 AWS 资源](routing-to-aws-resources.md)。

当您使用别名记录将流量路由到 AWS 资源时，Route 53 会自动识别资源中的更改。例如，假设 example.com 的一个别名记录指向位于 lb1-1234.us-east-2.elb.amazonaws.com 上的一个 Elastic Load Balancing 负载均衡器。如果负载均衡器的 IP 地址更改，Route 53 将使用新 IP 地址自动开始响应 DNS 查询。

如果别名记录指向 AWS 资源，则无法设置生存时间 (TTL)；Route 53 使用该资源的默认 TTL。如果某个别名记录指向同一托管区域中的另一个记录，则 Route 53 将使用该别名记录指向的记录的 TTL。有关 Elastic Load Balancing 当前 TL 值的更多信息，请转到 *Elastic Load Balancing 用户指南*中的[请求路由选择](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing)并搜索“ttl”。

有关使用 Route 53 控制台创建记录的更多信息，请参阅 [通过使用 Amazon Route 53 控制台创建记录](resource-record-sets-creating.md)。有关为别名记录指定的值的信息，请参阅[在您创建或编辑 Amazon Route 53 记录时指定的值](resource-record-sets-values.md)中的相关主题：
+ [简单别名记录的特定值](resource-record-sets-values-alias.md)
+ [加权别名记录的特定值](resource-record-sets-values-weighted-alias.md)
+ [延迟别名记录的特定值](resource-record-sets-values-latency-alias.md)
+ [故障转移别名记录的特定值](resource-record-sets-values-failover-alias.md)
+ [地理位置别名记录的特定值](resource-record-sets-values-geo-alias.md)
+ [地理位置临近度别名记录的特定值](resource-record-sets-values-geoprox-alias.md)
+ [所有路由策略的别名记录的通用值](resource-record-sets-values-alias-common.md)

## 别名记录和 CNAME 记录的比较
<a name="resource-record-sets-choosing-alias-non-alias-comparison"></a>

别名记录与 CNAME 记录类似，但有一些重要的区别。以下列表比较别名记录和 CNAME 记录。

**您可以将查询重定向到的资源**    
**别名记录**  
别名记录只能将查询重定向到选定 AWS 资源，包括但不限于以下资源：  
+ Amazon S3 存储桶
+ CloudFront 分布
+ 同一 Route 53 托管区域中的其它记录
例如，您可以创建一个名为 acme.example.com 的别名记录，该记录将查询重定向到 Amazon S3 存储桶（也称为 acme.example.com）。您还可以创建一个 acme.example.com 别名记录，该记录将查询重定向到 example.com 托管区域中名为 zenith.example.com 的记录。  
**CNAME 记录**  
CNAME 记录可以将 DNS 查询重定向到任何 DNS 记录。例如，您可以创建一条 CNAME 记录，该记录将查询从 acme.example.com 重定向到 zenith.example.com 或 acme.example.org。您不需要使用 Route 53 作为您要将查询重定向到的域的 DNS 服务。

**创建与域同名的记录（顶级域名处的记录）**    
**别名记录**  
在大多数配置中，您可以创建一个与托管区域（区域 APEX）同名的别名记录。一个例外情况是，当您要将来自区域 APEX（如 example.com）的查询重定向到具有类型 CNAME（如 zenith.example.com）的同一托管区域中的记录时。别名记录必须与您要将流量路由到的目标记录具有相同的类型，而为顶级域名创建 CNAME 记录的做法不受支持，即使对于别名记录也是如此。  
**CNAME 记录**  
您不能创建与托管区域（区域 APEX）同名的 CNAME 记录。对于域名 (example.com) 的托管区域和子域 (zenith.example.com) 的托管区域都是如此。

**DNS 查询的定价**    
**别名记录**  
Route 53 不对 AWS 资源的别名查询收费。有关更多信息，请参阅 [Amazon Route 53 定价](https://aws.amazon.com/route53/pricing/)。  
**CNAME 记录**  
Route 53 收取 CNAME 查询费用。  
如果您创建一条 CNAME 记录，此记录重定向到 Route 53 托管区域（同一托管区域或另一托管区域）中另一条记录的名称，则每个 DNS 查询作为两个查询收费：  
+ Route 53 以要重定向到的记录的名称响应第一个 DNS 查询。
+ 然后，DNS 解析程序必须对于第一个响应中的记录提交另一个查询，以获取有关将流量定向到何处的信息，例如 Web 服务器的 IP 地址。
如果 CNAME 记录重定向到由另一个 DNS 服务托管的记录的名称，则 Route 53 对一个查询收取费用。另一个 DNS 服务可能会对第二个查询收取费用。

**在 DNS 查询中指定的记录类型**    
**别名记录**  
仅当别名记录的名称（如 acme.example.com）和别名记录的类型（如 A 或 AAAA）与 DNS 查询中的名称和类型匹配时，Route 53 才响应 DNS 查询。  
**CNAME 记录**  
无论在 DNS 查询中指定的记录类型是什么（如 A 或 AAAA），CNAME 记录都会重定向对记录名称的 DNS 查询。

**记录在 dig 或 nslookup 查询中如何列出**    
**别名记录**  
在对 dig 或 nslookup 查询的响应中，别名记录以您在创建记录时指定的记录类型列出，例如 A 或 AAAA。（您为别名记录指定的记录类型取决于您要将流量路由到的资源。例如，要将流量路由到 S3 存储桶，请指定 A 作为类型。） 别名属性仅在 Route 53 控制台或对编程请求（例如 AWS CLI `list-resource-record-sets` 命令）的响应中可见。  
**CNAME 记录**  
CNAME 记录在响应 dig 或 nslookup 查询时作为 CNAME 记录列出。