Documented incidentIncident 2017-02-28Amazon Web ServicesEngineering postmortem

Mistyped input to a capacity-removal command takes down S3 in us-east-1 (AWS, 2017)

An engineer ran a command meant to remove a small number of servers from an S3 subsystem, but one input was entered incorrectly and more capacity was removed than intended.

What happened

  • The disruption affected S3 requests (GET, LIST, PUT, DELETE) and dependent services including EC2 launches, EBS snapshots, Lambda and the S3 console in US-EAST-1.Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region
  • AWS changed the tool to remove capacity more slowly and added safeguards that block removals which would take a subsystem below its minimum required capacity.Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region

The failure pattern

Watch the pattern: Privileged action without an enforceable approval gate

Safeguards that address it

CollectSEA's engineering analysis of what would have prevented or contained this failure.

  • Enforce minimum-capacity limits inside the toolRefuse removals that would drop a subsystem below its minimum capacity and remove capacity gradually.
  • Validate operator input and require a dry runCheck parameters against expected ranges and show what a destructive capacity change will affect before executing it.

Related standards

CollectSEA's mapping through this incident's failure pattern; not an official determination by the standards bodies.

Building something similar?

Describe your design and see every precedent that applies, with safeguards you can hand to your coding agent.

Analyze your design