AWS Certified Cloud Practitioner / ELB & ASG - Elastic Load Balancing & Auto Scaling Groups

High Availability, Scalability, Elasticity

Scalability & High Availability

Cloud computing's real power comes down to two things: handling growth and staying online no matter what.


πŸ“ˆ Scalability: Handling More Load

Scalability is a system's ability to handle increasing demand. There are two ways to achieve it.

↕️ Vertical Scaling (Scale Up/Down)

Make a single instance more powerful.

  • Call center analogy: Same operator, but upgraded β€” junior operator β†’ senior operator. One person, handling more calls.

  • AWS example: Resize an instance, e.g. t3.micro β†’ t3.large

  • Good for: Non-distributed systems like databases β€” just give the database more power.

  • Limitation: There's always a hardware ceiling. Eventually you can't scale up any further.

↔️ Horizontal Scaling (Scale Out/In)

Add more instances instead of making one bigger.

  • Call center analogy: 1 operator β†’ 6 operators, all working in parallel.

  • AWS example: Add more EC2 instances.

  • Requires: A distributed system architecture.

  • Common in: Modern web apps, paired with Auto Scaling Groups and Load Balancers.


🀝 High Availability

High availability usually goes hand-in-hand with horizontal scaling. The idea: run your system across multiple Availability Zones (AZs) β€” at least two.

  • Call center analogy: A New York office and a San Francisco office. If one goes down, the other keeps taking calls.

  • AWS implementation: Deploy across multiple AZs using Auto Scaling Groups + Load Balancers.

  • Goal: Survive power outages, natural disasters, or a data center failure entirely.


πŸ“Š Quick Reference

Concept

What it means

AWS tools

Vertical Scaling

Bigger instance (t2.nano β†’ u-12tb1.metal)

Resize instance

Horizontal Scaling

More instances

Auto Scaling Group, Load Balancer

High Availability

Same app running across multiple AZs

Multi-AZ deployment


Scalability vs. Elasticity vs. Agility

  • Scalability β€” the ability to handle more load, by scaling up (bigger hardware) or scaling out (more nodes).

  • Elasticity β€” once a system is scalable, elasticity is the automation on top: it scales itself up/down based on real-time demand. This is what makes cloud "pay-per-use" β€” you only pay for what you need, when you need it.

  • Agility (unrelated to scalability β€” just a bonus concept) β€” new resources are a click away, cutting provisioning time from weeks to minutes.