ELB & ASG - AWS
March 25, 2025
ELB & ASG
Scalability vs. Elasticity vs. Agility
- Scalability: Ability to handle a larger load by scaling up (stronger hardware) or scaling out (adding nodes).
- Elasticity: Auto-scaling based on demand, optimizing costs.
- Agility: Quick access to IT resources, reducing provisioning time.
Scalability & High Availability
- Scalability: System adapts to greater loads.
- Vertical Scalability: Increasing instance size.
- Horizontal Scalability: Adding more instances.
- High Availability: Ensures system uptime across multiple availability zones.
Vertical Scalability
- Increases instance size (e.g., t2.micro → t2.large).
- Common for non-distributed systems like databases.
- Limited by hardware constraints.
Horizontal Scalability
- Increases the number of instances.
- Implies distributed systems.
- Common for web applications.
High Availability
- Works with horizontal scaling.
- Ensures system availability across multiple zones.
Load Balancing
- Distributes traffic to multiple instances.
- Benefits:
- Single access point (DNS).
- Handles instance failures.
- Performs health checks.
- Provides SSL termination.
- Ensures high availability.
- AWS Load Balancers:
- Application Load Balancer (Layer 7, HTTP/HTTPS)
- Network Load Balancer (Layer 4, TCP)
- Gateway Load Balancer (Layer 3)
- Classic Load Balancer (deprecated, Layer 4 & 7)
Auto Scaling Group (ASG)
- Adjusts instance count based on demand.
- Ensures a minimum and maximum number of instances.
- Registers new instances to a load balancer.
- Replaces unhealthy instances.
Auto Scaling Strategies
- Manual Scaling: Manually adjust ASG size.
- Dynamic Scaling:
- Simple/Step Scaling: Add/remove instances based on CloudWatch alarms.
- Target Tracking Scaling: Maintain a metric at a set threshold.
- Scheduled Scaling: Adjust capacity based on known patterns.
- Predictive Scaling: Uses ML to anticipate demand.