AutoScaling

AutoScaling


AutoScaling 是 AWS 比较核心的一个服务,用到这个服务以后才真正有点云的感觉,它比较巧妙的实现了云的弹性。在应用忙时扩展计算能力,在应用闲时收缩计算能力,很好的体现了云计算按需供给、按量计费的宗旨。只有用好了这种弹性的云服务才能真正发挥出云的作用,才能以经济的价格实现优质的应用服务。本文将根据个人实践
以及对AWS文档的理解对AutoScaling服务进行一些总结。

关键概念


  • cooldown
    冷却时间是给刚启动的EC2实例一个预热的时间,防止新EC2刚启动但是还未向外提供服务之前激活新的扩展活动,从而避免过多启动新机器。

  • min
    最小实例数是指当前AS组中任何时候必须保持的最小的实例个数,一旦当前实例数不足,AS服务会自动取启动新的实例。

  • max
    最大实例数是指当前AS组中最多可以启动的实例数,一旦达到最大实例数,实例增加策略触发的实例扩展活动将不再有效。

  • desired
    预期实例数是指当前AS组当前需要 的实例数,AS服务根据预期实例数与当前实例数的对比进行相应的扩展活动。

原理


AutoScaling服务会去实时检测AS组里面实例的数量与desired数量,如果不相同,则会启动或者关闭实例来使得实际数量等于desired数量。不管是动态扩展、手动扩展还是定时扩展,其实都只是更改 desired 数量,不同的只是这是通过策略驱动去修改还是手工去改。

使用场景


  • 保持固定数量的机器数量
  • 手动扩展机器数量
  • 定时扩展机器数量
  • 按照实时需求自动扩展机器数量

关键流程


  • Launch
  • Terminate
  • HealthCheck
  • ReplaceUnhealthy
  • AZRebalance
  • AlarmNotification
  • ScheduledActions
  • AddToLoadBalancer

CLI


  • aws autoscaling describe-auto-scaling-groups
  • aws autoscaling describe-auto-scaling-instances

注意事项


  • launch configuration wizard 中创建安全组均在默认VPC中
  • 一次 detach 操作的 instance 数量限制为 20

使用中遇到的问题


  • 指定可用区中实例容量不足
  • 安全组与指定可用区 VPC 不符
  • 指定类型实例启动数超过限制,这个限制可以通过开case提高
  • 服务访问超时 ('Connection aborted.', error(110, 'Connection timed out'))
  • 服务访问频率超限
  • 总EBS容量超过限制

Other

  • 在指定EC2上查找自己所属AutoScaling组。
- 获取自身 instances-id
    my-instance-id = curl http://169.254.169.254/latest/meta-data/instance-id/

1. 获取自动扩展组
    aws autoscaling describe-auto-scaling-groups --output json --query 'AutoScalingGroups[?Instances[?InstanceId==`my-instance-id`]].AutoScalingGroupName'

2. 获取自动扩展实例
    aws autoscaling describe-auto-scaling-instances --instance-ids my-instance-id
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值