共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。
如何用 AWS Route53 实现 GSLB,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
近日,我在研究远程的,不使用云网络负载均衡器 Elastic Loadbalancer 的其他负载均衡的方法。
从 AWS 角度,在多区域下进行负载均衡的这个方法,有个学名叫全局负载均衡 GSBL(Global Server Load Balancing),就是实现在广域网(包括互联网)上不同地域的服务器间的流量调配,保证使用最佳的服务器服务离自己最近的客户,从而确保访问质量。
当然,对此,GSBL 有企业级的应对方法,也由自己就可以动手完成的解决方案。
在这里,我就简单说一下如果在 AWS 实现全部负载均衡 GSBL。
AWS 中的 Route53 是一个多功能的云端 DNS (域名服务器)。你只要在上面写入一个域名, 它会生成 4 个上级域名(NS),给你写到购买域名时的供应商做域名转移。比如 GoDaddy / who.is / DNSpod. 例子如下图:
你会发现,这几个 NS 是放在世界不同的地区的,这可以让你的域名分析得更快。
Route53 里面有 5 种域名的记录。
简单说明:
1. Simple – 就是一般的,跟其他的 DNS 没差别。
2. Weighted 就是可以把请求跟据 weight 来分到不到的 IP , 比如你有 2 个 ip. 第一 ip weight = 5, 第二 ipweight = 10 那分到第一 ip 的请求数就是 5+10 / 5 = 1/3。
3. Latency 就是把请求发到反应最快的那个服务中心 (region) **. 这个可以选内地的 AWS!
4. Failover 就和负载均衡器做法一下,有一个 healthchecker 看着你的服务器,要是服务器死了,那就不会把请求派过去。
5. Geolocation 就是跟据请求的发出地址,把请求分到最近的服务器。
我觉得 AWSroute53 跟其他的 DNS 最大差别就是
1. Route53 有 healthchecker,根据 health checker 反应做出相应动作。
2. Route53 支持 Fail over
3. Route53 的一切都可以用 API 定义,那就是说可以跟据你写的程序动态改变。
Health checker 是一款给 DNS 定制的 monitor 工具。
有 http / https / TCP。AWS 建议是 30 秒更新一次。但可以选 10 秒。这裡问题是,如果你少于 30, 一般情况下会搞得服务器很忙,不建议。要是你选 10 秒,那基本上,每一秒都会给 PING 着。
原生是要 FAIL 3 次,域名才会更动。但要是 30 *3,一分半的时间,才 failover 有点长。所以我建议在 failture threshold 是 1 /2。
因为是 DNS failover, 技术上原生就有一个问题:就是已经被 DNS cache 的 IP,即使 fail over 也不会给更改。解决方法是依靠新型的溜览器的 failover 功能做这件事。我在 Chrome 下测的 failover 没有任何问题。但在命令行的 ping / nslookup 的确要等很长时间。所以建议这个 DNS 的 failover 现在只用作网站会合理一些。
正如本文想表明的主题,如何实现全局负载均衡 GSLB, 那很简单,基于 Route53 Failover 上,加上 Simple / Weighted 的多 IP Record Set 就行。这裡有一个小小的不方便,就是 weighted 的记录要一条一条的加。
还有现在暂不支持 CNAME,只支持 IP. 但要是我们想用代码控制一个高可用环境时,用系统生成的域名是个很流行的做法。希望 AWS 将来可以支持 Route53 Load balanced CNAME.
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。