~learn.

Netflix kept streaming through the April 2011 AWS outage that hampered popular sites.

When an AWS zone failed, many sites went down. Netflix ran on, because it had been built expecting a zone to fail.

Netflix · 2011 · 2 min read · a true story, sources below

On Thursday 21 April 2011, Amazon Web Services had a large outage in its US-East region. It took down or severely hampered a number of popular websites. Netflix, which ran its streaming systems on AWS, kept going: the service "ran without intervention", Netflix wrote, with higher error rates and latency than usual through the morning, its quiet time, and no noticeable rise in customer service calls.

Netflix had avoided EBS, Amazon's network disks, as its main data store, and the services it relied on, SimpleDB, S3 and Cassandra, were not affected. The rest was design:

It wasn't painless. When it became clear AWS wouldn't fix things before Netflix's early-evening peak, engineers decided to move traffic out of the failing zone by hand. Their tools weren't built for wholesale changes, so every service team made manual, "potentially error prone" changes, including updating all of the load balancer endpoints.

So Netflix's lessons were to automate zone failover into a "one click" operation, and to create more failures. It already ran Chaos Monkey, a service that kills other services so engineers get used to failure. But nothing simulated losing a whole zone. People were already calling that idea "Chaos Gorilla".

The numbers
  • 21 April 2011: the AWS US-East outage
  • 3 of 4 zones in use, all of them active
  • 1 whole zone: the failure Netflix's spare capacity was sized for

Why it matters: Design for the failure, then practise it. A lost zone was part of Netflix's plan, and it still found a gap: the failover worked, but only by hand.

Sources

the idea behind it · W02 · DAY 03Circuit Breakersread the lesson →