
13억 시계열 데이터의 파고를 넘는 에어비앤비의 멀티 테넌트 & 페더레이션 전략
에어비앤비가 대규모 관측 인프라를 구축하며 겪은 기술적 도전과 해결책을 다룹니다. 단순한 저장소 구축을 넘어, 거대 규모의 시계열 데이터를 어떻게 안전하게 분산하고 장애 범위를 격리했는지에 대한 아키텍처적 통찰을 제공합니다.
대규모 트래픽을 처리하는 인프라 엔지니어나 시계열 데이터베이스 운영자에게 강력히 추천합니다. 특히 단일 장애 지점을 제거하고 안정적인 멀티 테넌트 시스템을 설계하려는 개발자에게 실질적인 가이드를 제공합니다.
에어비앤비는 초당 5,000만 개의 샘플과 13억 개의 시계열 데이터를 처리해야 하는 상황에서, 외부 호스팅 서비스에서 내부 운영 솔루션으로 전환하며 대규모 데이터의 성능 및 안정성 문제에 직면했습니다. 특히 단일 클러스터 내 테넌트 간의 간섭(Noisy Neighbor), 대규모 쿼리 지연, 컴팩션 병목 현상이 주요 해결 과제였습니다.
셔플 샤딩(Shuffle Sharding)을 통해 테넌트 간 장애를 격리하고, 읽기/쓰기 가드레일을 도입하여 개별 서비스가 전체 시스템에 영향을 주지 않도록 설계했습니다. 또한 Promxy를 활용한 멀티 클러스터 페더레이션 구조를 도입하여 장애 범위를 최소화하고, Kubernetes 오퍼레이터를 통해 상태 저장 앱의 배포를 자동화했습니다.
99.9% 이상의 높은 가용성을 달성했으며, 테넌트별 제어와 멀티 존 배포를 통해 인프라의 탄력성을 확보했습니다. 클러스터를 개별적으로 관리하던 수동 프로세스를 자동화하여 구성 드리프트를 방지하고, 특정 클러스터 장애 시에도 전체 관측성 서비스가 중단되지 않는 구조를 완성했습니다.
Trade-off
멀티 클러스터 페더레이션 쿼리는 단일 클러스터 내 쿼리보다 약 5~10배 더 많은 리소스를 소모하는 비용 문제가 발생했습니다. 또한 시스템 안정성을 위해 클러스터 구성 및 관리 도구 개발에 상당한 운영 리소스가 투입되었습니다.
공유 리소스 환경에서 각 사용자의 워크로드를 특정 하위 집합(Shard)에 분산하여, 한 사용자의 장애가 다른 사용자에게 전파될 확률을 수학적으로 최소화하는 기술입니다.
여러 물리적 클러스터에 분산된 데이터를 마치 하나의 데이터 저장소에 있는 것처럼 통합하여 조회하는 방식입니다.
특정 컴포넌트나 노드에 장애가 발생했을 때 그 영향이 미치는 지리적, 논리적 범위를 제한하는 설계 원칙입니다.




