文章目录
- 1.ESS弹性伸缩基本概念
- 1.1.弹性伸缩概念
- 1.2.弹性伸缩应用场景
- 1.3.弹性伸缩的应用模式
- 2.开通ESS弹性伸缩服务
- 3.为KodCloud云盘集群创建弹性伸缩组
- 3.1.创建伸缩组
- 3.2.设置伸缩组的名称、类型、移除策略、健康检查
- 3.3.设置组内实例数、冷却时间、网络类型、扩缩容策略、回收模式
- 3.4.设置组内的专有网络以及交换机
- 3.5.关联云盘的SLB负载均衡
- 3.6.设置消息接收的通知
- 3.7.伸缩组创建完成
1.ESS弹性伸缩基本概念
ESS弹性伸缩官方文档:https://help.aliyun.com/product/25855.html
1.1.弹性伸缩概念
弹性伸缩(Auto Scaling)可以根据业务需求和策略自动调整实例数量的一种服务,弹性伸缩可以指定要伸缩的实例类型,比如ECS服务器实例,当应用程序处于高并发或者流量增长时,弹性伸缩可以动态的扩展ECS服务器的数量,来保障服务的可用性,当应用程序需求下降时,弹性伸缩也可以动态减少ECS服务器的数量,节约大量的成本。
使用弹性伸缩机制,可以大大减少我们运维的成本,只有当业务量处于高峰期的时候添加实例的数量,当业务处于低峰期时则会释放添加的实例,相比于一直使用多数的实例可以大大减少成本,另外弹性伸缩机制也不需要投入大量的人力来调整资源池,也不需要提前准备好这些资源,也不需要担心高峰期过后资源的释放问题。
接入弹性伸缩后,一切都变得非常自动化,当弹性扩张时,按照我们事先准备好的实例镜像,根据镜像自动的运行ECS服务器,并且自动的接入负载均衡中,当弹性伸缩时,会自动将创建的实例释放,并且从负载均衡中移除,减少人为参与的成本。
弹性伸缩在操作过程中,伸缩的成功或者失败支持发送消息通知,并且弹性伸缩过程中的云监控事件也支持发送消息通知。
最重要的一点:弹性伸缩服务免费使用,技术手段阿里云提供,但是扩展的资源是需要收费的。
1.2.弹性伸缩应用场景
- 有规律的业务量波动
- 比如视频、游戏类型的公司,以视频类公司举例,每周的个别几天更新网剧、综艺节目等等,这种公司的高峰流量期都是固定在周二和周四,我们不能确定高峰期究竟开启多少个服务器合适,如果平日里我们也购买高峰期那么多的ECS实例,成本是非常高的,我们可以通过弹性伸缩机制,设置弹性的时间段,在高峰期的时候根据业务流量的高低,自动扩展或收缩实例数量,保证服务高可用。
- 无规律的业务量波动
- 比如新闻网站,在个别的时候,突然有一个劲爆的新闻,用户这一时刻都去看,此时,如果没有弹性伸缩机制监控着实例的运行状态,很有可能出现宕机的情况,平时也开很多实例浪费成本,劲爆新闻的时间段是我们无法把控的,因此这种场景就非常适合接入弹性伸缩了,当某一时刻流量激增时,自动扩展,当热度下去了,自动缩容实例。
- 无明显的业务量波动
- 当前服务运行正常,但是可能因为某些资源故障,一下子就导致服务不可用,也没有故障恢复机制,这种情况也很建议接入弹性伸缩,当个别资源故障时,通过弹性伸缩的健康模式,自动将故障的实例删除,运行一个新的实例继续提供服务。
- 混合型的业务场景
- 平日里应用流量正常,某个时间段的时候会有一些波动,这种场景可以通过弹性伸缩的云监控,当资源利用率超过80%时自动扩展实例数量。
1.3.弹性伸缩的应用模式
定时模式:自定义弹性伸缩使用的时间段和频率,比如每天的12:00增加ECS实例。
动态模式:基于云监控性能指标,比如CPU使用率,根据监控指标自动扩展或者减少实例数量。
监控模式:类似于故障资源,当实例的状态处于非Running状态,弹性伸缩机制就会将故障的实例删除并且自动启动一个正常的实例。
2.开通ESS弹性伸缩服务
1)在控制台搜索弹性伸缩服务
2)创建服务关联的角色
点击图中的创建服务关联角色。
点击确定完成服务的开通。
3.为KodCloud云盘集群创建弹性伸缩组
大体实现步骤如下:
事先准备好云盘集群的ECS、SLB、虚拟服务器组等实例,SLB需要添加好监听模式并关联虚拟服务器组。
1、创建kodcloud云盘系统的伸缩组;
设置弹性伸缩的实例类型、实例移除策略、设置伸缩组中最大最小实例数、设置扩缩容策略、关联可伸缩使用的交换机、关联SLB负载均衡。
2、
3.1.创建伸缩组
进入弹性伸缩控制台后点击创建伸缩组。
选择从零创建。
3.2.设置伸缩组的名称、类型、移除策略、健康检查
1)伸缩组的名称为:KodCloud云盘Web集群弹性伸缩组。
2)伸缩组类型选择ECS,也就是伸缩的实例类型。
3)伸缩组内的实例配置信息来源选择从零开始创建,配置完伸缩组后会去添加组内实例的来源信息,也就是伸缩的实例资源配置属性。
4)实例的移除策略:先筛选出最新创建的实例,再从结果中移出最早创建的实例。指的是缩减节点时的策略,最新创建的实例指的是:最新扩展出来的实例,要缩减时也肯定是要先移除最新扩展的按量付费的实例。再从结果中移除指的是:从筛选的最新创建实例中,将最早扩展的实例先移除,比如说,今天上午扩展了10台ECS实例,下午缩减时,从这10台实例中找出最早创建的,比如上午7点是第一个扩展的实例,那么就先移除最早创建的实例。
5)开启伸缩组保护不要勾选,勾选后无法缩减实例。
6)开启实例的监控检查机制。
3.3.设置组内实例数、冷却时间、网络类型、扩缩容策略、回收模式
1)组内最小实例数设置为2个
当开启伸缩服务后,如果此时集群节点数只有1个,那么会自动触发扩容机制,将组内的实例数扩容为2个。
2)组内最大实例数设置为100个
组内最大的实例数量,不管应用的负载有多高,最多只能扩展到100个实例,这个值需要具体的压力测试后才可声明。
3)组内期望实例数为2个
建议和最小数保持默认。
4)默认冷却时间为300秒
冷却时间也就是值当扩展了1台实例后,等待多久之后再继续扩容,300秒较佳。
5)网络类型设置为转有网络
6)扩缩容策略选择优先级策略
优先级策略:根据添加的多个区域的交换机,优先将实例创建到第一个可用区的交换机,当这个交换机无法创建实例后,再将实例创建到第二个指定的可用区交换机中。
均衡分布策略:需要添加多个可用区的交换机,均衡的在不同可用区创建实例。
成本优化策略:根据需求指定价格最低的实例配置
7)实例的回收模式选择释放模式。
3.4.设置组内的专有网络以及交换机
1)专有网络选择可用区的VPC网络。
2)交换机尽可能的选择多个,避免无法创建实例的可能。
如图所示,添加了3个交换机,由于我们的扩缩容策略设置的是优先级模式,因此伸缩扩展后的实例首先还在SW-Area-A可用区进行创建,当A区无法创建时,才会再B去创建ECS设置。
3.5.关联云盘的SLB负载均衡
1)在关联传统型负载均衡CLB中选择kodcloud云盘使用的SLB负载均衡。
2)关联后会有一个默认服务器组,首先将默认服务器组删除,然后点击添加虚拟服务器组。
3)选择kodcloud的虚拟服务器组。
4)在端口中填写80端口。
3.6.设置消息接收的通知
如果我们需要关联ALB或者RDS在列表中自行选择即可,最后设置消息的接收通知,成功、失败、拒绝这三种消息类型全部接收。
配置没问题后点击确认完成伸缩组的创建。
3.7.伸缩组创建完成
点击上图中的确认,创建完成伸缩组后会要求我们去配置伸缩规则,稍后我们一步步的配置,我们先点击关闭。
伸缩组创建完成。