Instiq
Chapter 2 · Reliability and Business Continuity·v2.0.0·Updated 6/5/2026·~9 min

What's changed: Deepened SOA-C02 Chapter 2 to Associate depth (tables, scenarios, FAQ, traps; localized figures)

2.1Scalability and High Availability

Key points

Understand HA operations: load balancers and Auto Scaling groups (spread across AZs, self-healing via health checks, min/desired/max), and scaling policies.

To keep a service up, make it redundant across AZs and scale automatically with load. A load balancer and an Auto Scaling group are central.

2.1.1Load balancer and Auto Scaling

Diagram showing a load balancer (health checks) distributing traffic to an Auto Scaling group spanning multiple AZs (AZ-a/AZ-c; min/desired/max; scale by metric) that auto-replaces unhealthy instances (self-healing).
Cross-AZ load balancing and autoscaling
  • Load balancer: uses health checks to send traffic only to healthy targets.
  • Auto Scaling group (ASG): spreads across AZs, manages count with min/desired/max, and auto-replaces unhealthy instances.
  • Scaling policies: target tracking (e.g., CPU 50%), step, or scheduled scaling.
Exam point

Common on SOA: spread across AZs = survive a single-AZ failure, auto-replace on failure = ASG self-healing, follow CPU, etc. = target tracking policy. Note ELB health checks integrating with ASG health checks.

HA comes from "spreading across AZs" and "self-healing." An Auto Scaling group (ASG) manages count via min/desired/max and survives a single-AZ failure by spanning multiple AZs. Health checks come in two kinds—EC2 status checks (hardware/reachability) and ELB health checks (app layer, e.g., HTTP); setting the ASG health-check type to ELB lets it replace instances that are unhealthy over HTTP even if the process is alive. There are three scaling policies: target tracking (e.g., hold CPU at 50%—simplest, recommended), step scaling (vary the change by threshold band), and scheduled scaling (for predictable time-based load). For ops, warm pools for sudden spikes, warmup/cooldown before new instances count, and lifecycle hooks to drain work before termination also matter. ELBs include the L7 ALB and L4 NLB, health-checking per target group.

PolicyWhen to use
Target trackingHold a metric at a target (simplest)
Step scalingVary change by threshold band
ScheduledPredictable time-based load
ELB health checkReplace app-layer (HTTP) failures too
Example

Scenario: instances stay in service returning HTTP 500 though the process is alive. Switch the ASG health-check type to ELB, and the ASG auto-replaces instances the ELB marks unhealthy over HTTP. Use target tracking (CPU 50%) to follow load and scheduled scaling to pre-empt a daily batch surge.

Note

Q. Survive a single-AZ failure? Spread the ASG across AZs. Q. Replace HTTP failures too? Set ASG health checks to ELB. Q. Hold CPU steady? Target tracking. Q. Predictable surges? Scheduled scaling.

Warning

Watch the mix-ups: (1) EC2 status checks alone miss app-layer (HTTP) failures—use ELB health checks. (2) "desired" is a target bounded by min/max. (3) Use lifecycle hooks / connection draining so scale-in doesn’t drop in-flight work.

Note

Setting ASG health checks to use ELB lets it replace instances unhealthy at the app layer (HTTP)—failures EC2 status checks alone miss.

2.1.2Section summary

  • HA and self-healing with multi-AZ + ASG + ELB
  • Scale via target tracking / step / scheduled policies

Sign in to track progress — Log in.

Quick check

(just a quick review)

Q1. You want to keep a service running through a single-AZ failure. Which placement fits best?

Q2. What is it called when an Auto Scaling group detects and replaces an unhealthy instance?

Q3. You want to keep CPU around a target (e.g., 50%) by scaling. Which policy fits?

Check your understandingPractice questions for Chapter 2: Reliability and Business Continuity