阿里云负载均衡服务SLB
1.SLB介绍
1.1 SLB的定位
阿里云SLB:是阿里云结合自身弹性计算平台的特点以及强大的技术优势,提供的一套软件负载均衡解决方案,以更好的满足弹性计算平台负载均衡的需求。
当单台云服务器不能满足需求的时候:
- 使用多台云服务器进行流量分发,提升服务能力;
- 使用多台云服务器消除单点故障,提升可用性
1.2 SLB的实现原理
访问流量路径
采用集群部署,当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。
系统由三部分构成:四层负载均衡、七层负载均衡、控制系统。
- 四层:LVS+Keepalived
- 七层:Tengine
控制系统
用于监控和配置整个负载均衡系统
Master+Agent:Master接受用户的配置请求;Agent部署在LVS和Tengine集群上;
1.3 SLB的组成
来自外部的访问请求,通过负载均衡实例并根据相关的策略和转发规则分发到后端云服务器进行处理。
目前SLB支持两种规格:
- 性能共享型实例:资源是所有实例共享的,不保障实例的性能指标。
- 性能保障型实例:提供了可保障的性能指标。当指标超过限定值时,新建连接请求将被丢弃。
SLB关键性能指标:最大连接数;每秒新建连接数(CPS);每秒查询数(QPS)
1.4 SLB的功能
SLB的功能:流量分发、流量调度、会话保持、健康检查、SSL证书管理、公网&私网、多可用区、虚拟服务器组、主备服务器组等
协议支持:
- 四层:支持TCP/UDP 基于连接做流量调度。TCP和UDP创建一个socket访问负载均衡实例,这个源和目的IP和端口就是一个连接。
- 七层:支持HTTP/HTTPS 基于请求做调度。比如:http get请求访问一个页面。
- WS/WSS协议支持:无需配置,当选用HTTP监听时,默认支持无加密版本WebSocket协议(WS协议);当选择HTTPS监听时,默认支持加密版本的WebSocket协议(WSS协议)。
SSL证书管理
针对HTTPS协议,提供统一的证书管理服务。证书无需上传到后端ECS实例,解密处理在负载均衡上进行,降低后端ECS实例的CPU开销。
监听转发/HTTPS重定向
SLB支持通过将HTTP监听转发至HTTPS监听,实现HTTPS重定向。
配置方法:
- 创建HTTPS监听
- 创建HTTP监听,在配置监听时,点击开启“监听转发”功能,选择目的监听为上一步中创建的HTTPS监听。
调度算法:
- 轮询模式
- 加权轮询模式
- 最小连接数模式
会话保持
会话保持:在Session的生命周期内,可以将同一客户端请求转发到同一台后端ECS上
- 四层:同一IP地址的请求持续发往一台服务器
- 七层:相同cookie的请求发往一台服务器
健康检查
SLB通过健康检查来判断后端服务器(ECS实例)的业务可用性。健康检查机制避免了后端ECS异常对总体服务的影响,提高了前端业务整体可用性。
虚拟服务器组
主备服务器组
应用场景:传统的主备需求,即后端服务器中有一台主机和一台备机。当主机正常工作时,流量将直接走主机;当主机不可用时,流量将走到备机,避免服务中断。
- 主备服务器组只支持四层监听(TCP/UDP)
- 一个主备服务器组只允许添加两个ECS实例,其中一个作为主机,另外一个作为备机
多可用区
阿里云SLB有两种类型:(1)“单可用区”类型;(2)“多可用区”类型。
在某些地域,可以选择创建“多可用区”类型的SLB实例,以提高负载均衡服务的可用性。
公网&私网实例
根据业务场景来选择配置对外公开或对内私有的负载均衡服务,系统会分配相应的公网或私网服务地址。
- 公网类型的负载均衡默认使用经典网络;
- 私网类型的负载均衡服务可以选择使用经典网络或专有网络。
IPv6实例
SLB支持创建IPv6实例。系统会为实例分配一个公网IPv6地址,转发来自IPv6客户端的请求。
访问控制
SLB提供监听级别的访问控制,即:为不同监听配置不同的访问控制策略。
支持黑名单、白名单两种访问控制策略,通过“访问策略组”进行黑/白名单的IP管理。
注意:若开启了访问控制,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。
后端服务器支持添加ECS弹性网卡ENI
弹性网卡(ENI)是一种可以附加到专有网络VPC类型ECS实例上的虚拟网卡,通过弹性网卡,可以实现高可用集群搭建、低成本故障转移和精细化的网络管理。性能保障型负载均衡实例后端服务器支持挂载ECS弹性网卡ENI。
- 前提条件负载均衡实例添加后端服务器组时,如果ECS实例绑定多个弹性网卡,支持挂载弹性网卡ENI。
SLB日志管理
查看负载均衡实例、HTTP监听和服务器证书资源一个月内的操作日志。
- 操作日志:需要在ActionTrail控制台查看。操作审计(ActionTrail)记录云账户资源操作,提供操作记录查询,并可以将记录文件保存到指定的OSS存储空间。
- 访问日志:结合阿里云日志服务,可以通过分析负载均衡的访问日志了解客户端用户行为、客户端用户的地域分布,排查问题等。
- 健康检查日志:可以在日志管理页面,查看三天内的健康检查日志。如需要更久的健康检查日志,需要将健康检查日志存储到OSS中,并可以下载完整的健康检查日志。
闲置实例与配额管理
闲置实例向您展示超过7天未投入使用的后付费实例,保持关注闲置实例,有助于更好的管理成本。
可以通过负载均衡控制台查询当前资源配额使用情况。如果某个资源的剩余配额不满足业务需求,也可以直接申请增加配额。
1.5 SLB的优势
- 按需计费:只为使用的流量付费
- 功能强大:提供4层和7层的负载均衡,无论是Web服务器,还是中间件服务器,都可以完美支持
- 配置简单:调用API或使用portal都可以随时配置负载均衡,立即生效,灵活简单。
- 安全稳定:SLB目前已经在阿里云内部多个系统使用,系统安全性和稳定性很高,可胜任生产要求。
- 无限扩容:无性能、容量的限制,且自动扩容。
- 无单点故障:集群部署,无单点故障,并且支持多可用区,从而保证应用高可用。
2.SLB配置流程
- 创建ECS
- 搭建应用
- 创建SLB
- 添加监听器和后端服务器
- 域名解析(可选)
3.SLB最佳实践
3.1 作为公网流量入口
这是一种典型的使用方式。在ECS上部署无状态的应用,使用SLB服务作为公网流量的入口,可以提高系统的可用性,同时,后端ECS不再需要公网IP和公网带宽。
3.2 多级负载均衡
场景:有对公应用,也有很多应用不需要
对公网访问,但都需要负载均衡
解决方案:选用公网SLB+私网SLB 搭建两级负载均衡。公网SLB承接对公访问,公网SLB的后端ECS调用私网SLB
优势:
- 节约成本:私网SLB免费
- 更加安全:私网SLB对公无法访问,保 护内部敏感应用
- 配置简单
3.3 实现相同域名不同路径的流量转发
使用 虚拟服务器组 + URL转发规则,实现将相同域名不同路径的流量转发至不同的后端虚拟服务器组。
3.4 同城容灾架构
- 购买负载均衡实例时,选择可用区类型为多可用区的地域,在SLB的主、备可用区均部署ECS;
- 在极端情况下(主可用区整体不可用时),负载均衡30秒内切换到备可用区并恢复服务;
- 当主可用区恢复时,负载均衡自动切换到主可用区.
4.SLB经典应用案例
4.1 可扩展的应用架构
某家园共育平台,专注于3-6岁孩子的成长教育
面临挑战:用户大规模的增长,系统需要应对高并发的访问量
架构解读:
- 分布式部署、服务化架构,易 扩展、高可用;
- SLB实现负载均衡,统一带宽流量入口,消除单点故障,实现高可用,提高系统可用性;
4.2 金融级两地三中心架构
场景:金融应用对可靠性要求极高,合规也要求两地三中心。
解决方案:
- SLB后端挂载多台同Region下不同可用区的ECS,结合SLB自身的同城容灾,实现一个可用区故障时业务自动切换到另外一个可用区继续服务。
- 配合使用云解析智能DNS,可做到多Region冗余。
4.3 结合全局流量管理实现跨地域负载均衡
结合全局流量管理,您可在本地负载均衡上层部署全局流量管理,实现跨地域容灾、不同地域访问加速和智能解析。
- 多线路智能化解析服务
- 跨地域容灾
- 不同地域访问加速
5.小结
1、SLB的典型应用场景是什么?
- 可扩展的应用架构
- 金融两地三中心架构
- 结合全局流量管理实现跨地域负载均衡
2、SLB有哪些功能?
SLB的功能:流量分发、流量调度、会话保持、健康检查、SSL证书管理、公网&私网、多可用区、虚拟服务器组、主备服务器组等
3、SLB有哪些优势?
- 按需计费:只为使用的流量付费
- 功能强大:提供4层和7层的负载均衡,无论是Web服务器,还是中间件服务器,都可以完美支持
- 配置简单:调用API或使用portal都可以随时配置负载均衡,立即生效,灵活简单。
- 安全稳定:SLB目前已经在阿里云内部多个系统使用,系统安全性和稳定性很高,可胜任生产要求。
- 无限扩容:无性能、容量的限制,且自动扩容。
- 无单点故障:集群部署,无单点故障,并且支持多可用区,从而保证应用高可用。
更多详情见云数据库RDS官方文档