- AWS S3는 대규모 멀티테넌트 객체 스토리지 서비스로, 높은 가용성과 내구성을 낮은 비용에 제공
- 구식이고 느린(≈120 IOPS) HDD를 활용하지만, 초저가·대용량 저장 매체의 경제성을 극대화함
- S3는 내부 저장계층(ShardStore)을 로그 구조(LSM) 로 설계해 쓰기 경로를 순차 I/O에 맞추고, 읽기 경로는 Erasure 코딩(5-of-9) 과 대규모 병렬화로 성능문제를 상쇄함
- 클라이언트·프런트엔드·스토리지 전 구간에서 멀티파트 업로드, 바이트 범위 GET, 커넥션 풀, 헤지 요청 등으로 테일 지연을 줄이고 처리량을 합산함
- 무작위 분산 배치와 Power of Two Random Choices, 지속 리밸런싱, 규모가 커질수록 부하가 평탄화되는 데코릴레이션으로 핫스팟을 피하며, 결과적으로 >1 PB/s 급 처리량을 실현함
AWS S3의 대규모 스토리지 아키텍처
- 누구나 AWS S3가 무엇인지는 알지만, S3가 얼마나 거대한 규모로 동작하는지와 이를 위해 어떤 혁신이 있었는지 아는 사람은 적음
- S3는 확장 가능한 멀티테넌트 오브젝트 스토리지 서비스이며, API를 통해 오브젝트를 저장 및 조회할 수 있고, 매우 높은 가용성과 내구성을 상대적으로 저렴한 비용으로 제공함
-
S3의 규모
- 400조 개 이상의 오브젝트 저장
- 초당 1억 5천만 건의 요청 처리
- 피크 시 초당 1PB 이상 트래픽 지원
- 수천만 개의 하드 디스크 운영
- 높은 가용성과 내구성(“11 nines” 설계 목표), 상대적으로 낮은 비용을 사용자 경험의 전제로 제시
- 데이터 애널리틱스·머신러닝 데이터레이크의 기본 저장 레이어로까지 확장됨
- 설계 목표는 비용 효율을 유지하면서 무작위 접근 패턴과 대규모 동시성을 감당하는 것
- S3는 테넌트마다 임의의 크기/오프셋으로 접근하는 집합적 랜덤 액세스 워크로드를 전제로 함
기반 기술: 하드 드라이브(HDD)
- S3의 놀라운 확장성과 퍼포먼스는 전통적인 저장 매체인 HDD가 기반임
- HDD는 오래된 기술로 내구성은 높지만 물리적 이동에 의해 IOPS(초당 입출력)과 지연에서 한계가 존재함
- 초당 회전(예: 7200 RPM) 과 액추에이터 시킹이라는 기계적 운동이 필수이므로 지연 시간이 구조적으로 크고 불가피함
- 평균 반플래터 시킹 ≈4 ms, 평균 반회전 ≈4 ms, 0.5 MB 전송 ≈2.5 ms → 랜덤 0.5 MB 읽기 평균 ≈11 ms, 단일 디스크 랜덤 처리량 ≈45 MB/s 수준
- SSD와는 달리,용량↑·가격↓ 의 장기 곡선으로 “초저가/대용량” 경제성을 확보하여 여전히 대규모 스토리지에 활용되고 있음
- 가격: 바이트당 60억 배 하락 (물가 반영 기준)
- 용량: 720만 배 증가
- 크기: 5천 배 감소
- 무게: 1,235배 감소
- 그러나 30년째 IOPS는 약 120 수준에 정체되어 있으며, 랜덤 접근 성능과 지연은 크게 개선되지 않음
- SSD는 랜덤 I/O에 유리하지만 페타·엑사 스케일 저장에선 총소유비용(TCO) 측면에서 불리함
순차 I/O에 최적화된 쓰기 경로
- HDD는 순차 접근에 최적화되어 있으며, 연속된 바이트를 읽고 쓰면 디스크 플래터가 자연스럽게 돌아가면서 빠르게 데이터 처리 가능
-
로그 기반 데이터 구조(log-structured)는 이런 순차 특성을 활용함
- S3 내부 저장계층인 ShardStore는 로그 구조 LSM을 채택하여 쓰기를 디스크 순차 append로 처리하는 전략임
- 유사하게 배치 처리로 디스크 순차 처리량을 극대화할 수 있음
랜덤 읽기 경로를 위한 병렬화와 Erasure Coding
- 읽기는 사용자 요청에 따라 임의(랜덤) 위치 점프가 발생하므로 물리적인 한계를 그대로 맞닥뜨림(랜덤 I/O의 평균 지연은 약 11ms)
- HDD 한 개에서 랜덤 I/O로 최대 초당 45MB 처리 가능
- 그래서 대량의 데이터 저장에는 HDD가 가성비가 뛰어나지만, 무작위 액세스 성능이 떨어짐
- S3는 이 물리적 한계를 극복하기 위해 데이터를 다수 디스크에 샤딩하고 동시에 읽어 합산 처리량을 끌어올리는 대규모 병렬화를 채택함
- 데이터를 수많은 HDD에 분산 저장, 각 디스크의 입력/출력을 병렬로 사용해 전체 처리량을 크게 높임
- 예를 들어 1TB 파일을 2만 개의 HDD에 분할 저장하면, 전체 디스크의 처리량을 합산하여 TB/s급 읽기 가능
에러수정코딩(Erasure Coding)
- 스토리지 시스템에서는 중복성 보장이 필수임
- S3는 Erasure Coding(EC) 을 사용하여 데이터를 K개의 조각과 M개의 패리티 조각으로 분할
- 총 K+M개 중 임의의 K개만 있으면 복원 가능
- S3는 9분할(5개 데이터 샤드, 4개 패리티 샤드) 구조를 활용한 Erasure Coding(5-of-9) 으로 균형점을 확보
- 5개 데이터 + 4개 패리티 = 9조각
- 최대 4개 샤드 손실까지 복원 가능하여, 아무 5조각만 있으면 원본 복구 가능한 내결함성 제공
- 저장 오버헤드는 ≈1.8배로, 3중 복제(3x) 대비 용량 효율적
- 동시에 5개의 병렬 읽기 경로를 확보해 샤드 병렬화와 스트래글러 회피에 유리함
- S3는 이 물리적 한계를 극복하며, 대규모 데이터에 대한 무작위 액세스를 제공함
병렬 처리 구조
- S3는 3가지 주요 병렬화 방식을 사용
- 1. 사용자는 데이터를 여러 청크로 나누어 업로드 및 다운로드
- 2. 클라이언트는 여러 프론트엔드 서버에 동시 요청
- 3. 서버는 여러 스토리지 서버에 오브젝트를 분산 저장
-
1. 프론트엔드 서버 단위 병렬 처리
- 내부 HTTP 커넥션 풀을 활용해 분산된 여러 엔드포인트에 동시에 연결
- 특정 인프라 노드나 캐시에서 과부하 방지
-
2. 하드 드라이브 간 병렬 처리
- EC 기반으로 데이터를 여러 HDD에 소규모 샤드로 분산 저장
-
3. PUT/GET 요청 병렬 처리
- 클라이언트가 데이터를 여러 부분으로 쪼개서 병렬 업로드
- PUT: 멀티파트 업로드로 신규 병렬 처리 극대화
- GET: 바이트 레인지 GET 지원(객체 내 일부 범위만 읽기 가능)
- 병렬로 분산 처리하면 초당 1GB 업로드 등도 어려움 없이 달성 가능
핫스팟(Hot Spot) 방지
- S3는 수천만 대의 드라이브와 초당 수억 요청, 수억 샤드의 병렬 운영 환경
- 특정 디스크나 노드에 부하가 몰릴 경우 시스템 전체 성능 저하 위험 발생
- 이를 막기 위한 핵심 전략:
- 1. 데이터 저장 위치 무작위 분산
- 2. 지속적 리밸런싱
- 3. 시스템 규모 확장
-
1. 셔플 샤딩 & Power of Two
- 최초 데이터 저장 위치를 무작위로 분산함
- ‘Power of Two Random Choices’ 알고리듬 적용:
- 무작위 2개의 노드 중 부하가 적은 쪽 선택 시 효과적 로드 밸런싱 가능
-
2. 리밸런싱
-
데이터 온도: 신규 데이터가 더 뜨거움(자주 접근됨) 이라는 특성을 이용해 주기적 리밸런싱으로 공간과 I/O를 재분배
- 데이터가 오래될수록 접근 빈도 감소, 스토리지 전체의 I/O 여력 증가
- S3는 콜드 데이터를 재분산하여 공간과 자원 활용 극대화
- 신규 랙 도입 시(예: 20 PB/랙, 1000×20 TB) 빈 용량에 능동적 분산이 필요
-
데이터 온도: 신규 데이터가 더 뜨거움(자주 접근됨) 이라는 특성을 이용해 주기적 리밸런싱으로 공간과 I/O를 재분배
-
3. Chill@Scale
- 규모의 효과: 워크로드가 독립적일수록 버스트 동시성이 줄어 집계 부하가 평탄화되는 데코릴레이션이 발생함
- 시스템이 클수록 피크/평균 격차 축소, 예측 가능성 향상이라는 이점을 얻음
- 즉, 사용량이 급증-휴면을 반복하더라도 대규모에서는 서로 상쇄되어 예측 가능한 부하 유지 가능
운영·신뢰성 문화와 기타 기법
- DNS 레벨 shuffle sharding으로 네임 리졸버 차원에서 테넌트 간 격리와 균등 분산 추구
- 소프트웨어 롤아웃도 EC처럼 점진적·무중단 방식으로 수행, ShardStore 전환도 서비스 영향 없이 진행
- 내구성 문화: 지속적 결함 탐지, chain of custody, 내구성 위협 모델링, 형식 검증 등 프로세스 기반 신뢰성 확보
왜 중요한가: S3를 기반으로 한 데이터 인프라 트렌드
-
Stateless 아키텍처 확산으로 애플리케이션 노드는 상태를 비우고 영속성·복제·부하분산을 S3에 위임하는 패턴이 확대됨
- 예: Kafka Diskless(KIP-1150), SlateDB, Turbopuffer, Lucene on S3, ClickHouse/OpenSearch/Elastic의 오브젝트 스토리지 통합 등
- 장점은 탄력적 스케일링·운영 단순화·비용 절감이며, 단점은 지연 증가 가능성으로 워크로드별 레이턴시·비용·내구성의 3요소 트레이드오프를 설계해야 함
요약
- AWS S3는 대규모 멀티테넌트 스토리지 서비스로, 느린 저장 매체의 한계를 대규모 병렬성, 로드 밸런싱, 데이터 샤딩 기술로 극복
- 에러수정코딩, 무작위 분산, 지속적 리밸런싱, 헤지 요청 등으로 안정성과 성능을 확보
- 초기에는 백업·미디어 중심이었으나, 데이터 분석 및 머신러닝 등 빅데이터 인프라의 메인 스토리지로 발전함
- S3 기반 아키텍처는 스테이트리스 확장성을 확보하며, 내구성·복제·로드 밸런싱 문제를 효과적으로 AWS 측에 위임 가능
- 이는 클라우드 비용 절감 및 관리 효율까지 제공함
- 참조 영상: AWS re:Invent S3 Deep Dive