Advanced 18 min read

Scalability, Elasticity, and High Availability

By the end of this lesson, you'll be able to:

  • Explain why architecture should begin with requirements rather than service names
  • Distinguish scalability, elasticity, and high availability as three related but different properties
  • Explain why high availability and disaster recovery are not the same thing

Prerequisites: Module 11: "Project: Deploy Infrastructure from Code"

Architecture begins with requirements, not service names

Every module so far in this course introduced one AWS service or pattern at a time. This module asks a different question: given a real workload's actual requirements, which combination of services and patterns genuinely fits — and just as importantly, what trade-off does each choice carry?

A useful discipline for every scenario in this module: before naming any service, ask what the workload actually needs to do, who uses it, what traffic to expect, what happens when a component fails, what data must persist, what security boundaries apply, whether processing must be synchronous, how the system should scale, how it will be observed, how it will recover, what it will cost, and how infrastructure changes will be managed. Architecture is the answer to those questions — a service name is just the tool that answer points to.

Scalability and elasticity: related, not identical

Scalability is a system's ability to handle changing load — more users, more requests, more data. Elasticity is specifically about that capacity adjusting automatically in response to demand, rather than requiring someone to manually provision more capacity ahead of time. A system can be scalable (capable of handling more load, given enough manual provisioning) without being elastic (automatically adjusting on its own) — the next lesson's Auto Scaling Groups are exactly the mechanism that adds elasticity to an otherwise merely scalable design.

High availability: staying reachable despite failure

High availability is a different property again: the ability to remain accessible despite the failure of individual components. This course's own recurring building block for this is spreading resources across multiple Availability Zones (Module 1) — an application and its data tier deployed in more than one AZ so that one AZ's failure doesn't take the whole application down.

Side-by-side diagram showing a single-Availability-Zone design where an application and database both live in one AZ and become unavailable if that AZ fails, compared with a multi-AZ design where a load balancer distributes traffic across application instances in two AZs backed by a resilient data tier.
Spreading across AZs reduces dependence on any one of them — but the complete design (load balancer, data tier, application) all have to actually support it for this to work.

This is worth stating precisely: scalability and availability are not the same thing. A system can scale to handle enormous traffic and still have a single point of failure that takes it down entirely. A highly available system, spread carefully across AZs, may still fall over under load it was never sized to handle. Neither property substitutes for the other.

High availability is not disaster recovery

This distinction matters enough to state directly: high availability reduces interruption from component or infrastructure failures within an architecture's normal operating scope — it is not the same thing as disaster recovery. Multi-AZ deployment is a strong, common high-availability pattern, but it does not by itself constitute a complete disaster-recovery strategy for every scenario a business might need to plan for. Disaster recovery is about recovering from a larger-scale failure or disaster scenario, and can involve backups, replicated data, documented recovery procedures, and — depending on the actual requirement — alternate environments or even alternate Regions.

Diagram showing primary data backed up into protected backup storage, and a failure or data loss event leading through a recovery process to restored service or data.
A backup is only useful if it can actually be restored — this is exactly Module 5's Backup ≠ High Availability distinction, generalized beyond databases to any disaster-recovery plan.

Two concepts worth knowing by name here, kept deliberately conceptual: RTO (Recovery Time Objective) — how quickly a service must be restored after a disruption — and RPO (Recovery Point Objective) — how much recent data loss is acceptable, measured in time. Different businesses can justify very different answers: a small internal tool might reasonably accept an RTO of several hours and an RPO of an hour, while a payments system might require an RTO of minutes and an RPO close to zero — and that difference in requirement is exactly what justifies very different (and very differently priced) architectures. Neither number is universal; both come from the actual business requirement, not a default.

Exercise

A team says "we've deployed across three Availability Zones, so we're fully protected against any disaster." Using this lesson's distinctions, explain what's imprecise about that claim — specifically, what high availability actually protects against, and what a genuine disaster-recovery plan might additionally need to consider that Multi-AZ deployment alone does not address.

Show hint

Think about what kind of failure Multi-AZ actually protects against, versus a larger-scale event a single Region's AZs might all be affected by, or a mistake that gets replicated to every AZ equally.

Scalability, Elasticity, and High Availability Quiz

1. What does high availability primarily address?

2. Multi-AZ deployment and a complete disaster-recovery strategy mean exactly the same thing.

3. A scalable system is automatically highly available.

4. Deploying application components across multiple ______ Zones can reduce dependence on a single data-center location.

Show hint

It's the same infrastructure concept Module 1 introduced and this lesson builds on directly.

Log in to submit the quiz and save your score.

My Notes

Log in to keep private notes on this lesson.

Questions about this lesson

No questions yet — be the first to ask.

Log in to ask a question about this lesson.

Summary

Architecture reasoning starts from a workload's actual requirements — not from picking a familiar service name first — and three properties that get conflated in casual conversation are genuinely distinct: scalability (handling changing load), elasticity (capacity that adjusts automatically to that change), and high availability (staying reachable despite component failures), none of which is the same thing as disaster recovery (recovering from a larger-scale failure or disaster scenario).