AWS Route53 简介 笔记

Route53简介

Amazon Route 53是一种高可用、高扩展性的云DNS服务。它为开发人员和企业提供一种非常可靠和经济的方法,把对用户友好的、易读的域名(比如aws.xiaopeiqing.com)转换为IP地址(例如120.79.65.207)。目前Amazon Route53已经支持IPv6。

在我们更加深入了解Route53之前,首先让我们先来看一下什么是DNS。

DNS在这里面就起到了翻译的功能,保证我们通过易读的名字能访问到IP地址和后台的真实服务器。

我们比较常访问的网站,都会使用到顶级域名,顶级域名包含了下面这些例子:

  • .com
  • .net
  • .cn
  • .edu
  • .gov

这些顶级域名都是被IANA (Internet Assigned Numbers Authority) 这个机构来进行统一的管理和统筹的。

目前,ICANN旗下的InterNIC负责管理和分发所有的互联网域名,确保互联网上的域名不会重复。

域名注册商

我们可以在域名注册商上注册新的域名,比如国内的万网(现在已经被阿里云收购),新网,国外的Godaddy等。

现在AWS也算是一个域名注册商,因此我们可以直接在AWS Route53的界面选择并购买新的域名。

不同的DNS记录

  • SOA – Start of Authority记录了关于该域名的很多信息,包括
    • Primary Name Server – 主DNS服务器
    • Responsible Mail Address – 管理员的邮箱地址
    • Serial – SOA记录数据的版本号,每次DNS记录更新,版本号都会加1。备用DNS服务器发现版本号不同,会向主DNS服务器同步
    • Refresh – 备用DNS服务器向主DNS服务器检查更新的时间间隔
    • Retry – 备用DNS服务器向主DNS服务器请求更新失败后的重试等待时间
    • Expire – 备用DNS服务器在超过该时间后将停止应答该域名的DNS查询
    • Default TTL – 默认DNS记录的TTL时间
  • NS – Name Server记录描述了某个域名所使用的权威的DNS服务器,所有其他DNS服务器进行轮询查询的时候最终都需要到这些权威的DNS服务器上进行查询,获取最新的记录
  • A记录 – A (Address)记录可以将域名直接转换为IPv4的地址,比方说将aws.xiaopeiqing.com转换为地址120.79.65.207
  • CNAME – CNAME (Canonical Name)可以将一个域名指向另一个域名。比如将aws.xiaopeiqing.com指向xiaopeiqing.com
  • Alias记录 – 和CNAME类似,又叫做别名记录,可以将一个域名指向另一个域名。
    • 和CNAME最大的区别是,Alias可以应用在根域(Zone Apex)。即可以为xiaopeiqing.com的根域创建Alias记录,而不能创建CNAME
    • 别名记录可以节省你的时间,因为Route53会自动识别别名记录所指的记录中的更改。例如,假设example.com的一个别名记录指向位于lb1-1234.us-east-2.elb.amazonaws.com上的一个ELB负载均衡器。如果该负载均衡器的IP地址发生更改,Route53将在example.com的DNS应答中自动反映这些更改,而无需对包含example.com的记录的托管区域做出任何更改。
  • TTL – Time to Live时间是DNS记录在DNS服务器或用户端上缓存保留的时间,在TTL时间到达之前,DNS记录将缓存在其他非权威DNS服务器或者用户主机上
    • (了解即可)TTL时间如果设置过短,那么会增加记录更新的频率,同时增加递归查询的时间。即每次到达TTL时间,其他DNS服务器都要再次访问该域名服务器来更新信息
    • (了解即可)TTL时间如果设置过长,那么在做DNS记录更新的时候,真实用户会很长时间之后才能查询到最新版本的记录(要等到TTL时间结束)

其他

弹性负载均衡器(ELB)没有固定的IPv4地址,在使用ELB的时候永远使用它的DNS名字。很多场景下我们需要绑定DNS记录到ELB的endpoint地址,而不绑定任何IP

如果出现选择Alias记录和CNAME记录的选择,95%的情况都要选择Alias记录

 

AWS Route53中有多种不同的路由策略(Routing Policy),我们可以根据自己的不同需求将我们的DNS解析到不同的目标上去。

  • 简单路由策略(Simple Routing Policy):提供单一资源的策略类型,即一个DNS域名指向一个单一目标
  • 加权路由策略(Weighted Rouing Policy):按照不同的权值比例将流量分配到不同的目标上去
  • 延迟路由策略(Latency Routing Policy):根据网络延迟的不同,将与用户延迟最小的结果应答给最终用户
  • 地理位置路由策略(Geolocation Routing Policy):根据用户所在的地理位置,将不同的目标结果应答给用户
  • 故障转移路由策略(Failover Routing Policy):配置主动/被动(Active/Passive)的故障转移策略,保证DNS解析的容灾
  • 多值应答路由策略(Multivalue answer routing policy) – 如果您想要让 Route 53 用随机选择的正常记录(最多八条)响应 DNS 查询,则可以使用该策略。可以作为简单的LoadBlance

==================================================================

 

简单路由策略(Simple Routing Policy)

AWS Route 53,我们使用简单路由策略(Simple Routing Policy)来为域名创建一个标准的DNS记录,而不用复杂的例如基于延迟或者权重的方法。一般我们使用简单路由策略将我们的流量指向单一的资源,例如一台Web服务器。

在简单路由策略配置里面,对于同一个DNS名我们只能创建一条目标,这个目标可能是一组IP地址,或者是一个Alias记录。

加权路由策略(Weighted Rouing Policy)

使用AWS Route53加权路由策略(Weighted Rouing Policy),我们可以将多个资源关联到同一个域名(例如aws.xiaopeiqing.com),并根据不同的权值比重将流量分发给不同的资源。

我们可以使用加权路由策略来做负载均衡,或者软件测试。

比如将5%的流量引导到测试应用上,观看测试应用的效果。

我们可以为每一个记录都分配一个权值,每一条记录分配到的总流量的比例是权值/所有记录的权值之合

延迟路由策略(Latency Routing Policy)

AWS Route53的延迟路由策略(Latency Routing Policy)可以让我们从延迟最低的AWS区域为用户处理请求,从而提高性能和速度。

要使用基于延迟的路由策略,我们需要在Route53中创建多条DNS记录(延迟路由策略类型),并且将它们指向不同区域内的目标。当用户去访问这个DNS记录的时候,会先对不同目标的延迟做比较,并且选择延迟最低的一个目标进行访问。

举个例子,如果我在新加坡区域和首尔区域都有ELB负载均衡器,我需要为2个ELB都创建延迟路由类型的DNS记录。

当一个位于中国的用户访问这个域名的时候,Route53会查看中国到新加坡区域以及中国到首尔区域之间的延迟,并且使用延迟较低的一个,把其结果反馈给用户。

如果中国与新加坡之间的延迟较低,那么用户最终会访问新加坡的ELB负载均衡器。

如果中国与首尔之间的延迟较低,那么用户最终会访问首尔的ELB负载均衡器。

故障转移路由策略(Failover Routing Policy)

故障转移路由策略(Failover Routing Policy)实际上是创建了DNS记录的主动/被动(Active/Passive)故障转移。

在正常的情况下所有的流量应该解析到主的DNS记录上面。只有当这个主的DNS记录不健康的时候,Route53才会自动将所有流量解析到备用的DNS记录上面。

我们可以对域名开启健康检查(Health Check)功能,对域名(服务和端口)的健康状态进行监控,一旦健康状态出现问题,Route53就会自动进行切换。

地理位置路由策略(Geolocation Routing Policy)

地理位置路由策略(Geolocation Routing Policy)可以根据用户所在的位置来返回不同的DNS结果。

比如可以让位于东京的用户访问东京的ELB负载均衡器,位于首尔的用户访问首尔的ELB负载均衡器,位于新加坡的用户也访问首尔的ELB负载均衡器等。

使用基于地理位置的路由策略,我们可以对内容进行本地化(提供当地的语言和特色);也可以向某些地理位置提供内容服务,而向其他地理位置提供另外的内容服务,甚至不提供服务。

我们可以按大陆(七大洲))、国家/地区来指定地理位置,并且地理区域范围越精细则优先级越高。

Route53判定地理位置的依据是用户的源IP地址,有一些IP地址可能无法识别为具体的地理位置,因此我们最好设置一条默认的匹配规则。在这条默认的匹配规则里,没有被任何国家/地区所匹配的位置,还是可以访问到某个内容

 

多值应答路由策略(Multivalue answer routing policy)

多值应答路由允许您将 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 查询提供最多八条不正常的记录。

 

 

 

总结

  • 简单路由策略(Simple Routing Policy):提供单一资源的策略类型,即一个DNS域名指向一个单一目标
  • 加权路由策略(Weighted Rouing Policy):蓝绿部署
  • 延迟路由策略(Latency Routing Policy):根据网络延迟的不同,将与用户延迟最小的结果应答给最终用户
  • 地理位置路由策略(Geolocation Routing Policy):根据用户所在的地理位置,将不同的目标结果应答给用户
  • 故障转移路由策略(Failover Routing Policy):配置主/从,对主创建运行状况检查,保证DNS解析的容灾
  • 多值应答路由策略(Multivalue answer routing policy) – 可以作为简单的LoadBlance ,检查每个资源的运行状况关联了运行状况检查,以便 Route 53 只返回正常资源的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章