S3는 2006년 AWS 최초의 서비스로 출시됐을 때, 외부 개발자들이 "파일을 HTTP로 저장할 수 있다"는 사실만으로 혁명적이라고 느꼈다. 그러나 17년이 지난 지금 S3는 단순한 파일 저장소가 아니다. 분산 객체 스토리지 시스템으로서 Dynamo(Amazon의 내부 키-값 DB)의 설계 원리 위에서 동작하고, 2020년에는 일관성 모델까지 완전히 바꿨다.
이 글에서는 S3의 내부 동작 원리(데이터가 어떻게 분산·복제되는지), 일관성 모델이 왜 2020년에야 강한 일관성을 달성했는지, 멀티파트 업로드의 정확한 API 시퀀스, 버전 관리의 내부 동작, Presigned URL의 서명 메커니즘까지 다룬다.
2000년대 초 Amazon.com은 급증하는 데이터를 어떻게 저장할지 근본적인 문제에 직면했다. 전통적인 파일 시스템(NFS, SAN)은 수평 확장이 어렵고, RAID 어레이는 용량 한계가 있었다. 더 근본적인 문제는 파일 시스템의 "부분 수정(random write)" 기능이 대규모 분산 환경에서 일관성 관리를 엄청나게 복잡하게 만든다는 것이었다.
객체 스토리지의 핵심 설계 결정은 **불변성(Immutability)**이다. 객체는 통째로 쓰고(PUT), 통째로 읽고(GET), 통째로 삭제한다(DELETE). 부분 수정이 없다. 이 제약이 오히려 대규모 분산 스토리지를 단순하게 만든다