第三天 SLB负载均衡实践
目标
拥有大量用户的企业,经常会面临如下的难题:在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。
本场景通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。
背景知识
阿里云负载均衡
简介
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。
负载均衡默认检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
架构
负载均衡服务主要有三个核心概念:
- 负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
- 监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
- 后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
特点
- 负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
- 负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。
- 负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。
产品优势
- 高可用
采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。 - 可扩展
您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。 - 低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。 - 安全
结合云盾,可提供5Gbps的防DDOS攻击能力。
0x01 开始
在阿里云申请免费体验,成功后,将会分配两台ECS,打开浏览器,分别访问两台ECS的弹性IP可以看到下方显示的后端IP不同。
0x02 负载均衡配置
- 使用体验机提供的登录URL和用户名密码登录控制台,点击左侧
负载均衡
- 再进入实例管理页面,点击
点我开始配置
-
在协议&监听页面,输入如下信息,完成后,点击 下一步 。
- 负载均衡协议:选择 HTTP
- 监听端口:设为 80
- 高级配置保持默认
- 在后端服务器页面,监听请求转发至默认服务器组,在已添加服务器处点击继续添加 。
- 在弹出的待添加服务器页面,在预先配置好的两台云服务器前打勾选择,然后点击下一步,之后再点击 添加;
- 在后端服务器界面的已添加服务器列表中,可以看到新增的两台云服务器,分别将 端口 设置为 80,并点击 下一步 。
- 在 健康检查 配置中,开启健康检查按钮为绿色 开启状态,点击 下一步。
- 之后,将会进行一次健康检查,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常。
0x03 验证
- 在实例管理中,可以看到负载均衡的服务地址
使用浏览器访问,重复刷新,即可看到后端服务器IP在两个地址之间轮流变动
如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
- 进入 实例管理 页面,点击该实例的 默认服务器组 ,选中 已添加的服务器 ,列表中,勾选下方的勾选框 ,然后点击 修改权重
设置两个实例的 权重 分别为 30 ,90。
浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的ECS实例,1 次访问权重为 30 的ECS实例。
- 如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
-
执行以下步骤,开启负载均衡的 会话保持 功能。
- 点击左侧 监听 ,监听页面点击右侧的 配置 。
- 配置监听页面的 高级配置 处,点击 修改 ;
- 开启 会话保持 ,超时时间 输入 180 (即 3 分钟);完成后点击 下一步 。
- 下面的 后端服务器、健康检查 和 配置审核 页面都采用默认值 ,依次完成配置。
- 返回到 监听 页面 ,会话保持 状态 已开启 。
- 点击左侧 监听 ,监听页面点击右侧的 配置 。
- 再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。
-
尝试故障备份功能
- 在控制台关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID),并在管理页面中将其关闭
- 返回负载均衡管理控制台,在默认服务器组页面中点击右上角的【刷新】,页面刷新后被停止的 ECS 的 状态 变为 已停止。
【监听】 页面,也出现 异常 提示 。
同样的,点击左上角的 【实例管理 】,返回负载均衡管理控制台主页面,异常 报警也会出现。
- 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上。
- 在控制台关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID),并在管理页面中将其关闭