文章目录
什么是负载均衡SLB?
负载均衡(Server Load Balancer)通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。
负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
负载均衡SLB VS 传统硬件负载均衡:
负载均衡SLB组成与架构
负载均衡SLB组成
负载均衡由以下三个部分组成:
-
负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。负载均衡实例有两种:- 公网负载均衡实例
公网类型的负载均衡实例可以通过Internet将客户端请求按照您制定的监听规则分发到添加的后端服务器ECS上。
在您创建公网负载均衡实例后,系统会为其分配一个公网服务地址,您可以将您的域名和该公网服务地址进行绑定,对外提供服务。 - 私网负载均衡实例
私网类型的负载均衡实例只能在阿里云内部使用,可以转发的请求只能来自具有负载均衡的私网访问权限的客户端。
- 公网负载均衡实例
-
监听 (Listeners)
负载均衡实例监听负责检查连接请求,然后根据调度算法定义的转发策略将请求流量分发至后端服务器,监听也会对后端服务器进行健康检查。- 健康检查
- 健康检查
-
后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
负载均衡SLB架构
负载均衡基础架构是采用集群部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
- 四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
- 七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
负载均衡SLB计费
负载均衡SLB包年包月计费项
根据实例类型和网络类型的不同,每个实例的收费项也不同,如下表所示。例如,一个公网性能保障型实例的每个月的总费用是实例费、带宽费和规格费之和;一个私网性能保障型实例的每个月的总费用是实际使用的规格费。
-
实例费
公网SLB实例的实例费 = 实例费单价(元/月)× 购买时长。
实例费是公网SLB实例的公网IP的保留费,私网SLB实例免收实例费。
-
带宽费
公网SLB实例的带宽费按照如下方式计费:- 每个公网SLB实例的带宽费 = 带宽费单价(元/月/Mbps)× 购买时长
- 按开通的实例带宽规格收费,不按已使用的带宽峰值收费。
- 公网带宽费以5Mbps为界,实行阶梯定价
-
规格费
性能保障型实例,不论是公网还是私网,都要收取规格费。
包年包月性能保障型实例的计费方式如下:- 每个性能保障型SLB实例的规格费 = 所选规格费单价(元/月)× 购买时长
- 在合同期内,实例规格费按照固定的价格收取。不同规格的规格费如下表所示。按月购买可享受相应的折扣。下表中的价格仅供参考,具体价格请以控制台为准。
性能保障型实例指标参考:
-
最大连接数-Max Connection
最大连接数定义了一个负载均衡实例能够承载的最大连接数量。当实例上的连接超过规格定义的最大连接数时,新建连接请求将被丢弃。 -
每秒新建连接数-Connection Per Second(CPS)
每秒新建连接数定义了新建连接的速率。当新建连接的速率超过规格定义的每秒新建连接数时,新建连接请求将被丢弃。 -
每秒查询数-Query Per Second (QPS)
每秒请求数是七层监听特有的概念,指的是每秒可以完成的HTTP/HTTPS的查询(请求)的数量。当请求速率超过规格所定义的每秒查询数时,新建连接请求将被丢弃。
※ 负载均衡性能共享型实例,资源是所有实例共享的,不保障实例的性能指标。
负载均衡SLB按量计费计费项
按量计费方式计算比较负载,建议根据官方资料进行计算。
负载均衡SLB欠费说明
负载均衡SLB流量说明
负载均衡SLB入网流量路径
对于入网流量,负载均衡会根据用户在控制台或API上配置的转发策略,对来自前端的访问请求进行转发和处理,数据流转如下图所示。
- TCP/UDP协议和HTTP/HTTPS协议的流量都需要经过LVS集群进行转发。
- LVS集群内的每一台节点服务器均匀地分配海量访问请求,并且每一台节点服务器之间都有会话同步策略,以保证高可用。
- 如果相应的负载均衡实例服务端口使用的是四层协议(TCP或UDP),那么LVS集群内每个节点都会根据负载均衡实例负载均衡策略,将其承载的服务请求按策略直接分发到后端ECS服务器。
- 如果相应的负载均衡实例服务端口使用的是七层HTTP协议,那么LVS集群内每个节点会先将其承载的服务请求均分到Tengine集群,Tengine集群内的每个节点再根据负载均衡策略,将服务请求按策略最终分发到后端ECS服务器。
- 如果相应的负载均衡实例服务端口使用的是七层HTTPS协议,与上述HTTP处理过程类似,差别是在按策略将服务请求最终分发到后端ECS服务器前,先调用Key Server进行证书验证及数据包加解密等前置操作。
负载均衡SLB出网流量路径
负载均衡SLB和后端ECS之间是通过内网进行通信的。
- 如果ECS仅仅处理来自负载均衡的请求,可以不购买公网带宽(ECS公网IP/弹性公网IP/NAT网关等)。
- 如果需要直接通过后端ECS对外提供服务,或后端ECS有访问外网的需求, 那么需要相应的配置或购买ECS公网IP/弹性公网IP/NAT网关等服务。
负载均衡SLB架构流量总结
总体原则:流量从哪里进来,就从哪里出去。
- 通过负载均衡进入的流量在负载均衡SLB上限速/计费,仅收取出方向流量费用,入方向流量不收取(在未来可能会改变),SLB到ECS之间是阿里云内网通信,不收取流量费用。
- 来自弹性公网IP/NAT网关的流量,分别在弹性公网IP/NAT网关上进行限速/计费,如果在购买ECS时选择了公网带宽,限速/计费点在ECS上。
- 负载均衡SLB仅提供被动访问公网的能力,即后端ECS只能在收到通过负载均衡SLB转发来的公网的请求时,才能访问公网回应该请求,如后端ECS希望主动发起公网访问,则需要配置/购买ECS公网带宽、弹性公网IP或NAT网关来实现。
- ECS公网带宽(购买ECS时配置)、弹性公网IP、NAT网关均可以实现ECS的双向公网访问(访问或被访问),但没有流量分发和负载均衡的能力。
负载均衡SLB功能特性
| 功能 | 4层负载均衡 | 7层负载均衡 |
|---|---|---|
| 调度算法 负载均衡支持轮询、加权轮询(WRR)、加权最小连接数(WLC)和一致性哈希(CH)调度算法。 | √ | √ |
| 健康检查 负载均衡会检查后端服务器的运行状况。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其他正常运行的后端服务器。 | √ | √ |
| 会话保持 负载均衡提供会话保持功能。在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上。 | √ | √ |
| 访问控制 负载均衡支持添加黑名单和白名单,灵活控制客户端访问。 | √ | √ |
| 高可用 负载均衡可以将流量转发给多个可用区的后端服务器。并且,负载均衡已经在大部分地域支持了多可用区部署,当主可用区出现故障时,负载均衡可自动切换到备可用区上提供服务。 | √ | √ |
| 安全防护 结合云盾,可提供5Gbps的防DDoS攻击能力。 | √ | √ |
| 网络类型支持 负载均衡提供公网和私网类型的负载均衡服务。您可以创建一个私网类型的负载均衡实例来均衡专有网络内的流量,或创建一个公网负载均衡实例来均衡来自公网的流量。 | √ | √ |
| 监控 结合阿里云云监控服务,您可以查看负载均衡的连接数、流量等信息。 | √ | √ |
| IPv6地址支持 负载均衡支持转发来自IPv6客户端的请求。 | √ | √ |
| 查看访问日志 结合阿里云日志服务,您可以通过分析负载均衡的访问日志了解客户端用户行为、客户端用户的地域分布,排查问题等。 | — | √ |
| 记录健康检查日志 负载均衡默认存储查三天内的健康检查日志。您可以通过开通OSS服务,将所有的健康检查日志存储到OSS中,分析后端服务器异常原因。 | √ | √ |
| 域名URL转发 负载均衡7层监听支持配置域名和URL转发规则,可以将来自不同域名和URL的请求转发到不同的后端服务器上。 | — | √ |
| 证书管理 针对HTTPS协议,提供统一的证书管理服务。证书无需上传到后端服务器,解密处理在负载均衡上进行,降低后端服务器的CPU开销。 | — | √ |
| SNI支持 负载均衡HTTPS监听支持挂载多个证书,将来自不同访问域名的请求转发至不同的后端服务器组。 | — | √ |
| 重定向 负载均衡支持HTTP访问重定向至HTTPS。 | — | √ |
| WS/WSS支持 WebSocket是HTML5一种新的协议,在客户端与服务器间提供双向通信渠道,能更好地节省服务器资源和带宽并达到实时通讯。 | — | √ |
| HTTP/2支持 HTTP/2(Hypertext Transfer Protocol Version 2)是超文本传输协议的第二版,向下兼容HTTP1.X协议版本,同时带来性能的大幅提升。 | — | √ |