아마존의 20년 마이크로서비스 노하우와 무한 스케일링을 가능케 한 셀 기반 아키텍처 Deep Dive
글로벌 최대 규모의 NoSQL 서비스인 DynamoDB의 탄생 배경과 핵심 설계 철학을 다룹니다. Amazon.com이 겪은 아키텍처 진화 과정부터 셀 기반 아키텍처를 통한 장애 격리, 그리고 실제 프라임 데이의 거대 트래픽을 처리하는 내부 구조까지 시니어 엔지니어의 시각에서 요약했습니다.
대규모 분산 시스템을 설계하거나 데이터베이스 병목으로 고민하는 백엔드 엔지니어에게 추천합니다. 특히 고가용성 서비스 운영을 위한 장애 격리 전략과 비용-안정성 간의 트레이드오프를 이해하는 데 큰 도움이 됩니다.
Amazon.com은 과거 모놀리틱 구조에서 개발자 생산성 저하와 데이터베이스 스케일링 문제에 직면했으며, 이를 해결하기 위해 데이터베이스 직접 접근을 금지하는 분산 컴퓨팅 원칙이 필요했습니다.
보안, 내구성, 가용성을 핵심 원칙으로 삼아 서비스를 기능 단위 마이크로서비스로 쪼개고, 셀 기반 아키텍처와 셔플 샤딩을 도입하여 장애 범위를 최소화하는 DynamoDB를 설계했습니다.
아마존 프라임 데이 기준 피크 트래픽 1억 5,100만 RPS를 처리할 수 있는 성능을 확보했으며, 수십 조 건의 API 호출을 견뎌내는 AWS 컨트롤 플레인의 핵심 서비스로 자리 잡았습니다.
Trade-off
장애 격리를 위해 셀 기반 아키텍처를 도입했으나 데이터 스토어를 여러 벌 복제해야 하므로 인프라 비용이 증가하며, 가용성 보장을 위해 상시 50% 이상의 여유 캐퍼시티를 유지해야 하는 비용적 부담이 존재합니다.
마이크로서비스를 독립적인 단위인 셀로 샤딩하여 관리하는 구조로, 특정 단위의 장애가 전체로 확산되는 것을 방지합니다.
DynamoDB의 입구 역할을 하는 API 서버로 인증, 인가, 메타데이터 조회, 레이트 리밋 등을 처리합니다.
사용자나 요청을 여러 샤드 조합에 분산 배치하여, 특정 샤드의 장애가 다른 사용자에게 미치는 영향을 기하급수적으로 줄이는 기법입니다.

