在别名记录和非别名记录之间进行选择 - Amazon Route 53
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在别名记录和非别名记录之间进行选择

Amazon Route 53 别名记录为 DNS 功能提供特定于 Route 53 的扩展。别名记录允许您将流量路由到选定的Amazon资源,例如 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 边缘服务器。

  • Elastic Beanstalk 环境 - Route 53 使用环境的一个或多个 IP 地址来响应。

  • Elastic Load Balancing 负载均衡器 - Route 53 使用负载均衡器的一个或多个 IP 地址来响应。这包括应用程序负载均衡器、经典负载均衡器和网络负载均衡器。

  • Amazon Global Accelerator 加速器 - Route 53 使用加速器的 IP 地址来响应。

  • 配置为静态网站的 Amazon S3 存储桶 - Route 53 使用 Amazon S3 存储桶的一个 IP 地址来响应。

  • 同一托管区中同类型的其他 Route 53 记录 – Route 53 会如同查询针对由别名记录所引用的记录一样做出响应(请参阅 别名记录和 CNAME 记录的比较)。

  • Amazon AppSync 域名 – Route 53 使用您的接口端点的一个或多个 IP 地址来响应。

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

如果别名记录指向 Amazon 资源,则您无法设置存活时间 (TTL),Route 53 使用资源的默认 TTL。如果某个别名记录指向同一托管区域中的另一个记录,则 Route 53 将使用该别名记录指向的记录的 TTL。有关 Elastic Load Balancing 当前 TL 值的更多信息,请转到 Elastic Load Balancing 用户指南中的请求路由选择并搜索“ttl”。

有关使用 Route 53 控制台创建记录的更多信息,请参阅 通过使用 Amazon Route 53 控制台创建记录。有关为别名记录指定的值的信息,请参阅在您创建或编辑 Amazon Route 53 记录时指定的值中的相关主题:

别名记录和 CNAME 记录的比较

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

您可以将查询重定向到的资源
别名记录

别名记录只能将查询重定向到选定的 Amazon 资源,例如:

  • 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 查询的定价
别名记录

对于 Amazon 资源的别名查询,Route 53 不收费。有关更多信息,请参阅 Amazon Route 53 定价

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 控制台中或在响应以编程方式发出的请求时可见,例如 Amazon CLI list-resource-record-sets 命令。

CNAME 记录

CNAME 记录在响应 dig 或 nslookup 查询时作为 CNAME 记录列出。