Amazon S3가 처음 출시된 2006년 3월 14일, 창업자 Werner Vogels는 "저장 용량 걱정을 영원히 없애겠다"고 말했다. 그 선언이 실제로 어떤 기술 결정으로 이어졌는지를 이해하면 S3의 독특한 설계 원칙이 보이기 시작한다. S3는 파일 시스템이 아니다. 계층 디렉토리도, inode도, 파일 잠금도 없다. 있는 것은 오직 키-값 쌍의 무한한 공간뿐이다. 이 단순한 모델이 왜 20년이 지난 지금도 살아남았는지, 그리고 DVA-C02 시험에서 S3 문제가 왜 이렇게 자주 나오는지를 이 글에서 파헤친다.
1970년대 Ken Thompson이 Unix 파일 시스템을 설계할 때 목표는 단일 머신에서 여러 프로세스가 공유 자원에 접근하는 것이었다. 계층형 디렉토리, inode, 링크, 파일 잠금은 그 목표에 최적화된 구조다. 그러나 수십억 개의 객체를 수천 개의 서버에 분산 저장하는 문제에서 이 구조는 오히려 방해가 된다. 디렉토리 잠금은 병목이 되고, inode 테이블은 단일 장애점이 되며, 계층 탐색은 메타데이터 서버에 과부하를 준다.
S3의 해답은 flat namespace다. 버킷 이름과 키(key)만 있으면 어떤 객체든 O(1)에 가깝게 찾아낼 수 있다. /documents/2026/report.pdf 처럼 보이는 경로도 실제로는 슬래시가 포함된 단일 문자열 키일 뿐이다