Elastic Load Balancing & Auto Scaling Groups Section Flashcards
Scalability
ability to accommodate a larger load by making the hardware stronger (scale up), or by adding nodes (scale out)
Elasticity
once a system is scalable, elasticity means that there will be some “auto-scaling” so that the system can scale based on the load. This is “cloud-friendly”: pay-per-use, match demand, optimize costs
Agility
(not related to scalability - distractor) new IT resources are only a click away, which means that you reduce the time to make those resources available to your developers from weeks to just minutes
Why use a load balancer
- Spread load across multiple downstream instances
- Expose a single point of access (DNS) to your application
- Seamlessly handle failures of downstream instances
- Do regular health checks to your instances
- Provide SSL termination (HTTPS) for your websites
- High availability across zones
ELB
is a managed load balancer
• AWS guarantees that it will be working
• AWS takes care of upgrades, maintenance, high availability
• AWS provides only a few configuration knobs
3 kinds of load balancers offered by AWS:
• Application Load Balancer (HTTP / HTTPS only) – Layer 7
• Network Load Balancer (ultra-high performance, allows for TCP) – Layer 4
• Classic Load Balancer (slowly retiring) – Layer 4 & 7
ASG
- 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 a maximum number of machines running
- Automatically register new instances to a load balancer
- Replace unhealthy instances
- Cost Savings: only run at an optimal capacity (principle of the cloud)
Auto Scaling Groups – Scaling Strategies
Manual Scaling: Update the size of an ASG manually
Dynamic Scaling: Respond to changing demand
Simple / Step Scaling
• When a CloudWatch alarm is triggered (example CPU > 70%), then add 2 units
• When a CloudWatch alarm is triggered (example CPU < 30%), then remove 1
Target Tracking Scaling
• Example: I want the average ASG CPU to stay at around 40%
Scheduled Scaling
• Anticipate a scaling based on known usage patterns
• Example: increase the min. capacity to 10 at 5 pm on Fridays
Predictive Scaling
• Uses Machine Learning to predict future traffic ahead of time
• Automatically provisions the right number of EC2 instances in advance