Route 53
1. Route53是什么?
Amazon Route 53是一种高可用、高扩展性的域名系统 (DNS) Web 服务。可以使用 Route 53 以任意组合执行三个主要功能:域注册、DNS 路由和运行状况检查。目前Amazon Route53已经支持IPv6。
2.DNS和它的子概念?
DNS的全称是Domain Name System,它的作用就是将一个域名最终解析成一个IP地址。
我们可以在域名注册商上注册新的域名,比如国内的万网(现在已经被阿里云收购),新网,国外的Godaddy等。
现在AWS也算是一个域名注册商,因此我们可以直接在AWS Route53的界面选择并购买新的域名,比如下图就是我在AWS购买的域名。
截屏2021-03-14 下午2.51.50买完了域名我们就可以对我们的域名进行一些配置了,首先我们得创建一个托管区(hosted zone)来管理我们的DNS配置。下面我们介绍的,就是在Hosted Zone里面管理DNS的知识点。
NS(Name Server)
-
Name Server记录描述了某个域名所使用的权威的DNS服务器,所有其他DNS服务器进行轮询查询的时候最终都需要到这些权威的DNS服务器上进行查询,获取最新的记录。需要注意的是,AWS Route 53不仅可以管理在AWS里买的域名,其他域名供应商的域名我们同样也能管理,比如下图我在腾讯云里买了个域名,那么我可以把这个域名的Name Server改成我们Hosted Zone里面的配置(需要注意的是,当我们创建Hosted Zone的时候,会自动创建下图中的两个记录,一个是NS,一个是SOA,虽然我们可以给一个域名创建多个Hosted Zone,最终起效果的只会是Hosted Zone与域名供应商那边的Name Server相同的哪一个)
- 这里另起一行是因为我在这卡了三个小时!!你需要修改的顺序应该是:先创建好Hosted Zone,拿到这个Hoseted Zone里给分配的Name Server之后,再去域名供应商那修改 截屏2021-03-14 下午10.07.25.png
SOA(Start of Authority)
-
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时间
截屏2021-03-14 下午10.06.57.png
-
A记录(Adress)
- A记录 – A (Address)记录可以将域名直接转换为IPv4的地址,比方说将a.guhao.xyz 转换为地址1.1.1.1
CNAME(Canonical Name)
CNAME就比较随意了,你可以将域名路由到任何你想路由的其他域名,比如我们可以将其路由到www.baidu.com
有一点需要注意的是,CNAME并不能支持配置根域名(southestsoul.com),如下下图所示,会报错,而等下我们会介绍的Alias则可以做到这一点。
截屏2021-03-14 下午5.21.16 截屏2021-03-14 下午5.46.27别名(Alias)
当我们选择别名时,就可以支持配置根域名(southestsoul.com)去路由了(当然也可以不用根域名),可以看到他可以选择AWS服务的一些别名
-
一类是此托管区的另一个记录的别名,举个例子
- 我们此时创建的是一个A记录的别名,在这个托管区(Hosted Zone)中我还有一个A记录 a.southest.soul.com -> 1.1.1.1, 那么我们可以选择创建一个southestsoul.com-> a.southest.soul.com的A记录
-
一类是AWS服务的别名,这类AWS服务对外暴露的都是DNS(因为这些AWS的服务都是自动扩容的),而这些AWS服务的DNS会指向它后面的那些IP,所以我们可以用A记录的别名来指向这些AWS的服务
- 当然我们也可以指定CNAME的别名,那么就只能指向此托管区中的另一个CNAME。
Alias相较于CNAME来说还有个好处,那就是用Alias时, 不收费,而用CNAME则hi收费。
截屏2021-03-14 下午6.51.10TTL(Time to Live)
TTL – Time to Live时间是DNS记录在DNS服务器或用户端上缓存保留的时间,在TTL时间到达之前,DNS记录将缓存在其他非权威DNS服务器或者用户主机上
-
TTL时间如果设置过短,那么会增加记录更新的频率,同时增加递归查询的时间。即每次到达TTL时间,其他DNS服务器都要再次访问该域名服务器来更新信息
-
TTL时间如果设置过长,那么在做DNS记录更新的时候,真实用户会很长时间之后才能查询到最新版本的记录(要等到TTL时间结束)
3.路由策略(Routing Policy)
在我们创建DNS记录的时候,会有这个路由策略,这一节我们就来看一下这些路由策略都是什么意思。
特别注意:在下面的例子中我都是以A记录来举例子(这里图方便了),在实践中我们可以选择CNAME,Alias等等,而且也推荐使用Alias去路由负载均衡器等一些云服务
截屏2021-03-14 下午7.25.483.1 简单路由策略(Simple Routing Policy)
对于同一个DNS名我们只能创建一条目标,这个目标可能是一组IP地址,或者是一个Alias记录。
3.2 加权路由策略(Weighted Rouing Policy)
多个资源关联到同一个域名(例如iteablue.com),并根据不同的权值比重将流量分发给不同的资源。
我们可以为每一个记录都分配一个权值,每一条记录分配到的总流量的比例是权值/所有记录的权值之合,如下图所示,我们可以给同一个DNS分配多个A记录,并且设置权值(这里的中文翻译特别差),当我们访问southestsoul.com就会随机分配到1.1.1.1和2.2.2.2,并且根据权值计算出来几率是50%,50%.
截屏2021-03-14 下午7.48.493.3 延迟路由策略(Latency Routing Policy)
我们需要在Route53中创建多条DNS记录(延迟路由策略类型),并且将它们指向不同区域内的目标。当用户去访问这个DNS记录的时候,会先对不同目标的延迟做比较,并且选择延迟最低的一个目标进行访问。
-
举个例子,如果我在香港区域和非洲区域都有服务器,我需要为2个服务器都创建延迟路由类型的DNS记录。
-
当一个位于中国的用户访问这个域名的时候,Route53会查看中国到香港区域以及中国到非洲区域之间的延迟,并且使用延迟较低的一个,把其结果反馈给用户。
-
如果中国与香港之间的延迟较低,那么用户最终会访问香港的服务器。
-
如果中国与非洲之间的延迟较低,那么用户最终会访问非洲的服务器。
-
注意,这个延迟是根据DNS的配置来的,如果你给的IP地址是在新加坡,但是在下面图中DNS的记录里选的却是香港,那么最终会按照到香港的延迟来决定,而不是到新加坡的延迟
截屏2021-03-14 下午8.00.493.4 故障转移策略(Failover Routing Policy)
故障转移路由策略(Failover Routing Policy)实际上是创建了DNS记录的主动/被动(Active/Passive)故障转移。
在正常的情况下所有的流量应该解析到主的DNS记录上面。只有当这个主的DNS记录不健康的时候,Route53才会自动将所有流量解析到备用的DNS记录上面。
我们可以对域名开启健康检查(Health Check)功能,对域名(服务和端口)的健康状态进行监控,一旦健康状态出现问题,Route53就会自动进行切换。
-
举个栗子,下面提到的这个栗子就是说,如果9.9.9.9的80端口健康检查为unhealthy,那么这个DNS就会解析到10.10.10.10:
-
首先我们就需要创建一个运行状况检查(Health Check),在这里我们可以配置要检查的IP地址/DNS,和检查的一些标准,比如请求三次,每次隔30秒,如果都失败那么这个health check就认为是unhealthy的
-
创建DNS故障转移记录,在故障转移记录类型中选择主要(Primary),也就是说如果health check是healthy的,那么这个Doman就会被路由到Primary的IP地址,注意,Health Check是必要的对Primary来说是必要的,而Secondary则可以不配置。
-
创建Secondary的DNS记录。
-
3.5 地理位置路由策略(Routing Policy)
地理位置路由策略(Geolocation Routing Policy)可以根据用户所在的位置来返回不同的DNS结果。
比如可以让位于位于东京的用户访问东京的ELB负载均衡器,位于首尔的用户访问首尔的ELB负载均衡器,位于新加坡的用户也访问首尔的ELB负载均衡器等。
使用基于地理位置的路由策略,我们可以对内容进行本地化(提供当地的语言和特色);也可以向某些地理位置提供内容服务,而向其他地理位置提供另外的内容服务,甚至不提供服务。
我们可以按大陆(七大洲))、国家/地区来指定地理位置,并且地理区域范围越精细则优先级越高。
Route53判定地理位置的依据是用户的源IP地址,有一些IP地址可能无法识别为具体的地理位置,因此我们最好设置一条默认的匹配规则。在这条默认的匹配规则里,没有被任何国家/地区所匹配的位置,但是还可以访问到某个内容。
截屏2021-03-14 下午9.24.21 截屏2021-03-14 下午9.25.533.6 多值应答策略(Multivalue Answer Policy)
与简单路由策略相似,简单路由对于同一个DNS名我们只能创建一条目标,而多值应答策略则可以创建多条DNS记录,访问的时候会在创建的几条里面随机路由IP。
截屏2021-03-14 下午9.44.47 截屏2021-03-14 下午9.44.16 -
-