阿⾥云负载均衡SLB简介
⼀、什么是负载均衡
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应⽤的服务能⼒,增强了应⽤的可⽤性。
概述
负载均衡通过设置虚拟服务地址,将添加的同⼀地域的多台ECS实例虚拟成⼀个⾼性能、⾼可⽤的后端服务池,并根据转发规则,将来⾃客户端的请求分发给后端服务器池中的ECS实例。
负载均衡默认检查云服务器池中的ECS实例的健康状态,⾃动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提⾼了应⽤的整体服务能⼒。此外,负载均衡还具备抗DDoS攻击的能⼒,增强了应⽤服务的防护能⼒。
组成部分
负载均衡由以下三个部分组成:
负载均衡实例(Server Load Balancer instances)
⼀个负载均衡实例是⼀个运⾏的负载均衡服务,⽤来接收流量并将其分配给后端服务器。要使⽤负载均衡服务,您必须创建⼀个负载均衡实例,并⾄少添加⼀个监听和两台ECS实例。
监听(Listeners)
监听⽤来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进⾏健康检查。
后端服务器(Backend Servers)
⼀组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
产品优势
⾼可⽤
采⽤全冗余设计,⽆单点,⽀持同城容灾。搭配DNS可实现跨地域容灾,可⽤性⾼达99.95%。
根据应⽤负载进⾏弹性扩容,在流量波动情况下不中断对外服务。
可扩展
您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应⽤的服务能⼒。
低成本
与传统硬件负载均衡系统⾼投⼊相⽐,成本可下降60%。
安全
结合云盾,可提供5Gbps的防DDoS攻击能⼒。
⾼并发
集⽀持亿级并发连接,单实例提供千万级并发能⼒。
⼆、产品架构
负载均衡基础架构是采⽤集部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
负载均衡作为流量转发服务,将来⾃客户端的请求通过负载均衡集转发⾄后端服务器,后端服务器再将响应通过内⽹返回给负载均衡。
基础架构说明
阿⾥云当前提供四层和七层的负载均衡服务。
四层采⽤开源软件LVS(Linux Virtual Server)+ keepalived的⽅式实现负载均衡,并根据云计算需求对其进⾏了个性化定制。
七层采⽤Tengine实现负载均衡。Tengine是由淘宝⽹发起的Web服务器项⽬,它在Nginx的基础上,针对有⼤访问量的⽹站需求,添加了很多⾼级功能和特性。
如下图所⽰,各个地域的四层负载均衡实际上是由多台LVS机器部署成⼀个LVS集来运⾏的。采⽤集部署模式极⼤地保证了异常情况下负载均衡服务的可⽤性、稳定性与可扩展性。
LVS集内的每台LVS都会进⾏会话,通过组播报⽂同步到该集内的其它LVS机器上,从⽽实现LVS集
内各台机器间的会话同步。如下图所⽰,当客户端向服务端传输三个数据包后,在LVS1上建⽴的会话A开始同步到其它LVS机器上。图中实线表⽰现有的连接,图中虚线表⽰当LVS1出现故障或进⾏维护时,这部分流量会⾛到⼀台可以正常运⾏的机器LVS2上。因⽽负载均衡集⽀持热升级,并且在机器故障和集维护时最⼤程度对⽤户透明,不影响⽤户业务。
⼊⽹流量路径
对于⼊⽹流量,负载均衡会根据⽤户在控制台或API上配置的转发策略,对来⾃前端的访问请求进⾏转发和处理,数据流转如下图所⽰。
图 1. ⼊⽹流量路径
1. TCP/UDP协议和HTTP/HTTPS协议的流量都需要经过LVS集进⾏转发。
2. LVS集内的每⼀台节点服务器均匀地分配海量访问请求,并且每⼀台节点服务器之间都有会话同步策略,以保证⾼可⽤。
如果相应的负载均衡实例服务端⼝使⽤的是四层协议(TCP或UDP),那么LVS集内每个节点都会根据负载均衡实例负载均衡策
略,将其承载的服务请求按策略直接分发到后端ECS服务器。
如果相应的负载均衡实例服务端⼝使⽤的是七层HTTP协议,那么LVS集内每个节点会先将其承载的服务请求均分到Tengine集
,Tengine集内的每个节点再根据负载均衡策略,将服务请求按策略最终分发到后端ECS服务器。
如果相应的负载均衡实例服务端⼝使⽤的是七层HTTPS协议,与上述HTTP处理过程类似,差别是在按策略将服务请求最终分发到后端ECS服务器前,先调⽤Key Server进⾏证书验证及数据包加解密等前置操作。
出⽹流量路径
负载均衡SLB和后端ECS之间是通过内⽹进⾏通信的。
如果ECS仅仅处理来⾃负载均衡的请求,可以不购买公⽹带宽(ECS公⽹IP/弹性公⽹IP/NAT⽹关等)。
如果需要直接通过后端ECS对外提供服务,或后端ECS有访问外⽹的需求,那么需要相应的配置或购买ECS公⽹IP/弹性公⽹IP/NAT⽹关等服务。
ECS的公⽹流量访问路径如下图所⽰。
图 2. 出⽹流量路径
总体原则:流量从哪⾥进来,就从哪⾥出去。
1. 通过负载均衡进⼊的流量在负载均衡SLB上限速/计费,仅收取出⽅向流量费⽤,⼊⽅向流量不收取(在未来可能会改变),SLB到ECS之间
是阿⾥云内⽹通信,不收取流量费⽤。
2. 来⾃弹性公⽹IP/NAT⽹关的流量,分别在弹性公⽹IP/NAT⽹关上进⾏限速/计费,如果在购买ECS时选择了公⽹带宽,限速/计费点在ECS
上。
3. 负载均衡SLB仅提供被动访问公⽹的能⼒,即后端ECS只能在收到通过负载均衡SLB转发来的公⽹的请求时,才能访问公⽹回应该请求,如
后端ECS希望主动发起公⽹访问,则需要配置/购买ECS公⽹带宽、弹性公⽹IP或NAT⽹关来实现。
4. ECS公⽹带宽(购买ECS时配置)、弹性公⽹IP、NAT⽹关均可以实现ECS的双向公⽹访问(访问或被访问),但没有流量分发和负载均衡
的能⼒。
三、应⽤场景
负载均衡的应⽤场景为⾼访问量的业务,提⾼应⽤程序的可⽤性和可靠性。
应⽤于⾼访问量的业务
如果您的应⽤访问量很⾼,您可以通过配置监听规则将流量分发到不同的ECS实例上。此外,您可以使⽤会话保持功能将同⼀客户端的请求转发到同⼀台后端ECS,提⾼访问效率。
扩展应⽤程序
您可以根据业务发展的需要,随时添加和移除ECS实例来扩展应⽤系统的服务能⼒,适⽤于各种Web服务器和App服务器。
消除单点故障
您可以在负载均衡实例下添加多台ECS实例。当其中⼀部分ECS实例发⽣故障后,负载均衡会⾃动屏蔽故障的ECS实例,将请求分发给正常运⾏的ECS实例,保证应⽤系统仍能正常⼯作。
同城容灾(多可⽤区容灾)
为了提供更加稳定可靠的负载均衡服务,阿⾥云负载均衡已在各地域部署了多可⽤区以实现同地域容灾。当主可⽤区出现机房故障或不可⽤时,负载均衡仍然有能⼒在⾮常短的时间内(⼤约30s中断)切换到另外⼀个备可⽤区恢复服务能⼒;当主可⽤区恢复时,负载均衡同样会⾃动切换到主可⽤区提供服务。
使⽤负载均衡时,您可以将负载均衡实例部署在⽀持多可⽤区的地域以实现同城容灾。此外,建议您结合⾃⾝的应⽤需要,综合考虑后端服务器的部署。如果您的每个可⽤区均⾄少添加了⼀台ECS实例,那么此种部署模式下的负载均衡服务的效率是最⾼的。
如下图所⽰,在负载均衡实例下绑定不同可⽤区的ECS实例。正常情况下,⽤户访问流量将同时转发⾄主、备可⽤区内的ECS实例;当可⽤区A 发⽣故障时,⽤户访问流量将只转发⾄备可⽤区内的ECS实例。此种部署既可以避免因为单个可⽤区的故障⽽导致对外服务的不可⽤,也可以通过不同产品间可⽤区的选择来降低延迟。
负载均衡服务器有哪些如果您采取如下图所⽰的部署⽅案,即在负载均衡实例的主可⽤区下绑定多台ECS实例,⽽在备可⽤区没有任何ECS实例。当主可⽤区发⽣故障时会造成业务中断,因为备可⽤区没有ECS实例来接收请求。这样的部署⽅式很明显是以牺牲⾼可⽤性为代价来获取低延时。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。