
모놀리식 구조를 깨고 S3 백업에서 직접 데이터를 추출하는 차세대 카산드라 아키텍처로의 전환기
본 아티클은 넷플릭스가 핵심 저장소인 카산드라의 데이터를 분석용 Iceberg 테이블로 옮기는 과정을 어떻게 현대화했는지 다룹니다. 기존 시스템의 한계를 극복하기 위해 도입한 새로운 엔진과, 수천 개의 파이프라인을 무중단으로 교체하기 위해 사용한 플랫폼 엔지니어링 전략을 심도 있게 소개합니다.
대규모 데이터베이스 마이그레이션을 계획 중이거나, 분산 환경에서 고가용성 데이터 파이프라인을 구축해야 하는 데이터 엔지니어들에게 권장합니다.
넷플릭스의 기존 카산드라 데이터 이동 엔진인 Casspactor는 복잡한 메타데이터 의존성으로 인한 잦은 장애, 거대 파티션(Skewed Partition) 처리 시 메모리 부족 문제, 그리고 여러 단계의 중간 테이블 생성으로 인한 과도한 저장 비용 문제를 겪고 있었습니다.
Apache Cassandra Analytics 기반의 새로운 레이어드 아키텍처를 도입하여 S3 백업에서 직접 데이터를 읽고 Spark DataFrame으로 변환하는 방식을 택했으며, 'Connector Factory' 모델을 통해 다양한 데이터 모델에 최적화된 마이그레이션이 가능하도록 설계했습니다.
중간 Iceberg 테이블을 제거하고 처리를 최적화함으로써 연간 수백만 달러의 비용을 절감했으며, 거대 파티션 처리 안정성 확보와 함께 과거 시점의 데이터를 복구할 수 있는 Time Travel 기능을 구현하는 성과를 거두었습니다.
Trade-off
S3를 단일 진실 공급원(Single Source of Truth)으로 삼으면서 메타데이터 시스템 의존성은 줄었으나 S3 저장소의 데이터 일관성에 대한 의존도가 높아졌으며, 100% 데이터 일치 보장을 위한 장기간의 그림자 테스트(Shadow Testing) 리소스가 소요되었습니다.
카산드라 클러스터에 직접적인 부하를 주지 않고 대량의 데이터를 읽고 쓸 수 있도록 지원하는 라이브러리입니다.
실행 시점에 설정값에 따라 기존 로직과 신규 로직 중 하나를 선택하여 실행하는 제어 패턴입니다.
신규 시스템을 실제 운영 데이터와 함께 병렬로 실행하여 결과값이 기존 시스템과 일치하는지 검증하는 테스트 방식입니다.




