pile·
DB / 데이터·매드업매드업·

매드업의 DMP - 프리즘(prism)을 소개합니다

매드업이 구글, 페이스북, 네이버, 카카오모먼트 등 다수 광고 플랫폼의 데이터를 일괄 수집·처리·배포하기 위해 구축한 데이터 관리 플랫폼(DMP) 프리즘(Prism)을 소개한다. Python 기반 수집기 → S3 → Airflow ELT → Redshift → JupyterHub로 이어지는 V1 아키텍처와 그 한계를 극복한 V2 개선 사항(비동기·EKS·MWAA·Redshift RA3)까지 상세히 다룬다. 하루 수백~수천 GB 광고 데이터를 처리하는 규모의 실사용 사례다.

핵심 포인트
  • Google, Facebook, Naver, Kakao Moment + Appsflyer, GA 등 멀티플랫폼 데이터 통합
  • Python 수집기가 AWS ECS에서 컨테이너 수백~수천 개로 스케일 아웃해 일 수백 GB 처리
  • ELT 파이프라인: S3(raw) → Apache Airflow → Amazon Redshift
  • JupyterHub(ECS Fargate + Google Workspace 인증)로 전사 분석가 셀프서비스
  • V1 한계: 동기 코드 확장성 부족, Redis Stream 복잡도, EC2 Airflow 가용성 위험
  • V2 개선: 비동기 Python, SQS+Managed Kafka, EKS, MWAA, Redshift RA3+AQUA
상세 정리
  • 수집 대상: Google, Facebook, Naver, Kakao Moment, Appsflyer, Google Analytics
  • V1 수집기: Python, AWS ECS, 광고주 수에 비례해 컨테이너 인스턴스 수백~수천 개 실행
  • V1 저장: 수집 데이터를 AWS S3에 원본 저장
  • V1 처리: Apache Airflow ELT로 S3 데이터를 Redshift로 이관·변환
  • V1 접근: JupyterHub on ECS Fargate, Google Workspace 계정으로 인증
  • V1 한계: 동기 수집 코드 확장성 제약, Redis Stream 복잡도, ECS 리소스 관리 한계
  • V1 한계: EC2 기반 Airflow 가용성 위험, 초기 Redshift 설정 부족
  • V2 개선: 비동기 Python으로 수집기 재작성
  • V2 개선: Redis Stream → AWS SQS + Managed Kafka 대체
  • V2 개선: ECS → EKS로 컨테이너 오케스트레이션 전환
  • V2 개선: EC2 Airflow → Amazon MWAA(Managed Airflow)
  • V2 개선: Redshift → RA3 노드(AQUA 가속 + Managed Storage)
왜 읽나멀티 광고 플랫폼의 대용량 데이터를 ELT 파이프라인으로 통합하고 전사 셀프서비스 분석까지 연결하는 데이터 플랫폼 아키텍처를 참고하고 싶은 데이터 엔지니어.
매드업
매드업 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. DB / 데이터·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

    분석가가 직접 만든 마케팅 자동화 시스템 — 오디언스 빌더 제작기

    여기어때 데이터 분석팀(UB팀)이 개발 경험 없이 AI 에이전트 바이브 코딩으로 마케팅 자동화 시스템 '오디언스 빌더'를 구축한 과정이다. SQL 없이 UI에서 타겟 조건을 설정하면 BigQuery에서 수천만 행 대상자를 추출해 Kafka·S3를 통해 마케팅 도구로 전달하는 파이프라인을 직접 만들어, 캠페인 준비 시간을 2~3일에서 10분으로 단축했다.

    요약 이어보기
    #data-pipeline#kafka#postgres+2
  2. DB / 데이터·vercel-blogVercel Blog·

    모든 Vercel 빌드를 지탱하는 데이터베이스 마이그레이션 이야기

    Vercel이 빌드 웜 풀(warm pool) 상태 데이터를 Redis에서 DynamoDB로 마이그레이션한 과정을 다룬다. 빌드 풀의 청구 매핑 데이터가 Redis 장애 시 복구 불가능하다는 구조적 위험이 이주를 결정한 핵심 이유였고, 24/7 프로덕션 트래픽 속에서 다운타임 없이 5단계 점진적 전환을 완료했다.

    요약 이어보기
    #database-migration#zero-downtime#redis+2
  3. DB / 데이터·channel-talk채널톡·

    DynamoDB 핫 파티션을 해결하는 3가지 방법 (3): 조회를 인덱스 테이블로 옮기기

    채널톡이 DynamoDB 핫 파티션을 해결하려 GSI를 별도 인덱스 테이블로 떼어낸 연재의 마지막 편으로, 조회 경로를 GSI에서 인덱스 테이블로 옮긴 과정을 다룬다. 2편에서 쓰기 파이프라인이 완성돼 WriteThrottleEvents가 월 110만 회에서 0회가 됐지만, 조회 코드가 여전히 GSI를 읽고 있어 GSI를 지울 수 없었다. GSI가 읽기에서 대신해주던 키 해석·정확 일치·삭제 필터·페이지 채우기를 사내 공통 라이브러리의 조회 규칙으로 흡수해, 호출부는 GSI든 인덱스 테이블이든 같은 코드를 쓰게 만들었다.

    요약 이어보기
    #migration#dynamodb#hot-partition+5