How AWS S3 is built

A behind-the-scenes look at how Amazon S3 is designed for durability and correctness at massive scale, drawing on over a decade of operating one of the world’s largest distributed systems with Mai-Lan Tomsen Bukovec at AWS.

How AWS S3 is built

TL;DR

  • S3 handles hundreds of millions of transactions per second globally and stores over 500 trillion objects, amounting to hundreds of exabytes of data.
  • The system achieved strong consistency without compromising availability or increasing costs through innovations like a replicated journal and a new cache coherency protocol.
  • Performance-critical code paths in S3 have been largely rewritten in Rust to maximize performance and minimize latency.
  • S3's 11 nines of durability are continuously measured by auditor microservices, with automated repair systems addressing detected issues.
  • Formal methods, including automated reasoning, are extensively used in production to verify code correctness, especially for the index subsystem and cross-region replication.
  • Correlated failures, where multiple components fail simultaneously due to shared fault domains, are a primary concern and are mitigated by replicating data across multiple availability zones and using quorum-based algorithms.
  • S3 comprises around 200 microservices, many dedicated to durability tasks like health checks and repairs, emphasizing simplified, focused services.
  • S3 Vectors, a new data structure for searching high-dimensional vector spaces, achieves sub-100ms query times by precomputing vector neighborhoods.
  • Crash consistency is a core design philosophy, with engineers reasoning about system states under failure conditions.
  • The 'Scale Is to Your Advantage' principle ensures that increased scale improves system attributes like reliability.