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 组冷却时间来改变此行为,以更快地响应流量增加。但是,在调整冷却时间时,需要权衡资源的使用和应用程序的性能要求

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYN9Y9BW' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片