无业务不伸缩之二,云监控搭配SLB及ESS(进阶篇)
更新:HHH   时间:2023-1-7


云计算ESS弹性伸缩课程

无业务不伸缩之二,云监控搭配SLB及ESS(进阶篇)

连载云计算文章主题

后续的连载如下
1、 无业务不伸缩之一,云计算有ESS
2、 无业务不伸缩之二,云监控搭配SLB及ESS
3、无互动不加速,云计算有CDN
4、无对像不存储,云计算有OSS
5、无文件不存储,云计算有”文件存储”
6、浅谈弹性IP的运用
这些文章将会在接下来的一段时间向各位一一呈现出,本期第二篇“无业务不伸缩之二,云监控搭配SLB及ESS

进入主题。第二篇:无业务不伸缩之二,云监控搭配SLB及ESS

前言

亲们!又见面了这次我们接着上一讲继续聊一聊ESS的高级应用吧,在上一期我们演示的是基于“定时模式”的ECS伸缩规则这虽然在短时间内达到了我们的预期,业务量也在众目睽睽中有所上升但是好像还不太行啊!它更适合在固定时间预算好的场景,对于随时可能突发的业务增长还是显的力不从心啊,不急,接下来我会为兄弟们来点干货的,那就是利用云监控加SLB搭配ECS做自动伸缩这么一个操作、用咱行内话来讲叫做“动态模式”它是基于云监控获取到的性能指标(如 CPU 利用率),来自动增加或减少 ECS 实例的,它在爆发式业务增长环境下特别重要,从2018年央视春晚租用了1000+台云服务器来提供微信互动业务的例子我们可以看出该技术的重要程度了。

开场秀SLB

SLB(负载均衡)通俗一点我们这么理解吧“当某样事件达到一定负荷时、然后载入一种可以均衡或者说是平衡这种负荷的技术”,有学过Cisco的同学吗?不错,你们想起来什么了吗?对的!在Cisco网络技术中我们也同样有这样的技术叫GLBP它同样是以轮询和权重两种方式来进行负载均衡的。
那么轮询是怎么工作的呢打个比方吧我们在SLB集群中有“A服务器”和“B服务器”它们的业务相同,当A在提供服务的同时又有外线进来了,这个时候SLB会询问A和B你们谁需要服务啊!A回答我忙着呢,这时B回答我闲着呢把服务给我呗!,就这样一论一论的询问呗。那么权重又是怎么工作的呢?它例似主备关系,比如A权重为100、B权重为50,所有的业务流量都由A来负责只有当A累晕了倒下住院了B才会来接管A的工作。在实际的项目中我们一般在前端部署SLB(同时用轮询加权重),后端挂载N台ECS,然后再搭配一个ESS同时用云监控来管理,这样就完美了,管它什么访问量有种尽管来造吧,嘿嘿!

请看下图:这是云监控和ESS的一个简易工作流程,手头上工具不精良啊各位看官凑合看吧。

那么好,我们一般在什么情况下使用SLB+云监控+ESS呢,上次我们说了如果在传统IDC模式下遇到爆发式业务增长然后再手动去添加服务器那我们就等着关门大吉吧,同样啊,如果我们是自建电商、金融、通迅等一些在线做买卖的公司则必须要搞上这一套服务要不然还是不太妙啊,呵呵!因为我们不知道什么时候会达到业务峰值或许就是下一秒,如果等达到了业务峰值再去做调整好像就有点晚了吧!正所谓“未雨绸缪”吧,千万不要等到“亡羊补牢”那就真的犹时已晚了。

Come on直接实操吧

实操都是基于真实的实验环境的啊,是要实验币的!我还是蛮心疼的但是能怎么办呢?谁让我承诺要写个连载的呢。

首先呢,我们在控制面板找到“产品与服务”然后在左侧找到“云服务器ECS”在这里我们已经提前搭建了网站环境,现在我们需要做的是给这个网站服务器做一个镜像文件给ESS去调用,在控制面板中点击实例然后找到管理并进入。

在管理页面中我们选择“本实例磁盘”在右侧我们可以看到有个“创建快照”的选项,我们点击进去。其实我们可以跳过创建快照直接可以创建镜像文件的。

在弹出的创建快照对话框中输入快照名称这里为WEB_P并点击确定进行创建。

来到本实例快照中,我们可以看到快照状态为100%接着我们选择创建自定义镜像。

在弹出的创建自定义镜像对话框中输入镜像名WEB_LAB,点击创建完成。接下来我们来到ECS的镜像选项中可以看到整个镜像成功完成。

到此为上ECS的准备工作结束了,接下来我们再进行一个ESS(弹性伸缩)服务的配置和部署,这也是比较关键的一步吧,没有ESS一切前面和接下来做的都是扯蛋!来吧我们配置起来,说实话写这个图文心得我也挺累的要不断的截图要不然怎么办呢?好了不废话了!

我们还是一惯的作风,不管找什么都得是从控制面板进去,我们来到弹性伸缩服务页面找到右侧的“创建伸缩组“在弹出的对话框中输入组名ESS_GROUP、最大实例数4、最小实例数1、网络类型选择专有网络、负载均衡暂不填在后面会讲到,点击确定按钮此时会弹出个框子问你是否创建伸缩配置我们选择创建。

在这里我们需要选择的是ESS所用的服务器配置,由于是演示关系我这里选择按量付费、一核一G的共享基本型主机,镜像文件选择自定义镜像在下拉框中找到我们之前创建的WEB_LAB镜像文件。然后依然下一步在最后要求输入伸缩配置名完成配置在此我们输入ESS_CONFIG并确定,在弹出的框中选择启用配置,完成!

Now,来到ESS的ECS实例例表中,选择添加已有实例、在手工添加ECS实例中将未添加的实例移到右侧并确定,因为在之后ESS进行伸缩的时候也是以这个实例为模版的。

接下来我们来到ESS伸缩规则中并新建一个以ESS_RULE为名的规则,规则为调整至5台,也就是说当触发监控条件时会自动将服务器由原来的一台调到五台以满足业务需求。

当然了光有规则还是不行的!我们还要建立一个监控的任务才可以,上期我们讲了定时模式,这次我们就用报警任务来执行吧,同样新建一个名为ALARM_TASK的任务,任务内容为监控ESS_GROUP以每分钟的频率来统计CPU的性能,当CPU达到40%的时候触发警报规则ESS_RULE并开始执行。

现在ECS有了、ESS有了监控任务等也做好了,好像还差个什么吧!对了想起来了SLB还没有配置呢,赶紧的吧!逛了一圈我们来到SLB控制台在实例管理的详情中可以看到还没有添加任何监听规则,现在我们来添加一下吧,点击添加监听选择HTTP协议、监听端口80。

接着来到后端服务器配置,选择默认服务器组、添加有EIP公网的那台实例并确定,端口80其它默认、健康检查开启后一路Next,跟着我图中标示的圈圈走没错的!

哦,对了!还有一项工作忘记了没有做呢,我们回到ESS伸缩组管理中,选择红圈圈中的修改选项,在负载均衡中选择上我们刚才添加的SLB后端服务器,这也是为什么我放在后面说的原因,因为一开始SLB没有创建自然也没法选择了。

好了写到这边也差不多接近尾声了,我容易嘛,哎!两臂酸痛无力从来没有一次性的写过这么多字,也从来没有写过文章。这些重要吗?不重要!一切随心而为罢了!好了接下来我们就要开始对服务器做个压力测试模拟大流量用户访问服务器来触发报警任务由此来验证我们的所有配置是否正常。首先我用SSH登陆服务器安装云监控的AGENT,然后用STRESS工具进行测试,来吧,看图!

压力测试正在持续进行中,一分钟后我们来到ESS、SLB、ECS当中查看它们的各自状态,我们看下面这四张图。第一张是ESS报警任务中状态由原来的正常变成红色报警了、接着来到ECS概览发现服务器由原来的一台变成四台在运行了,再到实例中看一下多出三台以ESS-开头的服务器这是由弹性伸缩规则生产出来的、最后我们到负载均衡实例中查看一下同样也多出三台以ESS-为前缀的服务器,由此证明以上一切配置正确并达到预期效果,本课程也到此结束,谢谢大家!

总结

本篇“弹性伸缩课程到此为止”在本篇文章中我们接着上一章做了更加深入的应用,但是应用远远不止于此大家可以发挥各自的想象力利用学到的技术互相配合相信在无限的想象力下会产生更多的化学效应,正所谓云计算有1024种玩法,看你喽!

总结如下:

1.ECS镜像的创建可以放在第一步来做,SLB可以放第二步做,ESS放最后来做,这并不是唯一做法只是我觉的针对新手会比较好点,熟悉之后你可以随便什么先后都没有问题。
2.ESS可以很好的保障因突发性访问所产生的服务器压力过大问题。
3.ESS具有通俗的使用特点,不需要有过多的操作技术简单实用。
4.ESS结合SLB、云监控、更加完美的,并自动化的为业务保驾护航。

特别致谢

在此我特别感谢我在阿里云大学云学院的“闫笑”导师,他是一位认真、负责的老师无论是在答疑的时间内还是答疑时间外都能够及时的为我们解惑。感谢他在我们做毕业设计的过程中给予诸多的帮助,感谢他在白天忙于工作而在夜里十二点还不顾疲劳在为我们大家的修改论文(有图为证),谢谢!

返回云计算教程...