Multi-Cloud Real-time Data Pipeline (AWS ↔ GCP)

AWS DMS CDC, Lambda, SQS를 활용하여 RDS Aurora의 데이터를 Google BigQuery로 준실시간 이동하는 멀티클라우드 파이프라인 구축. 일 4,000만 건 데이터 처리로 실시간 분석 및 FDS 지원

2022.12 - 2023.03

기술 스택

AWS DMS AWS Lambda SQS Google BigQuery Python Terraform

Multi-Cloud Real-time Data Pipeline (AWS ↔ GCP)

프로젝트 개요

글로벌 카지노 게임 3종의 일배치를 준실시간 배치로 전환하는 멀티클라우드 데이터 파이프라인 구축 프로젝트입니다. AWS DMS CDC, Lambda, SQS를 활용하여 RDS Aurora의 데이터를 Google BigQuery로 준실시간 이동하며, 일 4,000만 건의 데이터를 99.9% 정합성으로 처리합니다.

🎯 프로젝트 목표

  • DB Cluster 6개, 테이블 70여개, 하루 데이터 4,000만 row 처리
  • RDB에 저장된 데이터를 평균 지연시간 1-2분으로 실시간 이동
  • 실시간 대시보드 및 실시간 FDS(Fraud Detection System) 지원
  • 멀티클라우드 환경에서 비용 효율적인 ETL 구현

🏗️ 아키텍처

Architecture

RDS Aurora (MySQL) → AWS DMS (CDC) → S3 → SQS → Lambda → Google BigQuery

핵심 컴포넌트

  • AWS DMS: Change Data Capture를 통한 실시간 변경 감지
  • Amazon S3: 중간 데이터 저장소 및 버퍼링
  • Amazon SQS: 안정적인 메시지 큐잉 및 재처리 지원
  • AWS Lambda: 데이터 변환 및 BigQuery 적재 로직
  • Google BigQuery: 최종 데이터 웨어하우스

🔧 주요 기술적 도전과 해결

1. 데이터 누락 문제

이슈 - BigQuery API 기반 로드 시 간헐적 오류 발생 - 테이블명, 코드 문법 오류로 인한 로드 실패

해결책 - S3와 Lambda 사이에 SQS 큐 추가로 실패 이벤트 재처리 - Dead Letter Queue 설정으로 완전한 데이터 보장 - 자동 재시도 메커니즘 구현

2. 데이터 중복 문제

이슈 - S3 Event가 "at least once" 방식으로 중복 이벤트 발생 - BigQuery append 방식에서 실패 시 재처리로 인한 중복

해결책 - BigQuery Job ID를 unique identifier로 활용 - yyyymmddhhmmss_{테이블}.parquet 형식의 Job ID로 중복 체크 - 멱등성 보장으로 안전한 재처리 구현

3. 테이블 관리 자동화

이슈 - 테이블 변동이 잦아 매번 수동 배포 필요 - 분석가와 엔지니어 간 커뮤니케이션 비용 증가

해결책 - 테이블 매핑 파일을 별도 관리 - GitLab CI를 통한 자동 배포 구축 - Git 코드에 테이블만 추가하면 자동 반영되는 시스템

4. 자동 스키마 추론

이슈 - MySQL의 Bit, Boolean 타입 지원 문제로 인코딩 깨짐 - 테이블 추가 시 매번 BigQuery 테이블 정의 필요

해결책 - DMS 공통 변환으로 MySQL 라이브러리 이슈 해결 - Parquet 파일 + BigQuery autodetect 스키마 추론 활용 - Parquet + GZ 압축으로 비용 절감 효과 달성

📊 성과 및 임팩트

비즈니스 임팩트

  • 실시간 대시보드 구현으로 즉시 의사결정 지원
  • 실시간 FDS 구축으로 부정 거래 실시간 탐지
  • 분석가의 ETL 파이프라인 관리 리소스 최소화

기술적 성과

  • 평균 지연시간: 1-2분의 준실시간 처리
  • 데이터 정합성: 99.9% 달성
  • 처리량: 일 4,000만 건 안정적 처리
  • 비용: 월 $150로 비용 효율적 운영

운영 효율성

  • 자동화된 테이블 관리로 엔지니어 개입 최소화
  • 모니터링 대시보드로 분석가 문의 최소화
  • 백필 시스템 제공으로 장애 시 빠른 복구

🔍 모니터링 및 관리

Monitoring Dashboard

실시간 모니터링

  • 테이블 현황 대시보드 구축
  • 데이터 수집 상태 실시간 확인
  • BigQuery 한도 체크 및 비용 모니터링

Status Dashboard

장애 대응 시스템

  • Google Spreadsheet + DMS FullLoad 재처리 시스템
  • CDC 형태 데이터로 이력성 테이블 관리
  • 자동 알림에스컬레이션 정책

🚀 기술적 혁신

1. 멀티클라우드 아키텍처

  • AWS와 GCP 간 효율적인 데이터 이동
  • 각 클라우드의 장점을 활용한 최적화
  • 클라우드 벤더 종속성 최소화

2. 실시간 CDC 파이프라인

  • 기존 배치 처리에서 실시간 처리로 패러다임 전환
  • Change Data Capture를 통한 최소 지연시간 달성
  • 스냅샷성이 아닌 이력성 데이터 관리

3. 자동화 및 셀프서비스

  • 분석가가 직접 테이블 관리 가능
  • 엔지니어 의존성 최소화
  • 코드 기반 인프라 관리

📈 확장성 및 재사용성

이 프로젝트는 다른 게임 및 서비스로 확장 가능한 재사용 가능한 아키텍처로 설계되었습니다:

  • 템플릿화된 DMS 설정
  • 공통 Lambda 함수 활용
  • 표준화된 모니터링 체계
  • 문서화된 운영 가이드

🎓 학습 및 성장

기술적 학습

  • 멀티클라우드 아키텍처 설계 경험
  • 대용량 실시간 데이터 처리 노하우
  • AWS DMS 심화 활용법
  • BigQuery 최적화 기법

비즈니스 임팩트

  • 데이터 기반 의사결정 문화 확산
  • 실시간 분석 환경 구축
  • 운영 효율성 극대화
  • 비용 최적화 달성

이 프로젝트를 통해 데이터 엔지니어링의 전 영역을 경험하며, 기술적 우수성과 비즈니스 가치를 동시에 달성하는 능력을 입증했습니다.