34-EC2 Auto Scaling知识点

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的课程会讨论EC2 Auto Scaling包括的组件介绍以及相关重要知识点。

我们开始今天的课程内容。

上节课我们讨论了EC2 Auto Scaling可根据业务需求和策略 设置扩展选项,比如配置扩展策略在业务需求增长时自动为您增加实例以保证计算能力,在业务需求下降时自动减少实例数量以节约成本。

[AWS爱好者网站]弹性伸缩案例

然后我们举了[AWS爱好者网站]这个案例,使用了Auto Scaling,配置了扩展策略,我配置的策略是根据Auto Scaling 组的所有实例平均 CPU 使用率来进行弹性伸缩:当实例所在的Auto Scaling 组的平均 CPU 使用率大于70%时,新启动两台实例处理网站负载;当Auto Scaling 组的平均 CPU 使用率小于25%时,终止2个实例。我是使用的Auto Scaling组平均CPU使用率指标,您也可以使用预定义的其他指标或自定义指标配置扩展策略。当然,指标必须是有效的使用率指标,它能够描述实例的繁忙程度。

这样的话,在白天网站访问量不是很高的时候,CPU使用率比较低,只会有1台实例提供网站服务,而到晚上19点后访问量上去后,当CPU使用率大于70%时,Auto Scaling会启动两台新实例处理网站负载,加上之前的1台实例,一共3台实例提供网站服务;而当22点之后,访问量下去之后,如果平均CPU使用率小于25%,Auto Scaling就会终止2台实例,继续保持最小容量1台实例运行。

像这个案例使用Auto Scaling,通过配置Auto Scaling组实例的平均CPU使用率的扩展策略实现弹性伸缩,在实际组织环境中非常的常见,我们后面课程也会基于这个案例来进行实操演示,帮助大家更好的理解和掌握。

另外关于使用费用,Amazon EC2 Auto Scaling 本身不产生额外费用,当然由Auto Scaling启动的实例肯定是要付费的。因此我们可以利用好 EC2 Auto Scaling来设计和优化我们的架构。

实操演示:最小容量演示

我们下面做个演示,切换到AWS管理控制台,然后访问Auto Scaling组。

我们上节课讲过最小容量,最小容量是指确保始终运行一定数量的实例,我设置的是1就代表无论怎么缩减这个Auto Scaling组始终会保持最少运行1台实例对外提供服务。当我们配置好Auto Scaling组并配置最小容量为1后,Auto Scaling组就会为我们启动1台实例。

在下面的实例选项卡可以查看目前正在运行的一台实例的信息,那如果我现在终止这个实例,会出现什么情况呢?我们来测试一下。

点击这个实例id进入到实例控制台,然后我们终止这个实例。

好,现在需要等状态变为terminated,稍等1分钟。

然后我们看下Auto Scaling组这个实例的运行状况,我们稍等一下。可以看到目前Auto Scaling组的这个实例的运行状况变成unhealthy了,Auto Scaling组的运行状况检查已经检测到这个实例异常了。

然后切换到Auto Scaling组的活动历史记录,可以看到Auto Scaling组目前正在新启动一个新实例。

我们来梳理下为什么会出现这种情况:我们配置Auto Scaling组最小容量为1,Auto Scaling组会启动1台实例提供服务,并保持最少1台实例运行。然后 EC2 Auto Scaling 对 Auto Scaling 组内运行的实例执行定期运行状况检查。如果发现实例运行状况不佳,它就会终止该实例,并启动新实例。

因为我们刚才手动终止了Auto Scaling组的实例, Auto Scaling会将该实例视为运行状况不佳,然后Auto Scaling会检查当前最小容量配置为1,所以Auto Scaling 启动一个新的实例来替换它,最终始终保持最小容量1台实例提供服务。

好,目前我们可以看到新启动的实例的运行状况已经变为healthy,实例已经可以正常提供服务。
以上是我们的一个关于最小容量的实操演示,我们继续后面的内容。

EC2 Auto Scaling 关键组件介绍

我们下面的内容来介绍下EC2 Auto Scaling 包括的关键组件—配置模板、EC2 Auto Scaling组 、以及 扩展选项,这三个是EC2 Auto Scaling核心组成部分。

我们先来看下什么是配置模板。

想要创建Auto Scaling,第一步就是要创建配置模板,然后才是创建和配置Auto Scaling组。

我们在前面的实操演示的时候终止了一台Auto Scaling组的实例,然后Auto Scaling发现实例运行状况异常后,自动启动了一个新的实例来替换它,那么Auto Scaling组怎么知道启动实例的具体规格等参数呢?比如具体使用的实例类型是什么?使用的是什么操作系统,使用的安全组等等这些信息?这些信息都是通过我们之前定义的配置模板,然后在Auto Scaling组中指定配置模板来实现的。

我们需要通过创建配置模板为Auto Scaling组启动的实例指定一些信息,例如:

  • 启动实例使用的AMI,是使用centos、Amazon linux还是其他操作系统?
  • 实例的类型是什么?如是使用t2.mirco 还是 m5.large等等?
  • 以及为启动的实例分配的安全组,角色等等
    然后,在Auto Scaling组中指定对应的配置模板后,Auto Scaling组才知道需要为我们启动具体实例的具体信息。

配置模板现在可以选择使用“启动模板”或者“启动配置”作为Auto Scaling组启动EC2实例的配置模板,这两个都可以,其实不管是通过“启动模板”或者“启动配置”,其目的是一样的,目的都是指定Auto Scaling组启动EC2实例的配置。启动模板比启动配置提供了更多的功能,所以AWS是建议使用”启动模板“来替代”启动配置“。

当我们创建好配置模板后,就可以开始创建Auto Scaling组了,使其关联我们之前创建好的配置模板,这样的话,Auto Scaling组启动新实例时就会按照我们配置模板指定的配置。Auto Scaling 组是包含 Amazon EC2 实例集合,将实例当作一个逻辑单位进行扩展和管理。

您可以指定每个 Auto Scaling 组中最少的实例数量,EC2 Auto Scaling 会确保您的组中的实例永远不会低于这个数量,我们在前面的案例指定的最少数量是1。

您可以指定每个 Auto Scaling 组中最大的实例数量,EC2 Auto Scaling 会确保您的组中的实例永远不会高于这个数量,我们在案例中指定的最大实例数量为3。

如果您在创建组的时候或在创建组之后的任何时候指定了所需容量,EC2 Auto Scaling 会确保您的组一直具有此数量的实例。我们指定了最小数量为1,最大数量为3,就表示我们希望我们的实例数量在1和3之间进行伸缩扩展。

然后,配置可用区和子网,用来指定在哪个可用区以及子网中启动的新的实例,以及Auto Scaling 组是否附加负载均衡器,还有监控状况检查配置项等等,这些都是Auto Scaling组需要配置的内容。

好,我们看下第三个关键组件,扩展选项,前面我们配置了配置模板,Auto Scaling组,Auto Scaling组中的实例数量伸缩的规则是通过扩展选项来进行配置的。

EC2 Auto Scaling 提供了多种扩展 Auto Scaling 组的方式,包括始终保持当前实例级别,手动缩放,按计划扩展,根据需求进行扩展。

大家想一下我们前面的aws爱好者网站的案例是属于什么扩展?是属于根据需求进行扩展,大家答对了吗?
关于扩展选项这部分内容比较多而且非常重要,后面我打算单独一个课时来讨论以及进行实操演示。

“配置模板”以及Auto Scaling组的具体配置

好,接下来我们切换到AWS管理控制台,我们来通过控制台来看下“配置模板”以及Auto Scaling组的具体配置。

进入到EC2管理控制台,然后在左边可以看到Auto Scaling,包括启动配置以及Auto Scaling组。

首先我们先进入到“启动配置”,还记得我们前面讲的“启动配置”为配置模板之一吧?然后可以看到我之前演示创建的as-test启动配置,我们来看一下具体我配置的信息。

在“启动配置”的详细信息中:

  • 可以看到AMI的配置,这个AMI ID对应的是我们指定的amazon linux 2的操作系统。
  • 实例的类型,我指定的是t2.micro。
  • 还有我配置的密钥、指定实例所使用的安全组信息,以及块存储设备等等。

这些都是“启动配置”的一部分。

当我们的Auto Scaling组使用这个“启动配置”时, Auto Scaling组启动的新实例就是基于这些配置信息的,启动的实例是基于amazon linux 2系统,使用的是t2.micro实例类型等等。

好,正如我们前面所讲,当我们创建Auto Scaling时,第一步就是需要创建配置模板,我们这里对应的是创建“启动配置”,创建“启动配置”后,我们就可以开始创建Auto Scaling组。

我们现在进入Auto Scaling组的控制台,as-test-group是我之前创建的Auto Scaling组,可以看到这个Auto Scaling组关联的启动配置名称为:“as-test”,as-test就是我们前面演示的我之前创建的“启动配置”。

最小,最大,以及所需容量,这些前面讲过。注意我这里把案例的最小容量由1改成0了,因为前面演示过如果最小容量配置成1,就会一直保持最少1台实例始终运行,我现在不需要这个实例一直运行,就通过将最小容量改为0然后把实例终止了,这样节省资源。

Auto Scaling组的配置还有启动实例的所在可用区及子网的配置,运行状况检查的配置等等

然后看下Auto Scaling 组对应的选项卡。

  • “活动历史记录”,我们前面也实操演示过,Auto Scaling 组中终止和启动实例的信息会记录到这里。
  • “扩展策略”,是我们添加扩展策略的地方,我们这个案例定义了分步扩展策略,策略的内容为Auto Scaling 组的实例平均 CPU 使用率大于等于70%时,新启动两台实例处理网站负载;当Auto Scaling 组的实例平均 CPU 使用率小于等于25%时,终止2个实例。
  • 实例选项卡,为当前Auto Scaling 组中正在运行的实例,我们目前没有实例在运行。
  • 还有监控选项卡,以及通知选项卡等等,我们可以在通知选项卡中配置当组里有实例启动或者终止等状态时为我们发送邮件通知。

好的,以上就是本节课的全部内容,我们做了最小实例相关的一个演示,以及重点介绍了Auto Scaling的3个组件,希望通过这节课的讲解,大家能够掌握Auto Scaling 的这些知识点,我们下节课计划开始实操演示,从头开始配置Auto Scaling 。

希望本节课的内容能给大家带来帮助。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

  • AWS爱好者的网址是www.iloveaws.cn。
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
  • 加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2020年8月27日

0 responses on "34-EC2 Auto Scaling知识点"

Leave a Message

error: Content is protected !!