AWS 之 ASG

简介

ASG(Auto Scaling Group)AWS提供的一项服务,它允许您自动调整EC2 实例数量,以满足应用程序负载的需求。ASG的主要目标是确保应用程序的可用性弹性,无论处理高峰负载还是负载减少

ASG可以根据指定的条件自动增加或减少实例的数量,这些条件可以是:CPU 使用率网络流量请求次数等。当负载增加时,ASG会自动添加更多的实例以满足需求;当负载下降时,ASG会自动终止多余的实例以节省成本

ASG 与 ELB 关联

ASG可以结合ELB以实现自动扩展负载均衡的功能,从而提供高可用性和弹性的应用程序部署。那么,ASG又是如何与ELB关联起来的呢?谈到这里就得从创建一个ASG入手了

创建 ASG

创建ASG的过程中会让你配置很多选项,当然这其中就包括了对关联的ELB的配置,下面我就简单介绍一下比较重要的配置:

  • 启动模板,是用于启动实例时参考的模板
  • 关于cpumemory的配置
  • target group启动实例的期望值(Desired Capacity)最小值(Minimum Size)最大值(Maximum Size)的配置
  • ELB,提供了三个选项:不关联、关联存在的ELB、新创建ELB并关联

启动模板

创建启动模板就跟创建EC2 实例是一样的,理解起来也很简单,因为ASG增加实例时就是根据启动模板来创建EC2 实例

ASG 中 target group 的三个值

  • 期望值ASG希望启动的 EC2 实例数量ASG会自动根据负载情况增加减少实例数量,以使其接近期望值
  • 最小值ASG允许的最小 EC2 实例数量。即使负载较低,ASG也不会缩减实例数量到少于最小值
  • 最大值ASG允许的最大 EC2 实例数量。即使负载很高,ASG也不会增加实例数量到多于最大值

在设置这些参数时,确保满足以下条件:

  • 期望值大于等于最小值:确保始终有足够的实例来处理应用程序的基本负载
  • 期望值小于等于最大值:防止ASG无限制地扩展实例数量,从而避免不必要的费用和资源浪费

ELB 关联

如果在关联ELB配置项选择了不关联,那么在创建好ASG之后,进入详情页去找到关于ELB的选项编辑即可

拓展

根据上面的内容,已经大致了解到ASG的功能作用,以及它如何与ELB关联。下面部分则是个人的一些思考,感兴趣的话也是可以了解一下的

ASG 是一个单独的服务吗?

ASGAWS的服务之一,是一种自动伸缩的管理服务。但是,它与一些其他AWS 服务(如EC2S3RDS 等)不同。ASG本身并不是一个独立的单一服务,与ELBEBS一样,是EC2 服务的一部分

为什么 ASG 要与 ELB 结合使用?

这个其实从ELBASG的概念中应该就深有体会了,此处一起罗列出来应该体会会更加深刻:

  • ELB用于在多个 EC2 实例之间分发流量,从而实现负载均衡。ELB会根据配置的监听规则目标组将流量转发到可用的实例
  • ASG用于自动扩展 EC2 实例的数量,以适应应用程序负载的变化。ASG会根据配置的缩放策略自动增加或减少实例数量,从而实现弹性的容量管理

所以,一个用于流量分发,一个用于应对负载变化,二者功能不同,结合在一起,便能实现应对请求负载变化的同时,还能合理分发请求流量的功能,更符合使用者需求

ASG 就只依靠配置缩放策略来实现自动扩展实例?

在简单的场景下,通过配置ASG缩放策略来实现EC2 实例的自动扩展即可,但如果需要更复杂的自动化监控,就需要借助其他服务来实现了

  • CloudWatch来监控EC2 实例性能指标负载情况,然后根据自定义指标触发ASG缩放策略
  • Lambda 函数自定义自动化操作,例如根据特定条件自动调整实例数量执行其他任务

ELB、target group、ASG 是否要在同一个 VPC 下?

这里就需要好好的理清一下了,通过创建ELBtarget groupASG,并选择在不同的VPC进行创建,最后得出的结果便是他们都需要在同一个VPC下才能关联起来

那么,下面就来一起回顾一下这几个服务使用的流程吧:

创建 target group

在创建ELB时,可以选择先创建target group,创建target group时会选择一个VPC,然后此VPC下的所有可用区域的实例都可以作为加入该target group的选项

创建 ELB

创建ELB时会也选择一个VPC,还会选择一个target group,这里target group可以是之前创建好的,也可以是创建ELB时新创建的,这里就需要注意:只有target groupELB在同一个VPC下才能被选择到

创建 ASG

创建好了ELB之后,便会去创建ASG,创建ASG时也会选择一个VPC,然后接下来就会遇到关联ELB的配置,如果不是同一个VPC也是不行的,因为ASG是无法选择到其他VPC下的ELBtarget group

默认冷却时间(Cooldown Period)

冷却时间是在Auto Scaling 组执行缩容或扩展操作后的一段时间,用于避免频繁的自动扩缩容

当应用程序突然收到大量流量,导致触发Auto Scaling 组进行扩展操作时,由于默认冷却时间的存在,Auto Scaling 组不会立即启动新的EC2 实例来响应流量增加,而是会等待冷却时间结束后才开始执行自动扩展

可以调整Auto Scaling 组冷却时间来改变此行为,以更快地响应流量增加。但是,在调整冷却时间时,需要权衡资源的使用和应用程序的性能要求

相关推荐
Elastic 中国社区官方博客9 天前
Elastic 公共 roadmap 在此
大数据·elasticsearch·ai·云原生·serverless·全文检索·aws
TG_yunshuguoji9 天前
亚马逊云代理商:AWS 国际站缺卡新用户创建邮箱怎么选择?
安全·云计算·aws
TG_yunshuguoji10 天前
亚马逊云代理商:如何监控AWS RDS使用率并设置报警?
运维·云计算·aws
翼龙云_cloud10 天前
亚马逊云代理商:如何在 AWS 控制台上手动重启主实例?
服务器·云计算·aws
没有bug.的程序员10 天前
云服务成本优化深度进阶:AWS/Aliyun 资源监控内核、自动伸缩物理建模与 FinOps 降本实战指南
云计算·aws·finops·aliyun·自动伸缩·资源监控·物理建模
Elastic 中国社区官方博客12 天前
推出 Elastic Serverless Plus 附加组件,支持 AWS PrivateLink 功能
大数据·elasticsearch·搜索引擎·云原生·serverless·全文检索·aws
Johnny.Cheung13 天前
MLOps是什么?AWS-Azure-GCP
llm·azure·aws·mlops·gcp
sun032215 天前
【AWS】【服务】aws 中的各种服务 ,比如 ECS、S3 、EC2 、 Certicicate Manager、CloudWatch等
云计算·aws
sun032217 天前
【AWS】【ECS】部署流程
云计算·aws
七夜zippoe18 天前
分布式系统弹性设计实战:Hystrix与Sentinel熔断降级深度解析
java·hystrix·sentinel·aws·分布式系统