最近,我们在购买负载均衡SLB的时候,发现购买链接里多了一个ALB(应用负载均衡)。
原来的SLB在官网中已经被改名为CLB(传统型负载均衡)。
CLB(原SLB)包含四层和七层的负载均衡功能,其中七层负载均衡支持HTTP/HTTPS协议的负载均衡。ALB在支持HTTP/HTTPS的基础上多支持了一个QUIC协议,这个协议目前主要用于低延时音视频应用场景。
过去,我们在搭建系统架构的时候,通常使用SLB(四层)+ Nginx集群的方式,原因就是过去的SLB在转发规则的支持上过于阳春,这次的ALB在转发规则的支持上已经可以支持大多数的应用场景了,先来看转发判断条件的支持情况:
- 域名、CLB的七层负载提供,但仅支持转发到虚拟服务器组
- 路径、CLB的七层负载提供,但仅支持转发到虚拟服务器组
- HTTP标头、ALB新增功能
- 查询字符串、ALB新增功能
- HTTP请求方法、ALB新增功能
- Cookie、ALB新增功能
转发目标的支持:
- 转发至、CLB的七层负载均衡提供
- 重定向至、ALB新增功能,支持重定向到其他主机、协议、端口、路径、查询URL
- 返回固定响应、ALB新增功能、支持返回自定义的返回码和响应正文
- 重写、ALB新增功能、支持重定向到指定的域名、路径、查询URL
- 写入Header、支持写入自定义的HTTP头
除了拥有更强大的转发规则,ALB另一个重要的功能升级是可以自定义TLS的连接策略。
在HTTPS的监听配置页面,可以自定义TLS连接策略,从而在安全性和支持范围之间取得平衡。
可以在系统预定义的TLS安全策略中进行选择,因为TLS1.0 被爆出有安全风险,所以建议至少选择TLS1.1版本,但这样以来使用TLS1.0的客户端就必须进行升级。
CLB的七层负载均衡同样支持TLS版本的选择,但ALB更进一步可以通过自定义策略对算法进行更精细的定制:
ALB 不再使用固定的IP地址方式接入,而是要使用CNAME的方式来接入,创建ALB实例后阿里云将创建一个域名对应该ALB实例,默认情况下这个域名指向两个公网EIP,分别位于不同的可用区以实现高可用,需要将业务系统的域名CNAME映射到该域名上来完成接入。
这种接入方式的好处是域名对应的公网IP可以随着系统压力的提升进行线性扩容,当两个公网IP的吞吐不足以支撑业务压力时可以随时增加更多的EIP。
总结一下,ALB对于CLB的七层负载均衡主要有以下升级:
- 支持QUIC协议
- 支持更丰富的转发规则,大多数情况下可以替代掉四层SLB+Nginx的组合
- 支持自定义TLS策略和算法
- 更强的性能扩展性