在做视频课程的过程中,虽然遇到了很多困难,但同时也收到了很多学友的鼓励,感谢鼓励、支持我的人,给了我坚持做下去的动力。


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

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

创建启动配置

我们前面讨论过,想要创建Auto Scaling,第一步就是要创建“配置模板”,然后在创建和配置“Auto Scaling组”。“配置模板”我们选择创建“启动配置”,访问EC2控制台,然后访问左侧Auto Scaling部分的“启动配置”。好,然后我们点击“创建启动配置”。1、首先需要选择AMI,可以选择自己创建的AMI,或者选择用户社区或 AWS Marketplace 提供的 AMI,我们的演示就选择Amazon Linux AMI。EC2 Auto Scaling创建启动配置&ASG_nginx2、然后选择Auto Scaling组启动实例的类型,因为是演示我们就选择符合免费套餐条件的t2.micro,然后下一步配置详细信息。

3、


  • 指定“启动配置”的名称,我们输入as-test
  • 购买选项,可以通过勾选请求竞价型实例,也就是spot实例。
  • IAM角色,可以选择与ASG启动的实例关联的IAM角色。
  • 监控,默认情况下, Auto Scaling 实例会启用 CloudWatch 基本监控,基本监控5分钟间隔提供数据;如果要为 Auto Scaling 实例启用详细监控,就勾选启用 CloudWatch 详细监控,详细监控以1分钟的间隔提供数据。有一点要注意,基础监控是免费使用,启动详细监控是要收费的。

看下高级详细信息:

  • 用户数据User data:您可以在这里指定用户数据,指定之后在实例启动时会自动运行这里的命令配置实例。
    我现在想在之后ASG中启动的实例都自动安装好NGINX,然后修改index.html默认页的内容,那现在就来编写一个简单的脚本来实现一下:


#!/bin/bashsudo 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默认页的内容,还记得路径吧,之前的课程讲过)

好,用户数据编写完成,我们继续。EC2 Auto Scaling创建启动配置&ASG_数据_024、添加卷,因为是测试我们就使用默认大小的8G的就可以了。
5、然后配置安全组,因为我们前面配置了用户数据安装NGINX,我们新添加一条规则,规则内容为对外全开80端口,这样的话等我们都配置好就可以直接测试NGINX默认页。
这里在多说一句,前面我录制的课程有同学留言说IAM策略还是S3存储桶的策略我设置开放的范围太大了,这种反馈非常好,说明仔细看视频了。我这里说一下,是这样,在生产环境配置确实是要基于最小权限原则,但是对于我们的演示,就比如上面我的SSH对外全部开放了,这个只是为了演示测试方便,本次测试后我就删除了,并不是鼓励大家将SSH对外全开放的意思,另外比如现在在Auto Scaling课时,我们不会深入在展开讨论配置策略安全性的细节,然后在这里在基于生产环境的要求配置策略,这样太浪费时间。但是还是那句话,希望大家在生产环境不要开放权限这么豪放。好,我们继续,点击“审核”,没有问题,然后点击“创建启动配置”。EC2 Auto Scaling创建启动配置&ASG_html_036、我们选择一个密钥对,用于登陆实例。然后创建启动配置。EC2 Auto Scaling创建启动配置&ASG_数据_04好,可以看到已成功创建启动配置:as-test。然后我们可以看到页面下方显示“使用此启动配置创建Auto Scaling组”,可以通过这里直接使用此启动配置创建Auto Scaling组,我们直接关闭后面手动创建。EC2 Auto Scaling创建启动配置&ASG_数据_05我们看下刚创建的启动配置-as-test:


  • 包括实例使用的AMI ID,这个ID对应的是刚选择的Amazon linux 操作系统。
  • 实例类型 使用 t2.micro
  • 使用的密钥名称,对应的安全组配置,块存储配置等等。
    在Auto Scaling组启动新实例时会按照这些我们配置到“启动配置”中的这些信息来启动实例。

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

创建Auto Scaling组

1、访问Auto Scaling组,开始创建Auto Scaling组。首先需要选择一个配置模板,可以使用启动配置或者启动模板来指定Auto Scaling组用来启动实例的参数。这两个都可以,其实不管是通过“启动模板”或者“启动配置”,其目的是一样的,目的都是指定Auto Scaling组启动EC2实例的配置。“启动模板”比“启动配置”提供了更多的功能。我们演示就采用启动配置,然后在下方选择我们前面刚创建的as-test这个启动配置,继续。EC2 Auto Scaling创建启动配置&ASG_nginx_07


  • Auto Scaling 组名,我们输入:as-test-group。可以看到与这个Auto Scaling 组关联的启动配置为我们前面创建的as-test。
  • 组大小,也就是所需实例,我们就从1个实例开始。
  • 网络部分,也就是将实例启动到哪个VPC和子网中,我们就选择默认VPC,然后选择子网,我们选择3个可用区,选择多个可用区就可以利用可用区地理冗余,提供更高的安全性和可靠性。这样的话当一个可用区运行状况不佳或无法使用时,Auto Scaling 将在不受影响的其他可用区中启动新实例。

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


  • 负载平衡,在这里可以为Auto Scaling 组附加负载均衡器,我们这里不选择,后面的课时可能会讲解和演示这部门内容。
  • 运行状况检查宽限期,是指运行状况检查前等待的时间,我们就改为30秒。

然后我们下一步,配置扩展策略。EC2 Auto Scaling创建启动配置&ASG_html_082、选择“使用扩展策略调整此组的容量”。

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

然后,根据我们的案例需求我们要使用分布扩展策略扩展Auto Scaling组,点击“使用分步或简单扩展策略扩展 Auto Scaling 组”EC2 Auto Scaling创建启动配置&ASG_数据_09好,然后可以看到“增加组大小”以及“减少组大小”两个策略,我们分别配置对应的触发策略的警报及操作。

配置增加组大小策略

首先,增加组大小,名称我们就使用默认的Increase Group Size,然后我们配置一个警报,点击添加新警报。创建警报,取消发送通知,我们暂时不需要单独发送通知。
我们开始配置策略,当组内所有实例平均CPU使用率大于等于70%,至少1个连续周期,时间改为1分钟,配置周期短一些的目的是让其能够快速响应我们的演示,警报名称我们就叫做increase test吧,然后创建警报。
EC2 Auto Scaling创建启动配置&ASG_数据_09然后,还要配置触发警报阈值后要执行的操作,我们配置:当cpu使用率大于等于70%的时候,添加2个容量单元,就是两个实例。EC2 Auto Scaling创建启动配置&ASG_html_11

配置缩减组大小策略

同样,我们在配置另外的缩减组大小策略,添加新警报。然后配置警报当组内所有实例平均CPU利用率小于等于25%,至少1个连续周期,时间为1分钟,警报名称改为decrease test,然后创建警报。配置触发警报阈值后要执行的操作,我们配置:当cpu使用率小于等于25%的时候,删除2个容量单元,就是两个实例。好,目前扩展策略就都配置完成了,继续。EC2 Auto Scaling创建启动配置&ASG_nginx_123、配置通知,如果我们在这里配置了通知,Auto Scaling 组每当指定事件(包括: 成功的实例启动、失败的实例启动、实例终止以及失败的实例终止)发生时将通知发送到指定终端节点(如电子邮件地址)。4、标签暂时也不配置。点击审核,然后完成创建Auto Scaling 组。EC2 Auto Scaling创建启动配置&ASG_html_13因为我们配置的最小容量为1,所以完成Auto Scaling 组创建后,Auto Scaling 组会自动为我们启动一台实例,我们来看下“实例”选项卡,有1台实例正在启动。EC2 Auto Scaling创建启动配置&ASG_html_13我们打开EC2的实例控制台,实例控制台当然也可以看到Auto Scaling 组启动的一台新实例的信息。
我们稍等下,等实例启动完成后,测试下我们在创建启动配置时添加的用户数据,为我们自动安装的NGINX服务是否可以正常工作。
EC2 Auto Scaling创建启动配置&ASG_nginx_15我们看到实例的状态已经正常了,复制下实例的dns然后在浏览器打开:​http://ec2-52-193-190-100.ap-northeast-1.compute.amazonaws.com/​可以看到我们NGINX的index.html默认页可以正常工作,说明我们在创建启动配置时添加的用户数据—安装NGINX以及修改index默认页都是正常工作的。后续我们创建的Auto Scaling 组中启动的实例,启动时都会执行用户数据的内容,完成NGINX的安装以及index.html默认页的修改。EC2 Auto Scaling创建启动配置&ASG_数据_16好,实操演示就完成了。我们今天的课程从头开始实操演示创建启动配置以及Auto Scaling 组,希望能够给大家带来帮助,希望大家抽时间都跟着测试一遍。后面的课程我们将继续深入讨论Auto Scaling相关内容。希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:


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

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

AWS解决方案架构师认证 Professional(SAP)中文视频培训课程2020


EC2 Auto Scaling创建启动配置&ASG_nginx_17