DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
KOEN
Read Original

Contents

Continue Reading

  • More from Netflix
  • Related reads#Cassandra
#Backend

넷플릭스의 카산드라 데이터 이동 아키텍처 진화 과정

넷플릭스의 카산드라 데이터 이동 아키텍처 진화 과정
01

Summary

매일 3PB의 데이터를 옮기는 넷플릭스의 비결, '수백만 달러'를 아낀 데이터 이동 엔진 재설계

모놀리식 구조를 깨고 S3 백업에서 직접 데이터를 추출하는 차세대 카산드라 아키텍처로의 전환기

본 아티클은 넷플릭스가 핵심 저장소인 카산드라의 데이터를 분석용 Iceberg 테이블로 옮기는 과정을 어떻게 현대화했는지 다룹니다. 기존 시스템의 한계를 극복하기 위해 도입한 새로운 엔진과, 수천 개의 파이프라인을 무중단으로 교체하기 위해 사용한 플랫폼 엔지니어링 전략을 심도 있게 소개합니다.

  • 01S3 백업 데이터에서 직접 메타데이터와 데이터를 추출하여 시스템 의존성 대폭 제거
  • 02Spark Executor 단계에서 데이터를 압축 및 처리하여 Skewed Partition 병목 현상 완전 해결
  • 03중간 Iceberg 테이블 단계를 생략하여 저장소 및 컴퓨팅 비용 수백만 달러 절감
  • 04Decider Pattern을 활용해 사용자 코드 수정 없는 투명한 마이그레이션 성공
  • 05과거 특정 시점의 데이터와 스키마를 완벽히 재현하는 Time Travel 기능 지원

+RECOMMENDATION

대규모 데이터베이스 마이그레이션을 계획 중이거나, 분산 환경에서 고가용성 데이터 파이프라인을 구축해야 하는 데이터 엔지니어들에게 권장합니다.

The Problem

넷플릭스의 기존 카산드라 데이터 이동 엔진인 Casspactor는 복잡한 메타데이터 의존성으로 인한 잦은 장애, 거대 파티션(Skewed Partition) 처리 시 메모리 부족 문제, 그리고 여러 단계의 중간 테이블 생성으로 인한 과도한 저장 비용 문제를 겪고 있었습니다.

The Solution

Apache Cassandra Analytics 기반의 새로운 레이어드 아키텍처를 도입하여 S3 백업에서 직접 데이터를 읽고 Spark DataFrame으로 변환하는 방식을 택했으며, 'Connector Factory' 모델을 통해 다양한 데이터 모델에 최적화된 마이그레이션이 가능하도록 설계했습니다.

The Result

중간 Iceberg 테이블을 제거하고 처리를 최적화함으로써 연간 수백만 달러의 비용을 절감했으며, 거대 파티션 처리 안정성 확보와 함께 과거 시점의 데이터를 복구할 수 있는 Time Travel 기능을 구현하는 성과를 거두었습니다.

Trade-off

S3를 단일 진실 공급원(Single Source of Truth)으로 삼으면서 메타데이터 시스템 의존성은 줄었으나 S3 저장소의 데이터 일관성에 대한 의존도가 높아졌으며, 100% 데이터 일치 보장을 위한 장기간의 그림자 테스트(Shadow Testing) 리소스가 소요되었습니다.

03

Key Concepts

Concept · 01

Apache Cassandra Analytics

카산드라 클러스터에 직접적인 부하를 주지 않고 대량의 데이터를 읽고 쓸 수 있도록 지원하는 라이브러리입니다.

  • 넷플릭스는 이를 S3 백업 파일에서 직접 데이터를 추출하여 Spark DataFrame으로 변환하는 핵심 엔진으로 활용했습니다.
Concept · 02

Decider Pattern

실행 시점에 설정값에 따라 기존 로직과 신규 로직 중 하나를 선택하여 실행하는 제어 패턴입니다.

  • 마이크로서비스나 파이프라인 마이그레이션 시 위험을 최소화하고 즉각적인 롤백이 가능하도록 하는 안전장치로 사용되었습니다.
Concept · 03

Shadow Testing

신규 시스템을 실제 운영 데이터와 함께 병렬로 실행하여 결과값이 기존 시스템과 일치하는지 검증하는 테스트 방식입니다.

  • 넷플릭스는 기존 Casspactor와 신규 엔진의 출력물을 행(Row) 단위로 비교하여 100% 데이터 정밀도를 확보했습니다.
Continue reading · same source

NetflixMore from Netflix

View all posts from Netflix
  • MAPS: 넷플릭스의 대규모 멀티모달 에셋 개인화

    CLIPMediaFMRecommendation Systems
    1일 전
  • 두 개의 플링크 오토스케일러 이야기

    Apache FlinkAutoscalingStream Processing
    1주 전
  • 넷플릭스가 실시간 분산 그래프를 구축한 방법과 이유: 3부 — gRPC 실행 API를 통한 그래프 쿼리

    gRPCGraph DatabaseDistributed Systems
    3주 전
  • 분석을 위한 디바이스 사양 모델링

    Data ModelingFeature ManagementAnalytics
    4주 전
  • GenRec: 넷플릭스의 LLM 네이티브 추천 시스템을 향하여

    LLMRecommendation SystemContext Engineering
    1개월 전

Related reads#Cassandra

Explore #Cassandra
Netflix

카산드라의 와이드 파티션을 동적으로 분할하여 시계열 워크로드 최적화하기

#Cassandra2개월 전
Netflix·Multimodal Search

비디오 검색을 위한 멀티모달 인텔리전스 구축

#Cassandra4개월 전
라인·TSDB

Scaling to Infinity: 한계를 넘어서는 LY Corporation의 관측 가능성 플랫폼 진화기

#Cassandra6개월 전

Source

Netflix
Netflix
Engineering Blog

Published · June 19, 2026

Topics

CassandraApache IcebergApache SparkNetflixData Infrastructure