本实验通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。
实验目标
完成此实验后,可以掌握的能力有:
- 配置负载均衡SLB的监听规则,并将ECS实例部署到SLB后端;
- 通过设置负载均衡SLB后端服务器ECS的权重值,分配用户访问后端ECS实例的比例。
背景知识
负载均衡采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
阿里云当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。
四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
阿里云负载均衡
简介 :
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。
负载均衡默认检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS的能力,增强了应用服务的防护能力
架构 :
负载均衡服务主要有三个核心概念:
1.负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
2.监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
3.后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
特点 :
1.负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
2.负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS的特性,增强了应用服务器的防护能力。
3.负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。
产品优势:
1.高可用
采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
2.可扩展
您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
3.低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。
4.安全
结合云盾,可提供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上。
因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。
实验实施
配置基础负载均衡
分别访问两台云服务器通过负载均衡的一些配置查看有什么差异
打开浏览器,在输入框中输入 实验资源 提供的 云服务器ECS-1 的 弹性IP ,页面如下图:
打开新的窗口,输入 云服务器ECS-2 的 弹性IP ,访问页面如下:
通过上述图片比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
说明:在真实场景下,负载均衡后端的服务器中部署的应用都是一致的。
输入资源提供的“子用户名称”和“子用户密码”登录。
登录到界面:
在阿里云管理控制台中,点击左侧导航栏的 产品与服务 ,在弹出的页面中点击 负载均衡 ,进入负载均衡控制台:
通过如下步骤,进入本次实验提供的负载均衡实例的管理页面:
1)点击左侧栏的实例管理
2)在地域信息栏中,选择本实验的 实验资源 提供的 地域
3)在 模糊搜索 右侧的搜索输入框中,输入本实验的 实验资源 提供的 负载均衡 实例的 实例ID
4)在下端的搜素结果中,点击实例右侧的 点我开始配置,进入负载均衡实例的管理页面
通过如下步骤,配置监听规则的基本信息:
1)在弹出的页面中,选择负载均衡协议为HTTP,监听端口为 80;然后点击高级配置右侧的修改按钮:
2)在展开的高级配置中,查看到默认会话保持的状态为关闭。不做任何修改,直接点击下一步
3)选择默认服务器组下方的继续添加,将两台已创建的ECS实例添加到SLB后端
4)在弹出的页面中勾选两台已创建的ECS实例,并点击下一步
5)在弹出的页面点击添加
6)选择已添加的ECS实例的端口为 80,并点击下一步:
在健康检查 配置中,不做任何修改,保持健康检查开启状态,点击下一步。
配置完成后,点击提交
跳转到实例管理页面,查看到新创建的监听配置,处于运行中状态
验证负载均衡工作原理
本小节主要内容如下:
验证负载均衡的工作原理
验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器
验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器
此时,两台后端服务器的权重比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例:
1)点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 服务地址(也就是 实验资源 提供的 负载均衡 的 IP地址) ;
2)在浏览器中新建页面,并访问 负载均衡 的 服务地址 。
界面显示的 后端服务器IP 为 云服务器ECS-1(或 云服务器ECS-2) 的 内网地址 。
说明:界面显示的地址为内网地址,这是因为负载均衡访问后端ECS实例,是通过内网访问的。
3)刷新 浏览页面,显示的 后端服务器IP 将发生变化,变为 云服务器ECS-2(或 云服务器ECS-1)的 内网地址 ;
4)重复刷新操作,观察 后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。
5)如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。
1)返回 实例管理 页面,点击SLB实例名称进入实例管理页面;
2)选中 默认服务器组 ,在服务器列表中,勾选下方的勾选框 ,然后点击 修改权重 ;
3)弹出对话框中,勾选 设置不同的权重 。设置两个实例的 权重 分别为 30 ,90 。
说明:通过如上的权重配置,用户通过负载均衡访问的时候,1/4的用户请求发送到一台后端服务器中,3/4的请求发送到另一台后端服务器中。
4)完成如下配置后,点击 确定 ,生效配置信息。可以查看到两台ECS实例的权重分别为30 和 90,并记录对应的ECS实例内网地址和弹性IP。
浏览器中,刷新多次 负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。 可以发现:每4次刷新,将有3次访问 权重 为 90 的ECS实例,1次访问权重为 30 的ECS实例。
如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
3.执行以下步骤,开启负载均衡的 会话保持 功能。
1)在实例管理页面,点击SLB的实例名称进入实例管理页面;并在监听页面点击修改监听配置。
2)在弹出的页面中,点击高级配置右侧的修改,设置开启保持的状态为已开启,然后点击下一步和提交。
3)提交修改后,点击监听名称,在弹窗中查看到SLB实例的会话保持显示已开启的状态 。
4)再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台ECS上(究竟是哪一台ECS没有规定),时间超出后,重新按照权重比例分发。
验证负载均衡的健康检查
本小节主要内容:开启健康检查后,模拟服务器出现故障,关闭某一台服务器,观察负载均衡请求分发情况。
1.重复刷新,在超时时间内,请求只会发送到其中一台ECS上
我们关闭开启 会话保持 的那台ECS 。
后端服务器 页面,已添加的服务器 中 ,选择下图红框对应的目标ECS实例,并点击进入该ECS管理控制台。
3.实例详情 页面 ,点击右上角处的 停止 ,关闭当前ECS。
等待1分钟左右,实例的状态变为 已停止
4.返回负载均衡管理控制台,在 默认服务器组 页面中点击左上角的 刷新,页面刷新后被停止的ECS的 状态 变为 已停止。
监听 页面,也出现 异常 提示 。注意:由于检测需要时间,一般再1-2分钟后,状态才会变成异常;
5.再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上。