• [AWS


    The gola of an Auto Scaling Group (ASG) is to:

    • Scale out (add EC2 instances) to match an increased load
    • Scale in (remove EC2 instances) to match a decreased load
    • Ensure we have a minimum and maximum number of machines running
    • Automatically Register new instances to a load balancer

    Atttributes

    • A launch configuration
      • AMI + Instance Type
      • EC2 User Data
      • EBS Volumes
      • Security Groups
      • SSH Key Pair
    • Min Size / Max Size / Initial Capacity
    • Network + Subnets information
    • Load Balancer Information
    • Scaling Policies

    Auto Scaling Alarms

    • It is possible to scale an ASG based on CloudWatch alarms
    • An Alarm monitors a metric (Such as Average CPU)
    • Metrics are computed for the overall ASG instances
    • Based on the alarm:
      • We can create scale-out policies (increase the number of instances)
      • We can create scale-in policies (decrease the number of instances)

    Auto Scaling New Rules

    • It is possible to define "better" auto scaling rules that are directly managed by EC2
      • Target Average CPU usage
      • Number of requests on the ELB per instance
      • Average Network In
      • Average Network Out
    • There rules are easier to set up and can make more sense

    Auto Scaling Custom Metric

    • We can auto scale based on custom metric (ex: number of connected users)
    1. Send Custom metric from application to EC2 to CloudWatch (PutMetric API)
    2. Create CloudWatch alaram to react to low / high values
    3. Use CloudWatch alaram as the scaling policy for ASG

    ASG Brain Dump

    • Scaling policies can be on CPU, Network... and can even be on custom metrics based on schedule (if you know your visitor patterns)
    • ASGs use Launch configurations or Launch Templates (newer)
    • To update an ASG, you must provide a new launch configuration / launch template
    • IAM role attached to an ASG will get assigned to EC2 instances
    • Having instances under an ASG means that if they get terminated for whatever reason, the ASG will automatically create new ones as a replacement.
    • ASG can terminate instances marked as unhealthy by an LB (and hence replace them)

    Scaling Policies

    Target Tracking Scaling

    • Most simple and easy to set-up
    • Example: Iwant the average ASG cup to stay at around 40%

    Simple / Step Scaling

    • When a CloudWatch alarm is triggered (CPU > 70%), then add 2 units
    • When a CloudWatch alarm is triggered (CPU < 30%), then remove 1 unit

    Scheduled Actions

    • Anticipate a scaling based on known usage patterns
    • Example: increase the min capacity to 10 at 5 pm on Fridays

     

    Server Name Indication

    • SNI solves the problem of loading multiple SSL cerificates onto one web server (to serve multiple websites)
    • It's a newer protocol and requires the client to indicate the hostname of the target server in the initial SSL hadshake
    • The server will then find the correct certifcate, or return the default one
    • Only works for ALB & NLB, CloudFront
    • Doesn't work for CLB

    ELB - Connection Draining

    • Deregistration Delay for ALB & NLB
    • TIme to complete "in-fight requests" while the instnace is de-registering or unhealth 
    • Stops sending new request to the instance which is de-regsitering
    • Between 1 to 3600 seconds, default is 300 seconds
    • Can be disabled (set value to 0)
    • Set to a low value if your requests are short

    • Status checks cover only an EC2 instance's health, and not the health of your application, serer, or any Docker containers, running on the instnace.
    • If you application craches, the load balancer removes the unhealth instances from its target. However, your AutoScaling group doesn't automatically replace the unhealthy instnaces marked by the load balancer.
    • By Changing the health check typf from EC2 to ELB, you enabled the Auto Scaling group to automatically replae the unhealthy intnaces. The unhealthy instances are replaced when the health check fails.

    ASG doesn't create new AMI

    ASG doesn't add new volume.

    EC2 ASG groups are regional constructs. They can span AZs, but not AWS regions.

  • 相关阅读:
    [C++]野指针的产生以及应对办法
    [boost]使用boost::function和boost::bind产生的down机一例
    [C++]给C++封装一个多播委托
    [vim]clang complete不能智能提示mutex/thread的解决办法(请获取最新版的clang complete)
    [C++11]shared_ptr效率比较
    [C++]怎么样实现一个较快的Hash Table
    [C++]运行时,如何确保一个对象是只读的
    [libcxx]用gdb打印libcxx容器内的内容
    [thrift]thrift中的对象序列化
    [tolua++]tolua++中暴露对象给lua时,一定要把析构函数暴露给lua
  • 原文地址:https://www.cnblogs.com/Answer1215/p/14868186.html
Copyright © 2020-2023  润新知