Amazon Route 53
开发人员指南 (API 版本 2013-04-01)

选择路由策略

要创建记录,需要先选择一个路由策略,它决定了 Amazon Route 53 响应查询的方式:

  • 简单路由策略 – 对于为您的域执行给定功能的单一资源(例如为 example.com 网站提供内容的 Web 服务器),可以使用该策略。

  • 故障转移路由策略 – 如果您想要配置主动-被动故障转移,则可以使用该策略。

  • 地理位置路由策略 – 如果您想要根据用户的位置来路由流量,则可以使用该策略。

  • 地理位置临近度路由策略 – 用于根据资源的位置来路由流量,以及(可选)将流量从一个位置中的资源转移到另一个位置中的资源。

  • 延迟路由策略 – 如果您的资源位于多个 AWS 区域,并且您想要将流量路由到提供最佳延迟的区域,则可以使用该策略。

  • 多值应答路由策略 – 如果您想要让 Route 53 用随机选择的正常记录(最多八条)响应 DNS 查询,则可以使用该策略。

  • 加权路由策略 – 用于按照您指定的比例将流量路由到多个资源。

简单路由

简单路由让您可以配置标准 DNS 记录,无需特殊 Route 53 路由,例如加权或延迟。使用简单路由,您通常将流量路由到单个资源,例如,路由到您网站的 Web 服务器。

如果您在 Route 53 控制台中选择简单路由策略,就无法创建具有相同名称和类型的多个记录,但您可在相同记录中指定多个值,例如多个 IP 地址。(如果您为别名记录选择简单路由策略,则只可以指定一个 AWS 资源或指定当前托管区域中的一个记录。) 如果您在记录中指定多个值,则 Route 53 将所有值以随机顺序返回到递归解析程序,解析程序将值返回到提交 DNS 查询的客户端(例如,Web 浏览器)。然后,客户端选择值并重新提交查询。

有关您在使用简单路由策略创建记录时所指定值的信息,请参阅以下主题:

故障转移路由

故障转移路由允许您将流量路由到某个资源 (如果该资源正常) 或路由到其他资源 (如果第一个资源不正常)。主和辅助记录可以将流量路由到从配置为网站的 Amazon S3 存储桶到复杂记录树的任何目的地。有关更多信息,请参阅 主动/被动故障转移

有关您在使用故障转移路由策略创建记录时所指定值的信息,请参阅以下主题:

地理位置路由

地理位置路由允许您根据用户的地理位置 (即 DNS 查询的来源位置) 选择提供流量的资源。例如,您可能想要将来自欧洲的所有查询全部路由到位于法兰克福区域的 ELB 负载均衡器。

使用地理位置路由时,您可以对您的内容进行本地化,以用户使用的语言显示您网站的部分或全部。您还可以使用地理位置路由,以便仅向您拥有分配权限的位置分配内容。另一种可能的用途是以可预测、易于管理的方式在终端节点间进行负载均衡,以便每个用户位置一致地路由到同一终端节点。

您可以按大陆、按国家/地区或者按美国各州指定地理位置。如果您为重叠的地理区域创建了单独的记录(例如,北美一个记录,加拿大一个记录),则最小的地理区域具有更高的优先级。这允许您将某个大陆的部分查询路由到一个资源,并将该大陆上选定国家/地区的查询路由到另一个资源。(有关每个大陆上的国家/地区的列表,请参阅位置。)

地理位置路由的工作原理是将 IP 地址映射到位置。但是,有些 IP 地址无法映射到地理位置,因此即使您创建了覆盖全部七大洲的地理位置记录,Amazon Route 53 仍会收到一些来自其无法识别的位置的 DNS 查询。您可以创建一条默认记录,用以处理来自未映射到任何位置的 IP 地址的查询,以及来自您未创建地理位置记录的位置的查询。如果您不创建默认记录,则对于来自上述位置的查询,Route 53 将返回“无应答”响应。

有关更多信息,请参阅 用户如何 Amazon Route 53 使用 EDNS0 估计用户的位置

有关您在使用地理定位路由策略创建记录时所指定值的信息,请参阅以下主题:

地理位置临近度路由 (仅流量)

地理位置临近度路由能让 Amazon Route 53 根据您的用户和资源的地理位置将流量路由到您的资源。(可选)您也可以通过指定一个值来增加或减少路由到指定资源的流量,该值称为偏差。偏差可以增加或减少路由到某个资源的流量所来自的地理区域的大小。

要使用地理位置临近度路由,您必须使用 Route 53 流量。为您的资源创建地理位置临近度规则并为每个规则指定以下值之一:

  • 如果您使用的是 AWS 资源,则是您在其中创建资源的 AWS 区域

  • 如果您使用的是非 AWS 资源,则是资源的纬度和经度

(可选) 要更改 Route 53 路由到某个资源的流量所来自的地理区域的大小,请为该偏差指定一个适用值:

  • 要扩大 Route 53 路由到某个资源的流量所来自的地理区域的大小,请为该偏差指定一个介于 1 和 99 之间的正整数。Route 53 缩小相邻区域的大小。

  • 要缩小 Route 53 路由到某个资源的流量所来自的地理区域的大小,请指定一个介于 -1 和 -99 之间的负偏差。Route 53 将扩大相邻区域的大小。

以下地图显示了四个 AWS 区域(编号 1 到 4),以及使用纬度和经度指定的南非约翰内斯堡的一个位置 (5)。


					此世界地图显示当您有地理位置临近度记录针对位于美国西部(俄勒冈)、美国东部(弗吉尼亚北部)、欧洲西部(巴黎)和亚太区域(东京)的资源,并且您有一条记录针对南非约翰内斯堡的非 AWS 资源时,如何路由流量。

以下地图显示如果您为美国东部(弗吉尼亚北部)区域(地图上的编号为 2)添加了偏差值 +25 时,将发生的情况。相比从前,来自更大面积的北美区域以及所有南美区域的流量将路由到该区域中的资源。


					此世界地图显示当您在美国东部(弗吉尼亚北部)区域中添加了偏差值 +25 时,如何路由流量。

以下地图显示如果您将美国东部(弗吉尼亚北部)区域的偏差值改为 -25 时,将发生的情况。相比从前,来自较小面积的北美和南美区域的流量路由到该区域中的资源,更多流量路由到临近区域 135 中的资源。


					此世界地图显示当您在美国东部(弗吉尼亚北部)区域中添加了偏差值 -25 时,如何路由流量。

更改资源的偏移会造成的影响取决于多种因素,包括:

  • 您具有的资源的数量。

  • 资源彼此之间的距离。

  • 您在地理区域之间的边界区域附近拥有的用户数。例如,假设您在 AWS 区域美国东部(弗吉尼亚北部)和美国西部(俄勒冈)有资源,而您在美国得克萨斯州的达拉斯、奥斯汀、圣安东尼奥有许多用户。这些城市与您资源的距离大致相等,因此较小的偏差值更改也会导致从一个 AWS 区域中的资源到另一个区域中的资源流量发生大幅摆动。

我们建议您以较小的增量来更改偏差,以防止由于流量的意外摆动而导致您的资源被耗尽。

有关更多信息,请参阅 用户如何 Amazon Route 53 使用 EDNS0 估计用户的位置

Amazon Route 53 如何使用偏差来路由流量

以下是 Amazon Route 53 用于确定如何流量路由的公式:

正偏差

Biased distance = actual distance * [1 - (bias/100)]

负偏差

Biased distance = actual distance / [1 + (bias/100)]

当偏差的值为正时,Route 53 将认为 DNS 查询的源和您在地理位置临近度记录中指定的资源 (如 AWS 区域中的 EC2 实例) 比实际更接近。例如,假设您具有以下地理位置临近度记录:

  • Web 服务器 A 的记录,它具有正偏差 50

  • Web 服务器 B 的记录,它没有偏差

当某个地理位置临近度记录具有正偏差 50 时,Route 53 会将查询的源与该记录的资源之间的距离减半。之后,Route 53 将计算哪一资源更接近查询的源。假设 Web 服务器 A 与查询的源相距 150 千米,而 Web 服务器 B 与查询的源相距 100 千米。如果这两个记录都没有偏差,Route 53 会将查询路由到 Web 服务器 B,因为它更近。但是,由于 Web 服务器 A 的记录具有正偏差 50,Route 53 将认为 Web 服务器 A 与查询的源相距 75 千米。因此,Route 53 会将查询路由到 Web 服务器 A。

下面是针对正偏差 50 的计算:

Bias = 50 Biased distance = actual distance * [1 - (bias/100)] Biased distance = 150 kilometers * [1 - (50/100)] Biased distance = 150 kilometers * (1 - .50) Biased distance = 150 kilometers * (.50) Biased distance = 75 kilometers

基于延迟的路由

如果您的应用程序托管在多个 AWS 区域中,您可以通过从延迟最低的 AWS 区域处理用户的请求来帮助用户提高性能。

要使用基于延迟的路由,您可以为多个 AWS 区域中的资源创建延迟记录。当 Route 53 收到您的域或子域(example.com 或 acme.example.com)的 DNS 查询时,它确定您为哪些 AWS 区域创建了延迟记录、哪个区域能够为用户提供最低的延迟,然后选择该区域的延迟记录。Route 53 使用所选记录的值(例如 Web 服务器的 IP 地址)进行响应。

例如,假设您在美国西部(俄勒冈)区域和亚太区域(新加坡)区域都有 ELB 负载均衡器。您为每个负载均衡器创建了延迟记录。当位于伦敦的用户在浏览器中输入您的域名时,将出现以下情况:

  1. DNS 将查询路由到 Route 53 名称服务器。

  2. Route 53 查询其有关伦敦与新加坡区域以及伦敦与俄勒冈州区域之间延迟的数据。

  3. 如果伦敦与俄勒冈州区域之间的延迟较低,则 Route 53 使用位于俄勒冈州的负载均衡器的 IP 地址响应查询。如果伦敦与新加坡区域之间的延迟较低,则 Route 53 使用位于新加坡的负载均衡器的 IP 地址响应查询。

由于网络连接和路由的变化,Internet 上主机之间的延迟不会一成不变。基于延迟的路由所依据的是在一段时间内执行的延迟测量,这些测量会反映上述变化。这周路由到俄勒冈区域的请求下周可能会被路由到新加坡区域。

注意

如果浏览器或其他查看器使用的是支持 EDNS0 的 edns-client-subnet 扩展的 DNS 解析程序,DNS 解析程序会向 Route 53 发送用户 IP 地址的截断版本。如果您配置了基于延迟的路由,Route 53 在将流量路由到您的资源时会考虑该值。有关更多信息,请参阅 用户如何 Amazon Route 53 使用 EDNS0 估计用户的位置

有关您在使用延迟路由策略创建记录时所指定值的信息,请参阅以下主题:

多值应答路由

多值应答路由允许您将 Amazon Route 53 配置为返回多个值 (如您的 Web 服务器的 IP 地址) 来响应 DNS 查询。您可以为几乎任意记录指定多个值,但多值应答路由也允许您检查每个资源的运行状况,以便 Route 53 只返回正常资源的值。虽然它不能替代负载均衡器,但由于其具备返回多个可进行运行状况检查的 IP 地址的能力,您可以将它与 DNS 配合使用,以提高可用性和负载均衡性。

要将流量以近乎随机的方式路由到多个资源(例如 Web 服务器),可以为每个资源创建一条多值应答记录,并(可选)将 Route 53 运行状况检查关联至每条记录。Route 53 通过最多八条正常记录响应 DNS 查询,并向不同的 DNS 解析程序提供不同的应答。如果 Web 服务器在解析程序缓存响应后变得不可用,则客户端软件可以尝试响应中提供的其他 IP 地址。

请注意以下几点:

  • 如果为多值应答记录关联了运行状况检查,则 Route 53 仅当运行状况检查通过时才向 DNS 查询返回 IP 地址。

  • 如果您没有为多值应答记录关联运行状况检查,则 Route 53 始终认为记录正常。

  • 如果您有不超过八条正常的记录,Route 53 会向所有 DNS 查询提供所有正常记录。

  • 如果所有记录都不正常,Route 53 会向 DNS 查询提供最多八条不正常的记录。

有关您在使用多值应答路由策略创建记录时所指定值的信息,请参阅多值应答记录的值

加权路由

加权路由允许您将多个资源关联至单个域名 (example.com) 或子域名 (acme.example.com),并选择向每个资源路由多少流量。这可用于多种用途,例如负载均衡、测试软件新版本等。

要配置加权路由,您可以创建与每个资源同名、同类型的记录,然后根据要发送到每个资源的流量的规模为每条记录分配相对权重。Amazon Route 53 根据您分配给记录的权重(占该组中所有记录总权重的比例)向资源发送流量:


					用于计算向给定资源路由多少流量的公式:指定记录的权重/所有记录的权重之和。

例如,如果您想要将极少的一部分流量发送到一个资源,并将其余流量发送到另一个资源,则可以指定权重 1 和 255。权重为 1 的资源将获得 1/256 (1/1+255) 的流量,另一个资源将获得 255/256 (255/1+255) 的流量。您可以通过更改权重来逐渐改变平衡。如果要停止向某个资源发送流量,您可以将该记录的权重更改为 0。

有关您在使加权路由策略创建记录时所指定值的信息,请参阅以下主题:

用户如何 Amazon Route 53 使用 EDNS0 估计用户的位置

为了提高地理位置、临近度和延迟路由的准确性,Amazon Route 53 支持 EDNS0 的 edns-client-subnet 扩展。(EDNS0 向 DNS 协议添加了几个可选扩展。)仅当 DNS 解析程序支持 edns-client-subnet 时,Route 53 才能使用它:

  • 如果浏览器或其他查看器使用的是不支持 edns-client-subnet 的 DNS 解析程序,Route 53 使用 DNS 解析程序的源 IP 地址来粗略估计用户的位置,并使用解析程序位置的 DNS 记录响应地理位置查询。

  • 如果浏览器或其他查看器使用的是支持 edns-client-subnet 的 DNS 解析程序,DNS 解析程序会向 Route 53 发送用户 IP 地址的截断版本。Route 53 根据该截断的 IP 地址而不是 DNS 解析程序的源 IP 地址来确定用户的位置;这通常能够更准确地估计用户的位置。然后,Route 53 使用用户位置的 DNS 记录响应地理位置查询。

有关 edns-client-subnet 的更多信息,请参阅 IETF 草案 Client Subnet in DNS Requests