如何在AWS上设置EC2 Auto Scaling Group(ASG)前提条件我们将做什么?
如何在AWS上设置EC2 Auto Scaling组(ASG)
ASG(Auto Scaling Group)功能与AWS(Amazon Web Services)云的EC2(弹性计算云)服务一起提供。 ASG包含EC2实例的集合,出于自动缩放的目的,这些实例被视为逻辑分组。通过ASG,可以使用EC2 Auto Scaling功能,例如运行状况检查替换和扩展策略。它有助于维护ASG中的实例数量以及EC2 Auto Scaling服务的自动扩展。要创建ASG,我们首先需要创建启动配置。
启动配置是ASG用于启动EC2实例的配置模板。创建启动配置时,我们为实例指定信息,例如Amazon Machine Image(AMI),实例类型,密钥对,安全组等。
Auto Scaling监视我们的应用程序,并在计数上有任何差异时自动调整所需的容量。
Auto Scaling不收取任何额外费用。我们只需支付运行应用程序所需的AWS资源和Amazon CloudWatch监控费用。
要了解有关ASG的帐单的更多信息,请单击此处。
在本文中,我们将了解如何创建ASG,以及如何在计数减少或系统负载增加时如何维护实例数。
先决条件
- AWS帐户(如果没有,请创建)。
我们将要做什么?
- 登录到AWS。
- 创建启动配置
- 创建一个Auto Scaling组
- 终止实例以让ASG管理实例计数。
- 增加服务器上的负载,让ASG增加实例数。
- 删除Auto Scaling组。
登录到AWS
- 单击此处转到AWS登录页面。
当我们点击以上链接时,我们将看到一个如下所示的网页,在该网页上我们需要使用我们的登录详细信息进行登录。
成功登录到AWS后,我们将看到包含所有服务的主控制台,如下所示。
创建启动配置
要创建启动配置,请在屏幕顶部的导航栏上单击“服务”,然后单击“ EC2”以转到EC2控制台。
在下一页上,选择“创建启动配置”。
在“选择AMI”页面上,选择一个AMI。如果您有自己的AMI,甚至可以从“我的AMI”中选择AMI。在这里,我选择了适用于免费套餐的Ubuntu Server 18.04 LTS AMI。
在“选择实例类型”页面上,为您的实例选择硬件配置。单击“下一步:配置”详细信息。
在这里,我选择了适用于免费套餐的实例类型。您可以选择自己选择的实例类型。Advertisements.banner-1{text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}
在此页面上,为要创建的启动配置命名,并保持其余名称不变。单击“下一步:添加存储”。
指定所需的磁盘空间,然后单击“下一步:配置安全组”。
Advertisements.large-leaderboard-2 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}
在“查看”页面上,选择“创建新的安全组”,然后单击“查看”。由于源为0.0.0.0/0,这将有助于允许从任何地方通过ssh访问服务器。
在“检查”页面上,选择“创建启动配置”。
要选择现有密钥对或创建新密钥对,请选择您所选择的列出选项之一,然后选择确认复选框,然后选择“创建启动配置”。
创建一个Auto Scaling组
完成创建启动配置后,您将看到以下屏幕。要创建ASG,请单击“使用此启动配置创建Auto Scaling组”。
为要创建的ASG命名,并从VPC中选择现有子网以实现高可用性,然后单击“下一步:配置扩展策略”。
Advertisements.leader-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}
在此页面上,选择“使用扩展策略来调整该组的容量”,并指定实例数以在ASG中所需的实例数与最大实例数之间进行缩放。在指标类型中,保留“平均CPU利用率”,然后指定您选择的“目标值”。如果CPU负载超过指定时间段内指定的目标值(以%为单位),这将增加组中的实例计数。单击“下一步:配置通知”。
这是一个可选步骤,可帮助您接收通知。我没有配置它,因为它是可选的。单击“下一步:配置标签”。
这也是可选步骤。要添加标签,请选择“编辑标签”,为每个标签提供标签键和值,然后选择“审阅”。
在检查页面上,单击“创建Auto Scaling组”按钮。
如果出现“无法创建Auto Scaling组”,不要惊慌,只需单击“重试”。
现在,转到“ Auto Scaling页面”,您可以看到Auto Scaling组的状态,单击“活动历史记录”以查看状态。
您还可以从实例页面查看实例状态和实例数。
终止实例以让ASG管理实例计数。
要查看ASG是否按预期工作,请终止其中一个实例。选择实例,然后单击操作->实例状态->终止,并在提示时单击“是,终止”。
在扩展策略中,我们已指定2作为我们的期望/最小计数,这意味着我们的ASG必须始终有2个实例处于正常状态。一旦终止失败,ASG将等待300秒(在扩展策略中指定),然后再执行任何扩展活动。
等待300秒后,将调用ASG并尝试启动新实例以维持所需的计数。您可以在ASG的活动历史记录中查看状态。
增加实例的负载以让ASG增加实例数。
现在,我们将看到如果服务器上的负载超过了我们在扩展策略中指定的目标值,则实例ASG如何计数。
要增加服务器的负载,请登录两个EC2实例。
要了解如何创建EC2实例并了解连接到它的步骤,请单击此处。
登录后,使用以下命令安装增加负载所需的软件包。
sudo apt-get update
sudo apt-get install stress
使用以下命令增加CPU负载。
stress --cpu 50 --timeout 400
此命令将在400秒内将CPU负载增加到50%。
我们已将目标值指定为ASG中的40%。一旦CPU负载超过目标值,ASG将等待300秒(在扩展策略中指定),然后再执行任何扩展活动。
等待300秒后,将调用ASG并尝试启动新实例以满足要求。
您可以在ASG的活动历史记录中查看状态。
您还可以在实例页面上查看实例计数。
删除Auto Scaling组
仅删除所有实例不足以清理资源。 ASG将重新创建实例以匹配所需的状态。要清理资源,我们需要删除ASG。
要删除ASG,请转到我们创建的ASG,然后单击“操作”->“删除”,并在提示时单击“是,删除”。
结论:
在本文中,我们创建了启动配置并使用它创建了ASG。我们看到了ASG如何更新所需状态并增加实例数以满足扩展策略。我们还看到了如何删除ASG。