Redundancy, Health Checks, and Automated Replacement
coreadvancedHigh availability is four habits, not one setting. Run in more than one Availability Zone, check health continuously, replace unhealthy things automatically instead of repairing them, and remove every component whose failure takes the system with it. The fourth one is the hard part, because single points of failure are usually shared services nobody lists.
Think of it as
Availability is set by the weakest link in the path, not the strongest. Three AZs of compute behind one NAT gateway, one cache node, and one bastion is a single-AZ system wearing a multi-AZ diagram.
What we're doing: Test a failure mode instead of assuming it works.
- 1
- The assumption is true about the database. It is silent about the application, which is where the outage actually happened.
- 5
- Sixty seconds of database failover became fifteen minutes of user-visible downtime — an application-layer problem that only a real failover exposes.
- 9
- Both fixes are small. Neither is discoverable from a diagram, a runbook, or a code review.
Why this works: The managed service usually does its part correctly; the gap is almost always in how the application reacts. That gap is only visible when the failover actually happens, which is why AWS puts testing the workload through its lifecycle inside its own definition of reliability.
A health check that queries the database
Wrong
Better
What you see: A two-second database blip marks every task unhealthy simultaneously, the load balancer removes all of them, and a recoverable hiccup becomes a full outage that then has to cold-start.
Why: The health check decides whether an instance receives traffic. Coupling it to a shared dependency converts any dependency failure into a correlated, fleet-wide removal — the exact opposite of what redundancy is for, since all replicas fail the check at the same instant.
- Redundancy — more than one of everything in the path
- Health checks — so failure is noticed
- Automated replacement — so it is fixed without a human
- Tested failure modes — so you know it actually works
Single points of failure people miss
Together
Remember: Redundancy, health checks that do not depend on shared downstreams, automated replacement rather than repair, and failure modes you have actually exercised. Then walk every component in the path and name its AZ — the one that appears once is your real availability.
See also: dependency isolation and graceful degradation · quotas as reliability constraints · multi az baseline

