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.
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.
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
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).