← All notes

ELB & ASG - AWS

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.