应用负载均衡器(ALB)无稳定IP地址时如何维持高可用性?
应用负载均衡器(ALB)无稳定IP地址时如何维持高可用性?
嗨,我来给你把这个问题讲得明明白白!
Amazon的Application Load Balancers(ALBs)是AWS默认的HTTP负载均衡器,但它没有静态IP地址,取而代之的是一个自动生成的域名(比如myservice-12345678.eu-west-1.elb.amazonaws.com),这个域名会始终指向ALB当前的最新IP地址。
那要怎么保证服务的高可用性呢?其实方案很清晰,官方推荐用Route53把你的业务域名(比如service.example.com)通过CNAME记录指向这个ALB生成的域名就行;如果是 apex 域名(也就是不带子域名的根域名,比如example.com),那就用ALIAS记录来配置。
这里必须敲黑板提醒:绝对不要直接用A记录把主域名绑定到ALB的IP地址上!因为ALB的IP是动态变化的,一旦IP更新了,你的主域名DNS记录没同步的话,用户就访问不到服务了,得等手动更新DNS才能恢复,这完全违背了高可用的初衷。
用CNAME配置好之后,你可以通过dig命令看到DNS解析的结果大概是这样的:
$ dig service.example.com ... ;; ANSWER SECTION: service.example.com. 300 IN CNAME myservice-12345678.eu-west-1.elb.amazonaws.com. myservice-12345678.eu-west-1.elb.amazonaws.com. 60 IN A 1.2.3.4 myservice-12345678.eu-west-1.elb.amazonaws.com. 60 IN A 5.6.7.8
这样一来,不管ALB的IP怎么变,生成的域名都会自动指向新IP,你的业务域名通过CNAME跟着走,用户访问就不会受影响啦。
备注:内容来源于stack exchange,提问作者Robin Winslow
相关产品推荐
相关产品推荐

