重磅消息!Amazon Route 53 在 AWS 中国区域上线

中国客户迎来久负盛名的DNS及运行状况检查服务

Amazon Web Services (AWS) 今天宣布,Amazon Route 53 在中国正式上线。

Amazon Route 53 服务(以下简称:Route 53) 是一种高可用、可扩展的云域名系统(DNS)Web 服务,提供公共 DNS、私有DNS 和运行状况检查服务。客户可以使用 Amazon Route 53 为其应用程序管理外部访问的DNS,以及在其虚拟私有云 (VPC) 中配置私有 DNS。此外,客户也可以通过设置应用程序组件的运行状况检查,来启用应用程序端点的 DNS 故障转移和状态监控。Route 53 可用于将终端用户路由到亚马逊弹性计算云服务 (Amazon EC2) 的计算实例、亚马逊弹性负载均衡器 (Amazon Elastic Load Balancing) 等 AWS 云服务,以及 AWS 之外的基础设施。

AWS 全球副总裁、大中华区执行董事张文翊表示,“中国客户一直希望享受灵活、可扩展、无需承诺消费、价格低廉、及按所用资源付费的 DNS 服务,而这正是 Route 53 提供的特性。AWS 为客户提供了非常广泛和深入的功能,我们也将不断努力将更多功能带给中国客户。”

之前,中国的 AWS 客户在管理其应用程序的 DNS 时需要采取一些复杂的方法,例如:运行自己的 DNS服务器;使用第三方服务商的 DNS,但功能有限,且没有跟 AWS 集成;或者另外申请 AWS 海外账户来使用 Route 53。这些方法都影响了产品的性能,也提高了成本。 Route 53 在中国的上线将为客户带来极大的便利。客户可以使用 Route 53 作为公共 DNS服务于国内互联网客户,也可以用作虚拟私有云上的私有 DNS 。通过 Route 53 的运行状况检查功能,客户还可以监控应用程序端点的运行状况和性能,并且配置自动的 DNS 故障转移。Route 53 支持各种高级路由技术,包括加权轮询、基于延迟的路由和基于用户位置的路由 (Geo DNS)。

Route 53 被全球客户广泛用于流量管理。汇量科技、TCL 通讯、环球易购、 IGG、茄子快传等中国客户也在 AWS 海外区域利用这一服务以改善流量路由。

广州汇量信息科技有限公司(Mobvista)是一家全球知名的移动广告及营销服务技术平台,专注于为全球应用开发者提供移动广告及数据分析服务。汇量科技在全球多个区域使用了 Route 53,每天处理的用户访问请求最高达 1000 亿次。汇量科技技术副总裁兼首席架构师蔡超表示,“我们非常高兴看到,Amazon Route 53 实现了 AWS 承诺的极高可用性。我们通过 AWS 全球多个区域的 Route 53 服务,实现了基于地理位置的低延迟分发解决方案,向客户交付了卓越的响应速度和使用体验。”

随着 Route 53 在由西云数据运营的 AWS 中国(宁夏)区域推出,您可以打开宁夏区域的控制台找到并直接使用这个服务,您也可以通过 CLI 或者 API 的方法,以编程方式来访问和管理。

利用Route 53构建云上的高可用DNS服务

  • DNS 解析类型和策略

•A - IPv4 地址

•Alias 别名记录

•CNAME - 规范名称

•MX - 邮件交换

•AAAA - IPv6 地址

•TXT,PTR,SRV,SPF,NAPTR,CAA 和 NS 记录

其中,别名记录(Alias记录)是 Amazon 独有的记录类型,有更加快的收敛时间,以及能关联裸域名(根域名),这个是 CNAME 做不到的。比如我们要解析 abc.com 的域名到负载均衡器域名 xxx.cn-northwest-1.elb.amazonaws.com.cn,使用 CNAME 是不能直接解析的,有些厂家能强行做解析但结果会和裸域名上的 MX 记录冲突(因为一般我们企业邮箱会建立在 abc.com上)。这个是 RFC 1034 (参考网站:http://www.faqs.org/rfcs/rfc1034.html) 关于 DNS 解析规则的一些规定。

关于别名记录(Alias记录)和 CNAME 记录的具体的区别可以查看官方文档“在别名记录和非别名记录之间”进行选择。

目前 Route 53 支持的路由策略有:简便,加权,延迟,故障转移,地理位置,多值应答。

关于不同记录如何创建,以及有什么不同,可以查看官方指引文档“您在创建或编辑 Amazon Route 53 记录时指定的值”,在这里就不过多赘述了。

  • DNS 解析过程

简单讲解一下 DNS 的查询过程(公有域名),如果一个终端用户需要访问 www.example.com,会先找到本地的 DNS 服务器,企业网内部的 DNS 服务器,本地运营商的 DNS 服务器;如果该服务器没有缓存 DNS 解析结果,那么会向上做递归查询,查找顶级域名(TLD)的域名服务器;如果这里也没有缓存信息,就会继续找到Route 53的 DNS 服务器,并且在这个服务器上做解析,得到最终的结果 192.0.2.44。并将这个信息返回给用户,用户就能和这个 IP 地址做数据交互了。

  • 公有托管域(Public Zone)控制台操作演示

首先,我们需要将自己拥有的域名的 DNS 解析服务器转移到Route 53 上,这个域名可以在任何第三方域名提供商处购买。具体操作可以参考网页“将 Route 53 作为非活动域的 DNS 服务”。创建好之后我们所有针对该域名的 DNS 解析就都能在 AWS 控制台或者命令行 CLI 上进行操作了。

1.简便策略

我们进入 AWS 控制台,找到 Route 53 这个服务,然后选择托管区域,在托管区域中选择我们刚刚根据指引创建的公有域名托管区域。

点击创建按钮,可以创建简便策略,将一个域名映射到一个 IP 地址上。

2.加权策略

权重我们可以配置1-128之间的数值,并且最后的流量分配比例会按照数值总和按比例分配。

比如图中所示,我们将一个域名按照50%的比例解析到别名1和别名2,这样一半访问这个域名的用户会去到别名1对应的服务器,另一半用户会去到别名2的服务器。这种方法也适合我们做 A/B 测试,或者滚动部署。

3.故障转移策略

故障转移策略,让我们配置一个主副本和辅助副本,默认情况下将域名解析到主副本上,如果健康检查发现主副本出现了故障,则自动切换到辅助副本上。

需要注意的是,这里在“主副本”创建了一个运行状态检查,检查的内容是第一台服务器的 HTTP 服务的健康状态,如果健康检查失败,这个策略就会故障转移到“辅助”的 DNS 记录,如下图所示。

关于如何创建健康检查,可以查看官方文档“Amazon Route 53 运行状况检查的类型”指引。

4.地理位置策略

如下所示,创建了三个区域,中国,新加坡,和默认。将来自不同区域的用户引导到不同的别名记录上面去。

通过第三方的 DNS 测试网站我们可以看到,如果我们模拟用户从全球不同地方解析这个域名,将会得到以下的结果。

我们可以看到,在我们有做特别配置的区域中国和新加坡,分别解析了我们配置的别名记录所对应的 IP 地址,其他国家会匹配默认的规则,解析一条 52 开头的 IP地址。

5.延迟策略

如果我们不需要像上面一样,对国家地理位置做不同解析,而是想针对延迟做不同的解析,我们可以充分利用延迟策略来做这个事情。

如下图,我们创建了2个策略,一个区域是北京,一个区域是美国西部。最终用户将会根据访问这两个区域的延迟不同,来觉得最终解析的目标是别名1,还是别名2。

这种方式也适用于我们构建全球的应用程序,让终端客户就近接入到服务端,访问离客户最近的 AWS 区域。

6.多值应答

如果我们需要一个 DNS 名称能同时解析出多个 IP 地址,我们就需要用到多值应答

设置之后,我们通过 Dig 命令来查看域名解析的结果,发现得到两条 A 记录。

  • 私有托管域(Private Zone)

私有托管区域用于在一个或者多个 VPC 内解析自定义的域或者其子域,支持的记录类型有:A、CNAME,MX,AAAA,TXT,PTR,SRV,SPF,NAPRT,CAA,支持别名,路由策略支持简单、加权、延迟、故障转移、地理位置、多值应答。

以下面的场景进行举例和配置说明,如下图宁夏和北京各有一个 VPC,在 Route 53上创建了私有托管域 myprivatezone.com,在 VPC1 中需要去查询私有域中的 db.myprivatezone.com 子域的 A 记录,在 VPC2 中需要去查询 admin.myprivatezone.com 子域的 AAAA 记录。

下面分别使用 console 界面和命令行来配置,先利用 console 界面创建该 private hosted zone。

创建时先选择了北京区域的 VPC,完成后再添加宁夏区域对应的 VPC,记录托管区 ID,该 ID 在后续演示 CLI 创建子域时需要用到。

创建 db.myprivatezone.com 的 A 记录,选择默认简便路由策略。

在两个 VPC 中解析该域名结果如下:

1.通过命令行(CLI)创建Route 53记录

通过命令行界面创建两条 admin.myprivatezone.com 子域 AAAA 记录,采用故障转移策略。详细命令说明可以参考网站(https://docs.aws.amazon.com/cli/latest/reference/route53/index.html)。

先创建 health check config 的配置,需要是 json 格式,文件名为 healthcheck.json

创建健康检查,注意和 AWS 非中国区域的差别,黄底部分参数为需要额外添加的参数。

另外一个 IP 同样方式创建健康检查,从 console 可以查看到目前两个 IPv6 地址80端口服务都工作正常:

创建 admin.myprivatezone.com 子域的 AAAA 记录,设置 2400 开头的 IPv6 地址为故障转移主副本地址,2404 开头的 IPv6 地址为辅助地址.

先创建 record 的配置,为 json 格式,文件名为 primary.json

HealthCheckId 为前面命令行创建的健康检查时返回的 ID,可以从命令行返回中获取。创建记录,hosted zone ID 为前面通过 console 创建托管私有域时返回的 ID。

辅助地址的创建过程类似,注意替换 "Failover" 值为 "SECONDARY",并匹配健康检查 ID。完成后再两个 VPC 中进行验证,返回都为主地址。

停止主地址中的 web 服务,模拟故障切换,查看健康检查状态,主地址不正常。

在两个 VPC 中验证,确认都已经切换到副本记录:

2.DNS 策略的不同使用场景

•如果业务场景需要服务于全球客户,但是希望针对不同地区的客户分发不同的版本或者界面(最常见的情况是中国国内和海外有2个不同版本),那么可以通过地理位置路由策略,将国内和海外用户解析到不同的服务器上。

•如果自己希望应用程序在部署的过程中采用蓝绿部署或者金丝雀部署策略,那么可以将自己的应用程序的 DNS 按加权路由策略来先将一小部分用户解析到新的应用上,然后后续再逐步切换更多的用户。

•如果您的应用程序由多台负载均衡的服务器组成,那么可以利用多值应答路由策略将一个域名解析到多个 IP 地址上,用户会选择其中一个 IP 地址来连接。

•我们也可以将多个不同的路由策略进行组合使用,比如我们先基于故障转移策略来创建了不同的 CNAME 记录,然后每一个 CNAME 记录又有一定的加权策略来分配不同比例的流量到不同的目的地,如下图所示。

  • 总结

不管是通过控制台,还是 CLI,您都能利用Route53 快速便捷地创建出自己的 DNS 服务。Route53 可以托管公有域名,也可以跨多个 VPC 托管私有域名,支持常用的 IPv4 和 IPv6 等记录。利用其便捷的健康检查和丰富的路由策略,您可以轻松实现跨多个区域的流量策略,满足业务的灵活和高可用等需求。

举报
评论 0