EC2 Auto Scaling创建启动配置&ASG

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的课程是 EC2 Auto Scaling系列内容—实操演示从头开始创建“启动配置”以及“Auto Scaling组”

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

创建启动配置

我们前面讨论过,想要创建Auto Scaling,第一步就是要创建“配置模板”,然后在创建和配置“Auto Scaling组”。

“配置模板”我们选择创建“启动配置”,访问EC2控制台,然后访问左侧Auto Scaling部分的“启动配置”。

好,然后我们点击“创建启动配置”。

首先需要选择AMI,可以选择自己创建的AMI,或者选择用户社区或 AWS Marketplace 提供的 AMI,我们的演示就选择Amazon Linux  AMI。

我们按AMI ID搜索,然后将Amazon Linux  AMI 的ID复制进去(ami-0318ecd6d05daa212),这个AMI ID就对应着Amazon Linux  AMI 。

然后选择Auto Scaling组启动实例的类型,因为是演示我们就选择符合免费套餐条件的t2.micro,然后下一步配置详细信息。

指定“启动配置”的名称,我们输入as-test

购买选项,可以通过勾选请求竞价型实例,也就是spot实例。

IAM角色,可以选择与ASG启动的实例关联的IAM角色。

监控,默认情况下, Auto Scaling 实例会启用 CloudWatch 基本监控,基本监控5分钟间隔提供数据;如果要为 Auto Scaling 实例启用详细监控,就勾选启用 CloudWatch 详细监控,详细监控以1分钟的间隔提供数据。

有一点要注意,基础监控是免费使用,启动详细监控是要收费的。

看下高级详细信息:

用户数据User data:您可以在这里指定用户数据,指定之后在实例启动时会自动运行这里的命令配置实例。

我现在想在之后ASG中启动的实例都自动安装好NGINX,然后修改index.html默认页的内容,那现在就来编写一个简单的脚本来实现一下:

#!/bin/bash
sudo yum -y install epel-release
sudo yum -y install nginx
echo "auto scaling test" > /usr/share/nginx/html/index.html
sudo service nginx restart

(然后修改下nginx默认页的内容,还记得路径吧,之前的课程讲过)

好,用户数据编写完成,我们继续。

添加卷,因为是测试我们就使用默认大小的8G的就可以了。

然后配置安全组,因为我们前面配置了用户数据安装NGINX,我们新添加一条规则,规则内容为对外全开80端口,这样的话等我们都配置好就可以直接测试NGINX默认页。

这里在多说一句,前面我录制的课程有同学留言说IAM策略还是S3存储桶的策略我设置开放的范围太大了,这种反馈非常好,说明仔细看视频了。我这里说一下,是这样,在生产环境配置确实是要基于最小权限原则,但是对于我们的演示,就比如上面我的SSH对外全部开放了,这个只是为了演示测试方便,本次测试后我就删除了,并不是鼓励大家将SSH对外全开放的意思,另外比如现在在Auto Scaling课时,我们不会深入在展开讨论配置策略安全性的细节,然后在这里在基于生产环境的要求配置策略,这样太浪费时间。但是还是那句话,希望大家在生产环境不要开放权限这么豪放。

好,我们继续。

然后我们选择一个密钥对,用于登陆实例。

然后创建启动配置。

好,可以看到已成功创建启动配置:as-test。

我们看下刚创建的启动配置as-test。

包括实例使用的AMI ID,这个ID对应的是刚选择的Amazon linux 操作系统。

实例类型 使用 t2.micro

使用的密钥名称,对应的安全组配置,块存储配置等等。

在Auto Scaling组启动新实例时会按照这些我们配置到“启动配置”中的这些信息来启动实例。

好,启动配置我们就创建完成了,接下来我们开始创建Auto Scaling组。

创建Auto Scaling组

访问Auto Scaling组,开始创建Auto Scaling组。

首先需要选择一个配置模板,可以使用启动配置或者启动模板来指定Auto Scaling组用来启动实例的参数。这两个都可以,其实不管是通过“启动模板”或者“启动配置”,其目的是一样的,目的都是指定Auto Scaling组启动EC2实例的配置。“启动模板”比“启动配置”提供了更多的功能。

我们演示就采用启动配置,然后在下方选择我们前面刚创建的as-test这个启动配置,Auto Scaling 组名,我们输入:as-test-group。

继续。

网络部分,也就是将实例启动到哪个VPC和子网中,我们就选择默认VPC,然后选择子网,我们选择3个可用区,选择多个可用区就可以利用可用区地理冗余,提供更高的安全性和可靠性。这样的话当一个可用区运行状况不佳或无法使用时,Auto Scaling 将在不受影响的其他可用区中启动新实例。

在为Auto Scaling 组选择多个可用区后,EC2 Auto Scaling 会尝试在启用的可用区之间均匀分配实例,比如如果后面我们的Auto Scaling 组启动了3个实例,EC2 Auto Scaling 会尝试在我们选择的每个可用区都启动一个实例提供服务。

负载平衡,在这里可以为Auto Scaling 组附加负载均衡器,我们这里不选择,后面的课时可能会讲解和演示这部门内容。

运行状况检查宽限期,是指运行状况检查前等待的时间,我们就改为30秒。

我们勾选在 CloudWatch 中启用组指标收集

然后我们下一步,配置组大小和扩展策略

然后是配置所需容量、最小 /最大容量。

也就是说您希望Auto Scaling组在一个什么数量范围进行弹性扩展。按照我们前面介绍的AWS爱好者网站的案例,我们配置为在1和3个实例之间进行扩展。

然后是扩展策略配置,在这里只能选择“目标跟踪扩展策略”,它是根据配置的特定指标的目标值,来增加或减少组的当前容量,这与空调保持家里温度的方式类似。您设定一个温度,空调将完成所有其他工作。比如您可以配置Auto Scaling 组的平均聚合 CPU 利用率保持在 40%,然后目标跟踪扩展策略就会根据CPU使用率增加或者减少实例数量。

我们的案例使用的是步进扩展策略,是另一种动态扩展策略。大家还记得我们要配置什么策略吗?好好回忆一下,想想和这个目标跟踪扩展策略有什么不同?

步进扩展策略需要在创建AS组完成后进行配置,所以这里我们先选择“无”,然后我们进行下一步。

配置通知,如果我们在这里配置了通知,Auto Scaling 组每当指定事件(包括: 成功的实例启动、失败的实例启动、实例终止以及失败的实例终止)发生时将通知发送到指定终端节点(如电子邮件地址)。

标签暂时也不配置。

然后继续,我们检查下配置,然后完成创建Auto Scaling 组

因为我们配置的最小容量为1,所以完成Auto Scaling 组创建后,Auto Scaling 组会自动为我们启动一台实例,我们来看下“实例”选项卡,有1台实例正在启动。

我们打开EC2的实例控制台,实例控制台当然也可以看到Auto Scaling 组启动的一台新实例的信息。 我们稍等下,等实例启动完成后,测试下我们在创建启动配置时添加的用户数据,为我们自动安装的NGINX服务是否可以正常工作。

我们看到实例的状态已经正常了,复制下实例的dns然后在浏览器打开:

ec2-54-199-54-190.ap-northeast-1.compute.amazonaws.com

可以看到我们NGINX的index.html默认页可以正常工作,说明我们在创建启动配置时添加的用户数据—安装NGINX以及修改index默认页都是正常工作的。后续我们创建的Auto Scaling 组中启动的实例,启动时都会执行用户数据的内容,完成NGINX的安装以及index.html默认页的修改。

配置扩展策略(创建CW警报)

前面我们将启动配置和Auto Scaling组都创建完成了,接下来我们配置一下动态扩展策略。

其实前面讨论的跟空调运行方式差不多的目标跟踪扩展策略,就基本可以满足大部分扩展需求,AWS官方也是建议优先采用这种扩展方式。为了让大家将知识点掌握的更全面,我们实操演示的案例是采用的比较复杂一些的——步进扩展策略。

目标跟踪扩展策略,是配置一个指标值,当指标超过或小于这个值时就做什么操作;

而我们使用的步进扩展策略,支持配置一组策略,比如当指标值大于多少就做什么操作,小于多少就做什么操作,可以配置更细化更具体的扩展策略进行分步调整。

步进扩展策略的扩展和缩减实例是根据CloudWatch警报来触发的,所以我们先要创建两个CloudWatch警报。

进入到CloudWatch控制台,我们来创建CloudWatch警报,首先我们先创建一个增加实例的警报:

选择指标-EC2-按 Auto Scaling 组,因为扩展和伸缩是以整个Auto Scaling组的CPU使用率来做的。

然后选择CPU使用率指标。

指标名称我们保持不变; -autoscaling组名保持不变; -统计数据采用平均值; -然后配置静态阈值,大于/等于70%,然后下一步。

取消发送通知,我们暂时不需要单独发送通知。

Auto Scaling 操作,我们不在这里配置,后面在Auto Scaling组配置。

警报名称我们输入:increase test

好,我们创建警报。

这样的话当Auto Scaling组的EC2 CPU平均使用率大于等于70%的警报我们就创建完了,接下来我们快速创建一个 CPU平均使用率小于等于25%的警报。

指标名称我们保持不变;

然后配置静态阈值,小于/等于25%

其他配置和前面警报的配置差不多。

警报名称我们输入:Decrease test。

好的,这样的话我们扩展和伸缩的两个CW警报就都创建好了。

配置扩展策略

接下来我们就开始配置步进扩展策略。

选择我们之前创建的Auto Scaling 组,as-test-group,然后选择自动扩展选项卡,创建动态扩展策略。

策略类型选择步进扩展。所以大家可以看到,如果您需要配置“步进扩展策略”以及“简单扩展策略”,是需要在这里进行配置;

扩展策略名称,我们叫做Increase Group Size;

然后CW警报我们选择我们之前创建的扩展实例的警报Increase test;

执行操作,当CPU使用率大于等于70%时,添加2个容量单元也就是实例。

增加:为了演示方便我们将预热秒数配置为10。

同样,我们在创建一个缩减实例的步进扩展策略。

扩展策略名称,我们叫做Decrease Group Size;

然后CW警报我们选择我们之前创建的缩减实例的警报,Decrease test;

执行操作,当CPU使用率小于等于25%时,移除2个容量单元也就是实例。

好的,这样的话我们的步进扩展策略就创建完成了。

好,实操演示就完成了。我们今天的课程从头开始实操演示创建启动配置以及Auto Scaling 组,希望能够给大家带来帮助,希望大家抽时间都跟着测试一遍。后面的课程我们将继续深入讨论Auto Scaling相关内容。

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

  • 如果您想获取本课程全部课时,请扫PPT的二维码加入。
  • AWS爱好者的网址是www.iloveaws.cn,认证视频课程,免费的认证考试仿真题以及认证课程文章,都可以在网站找得到
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章。
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识。

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

2023年1月25日

0 responses on "EC2 Auto Scaling创建启动配置&ASG"

Leave a Message

Setup Menus in Admin Panel

error: Content is protected !!