Aurora에서 binlog 대신 modified_at 컬럼 기반 CDC를 사용하는 이유

Q·2025년 5월 7일

RDBMS

목록 보기
9/11

1. 구현 및 운영이 단순함

  • binlog를 기반으로 한 CDC는 복잡한 구성(Debezium, Kafka, DMS 등)이 필요하며,
    별도 인프라 필요

  • 반면 modified_at 기반 CDC는 단순한 SQL 쿼리만으로 변경 데이터 추출 가능

SELECT * FROM orders WHERE modified_at > '2025-05-01 00:00:00';

2. Aurora의 binlog 보존 한계 극복

  • Aurora는 binlog 보존 기간이 짧아, 실시간 혹은 자주 수집하지 않으면 데이터 누락 위험이 있다.

  • modified_at은 데이터 내부에 변경 정보를 직접 저장하므로 오래된 변경 이력 보존 가능

3. 리소스 오버헤드 최소화

  • binlog는 디스크와 네트워크 I/O를 유발하며, 활성화하면 쓰기 성능에 부담을 줄 수 있다.

  • 반면 modified_at 방식은 기존 테이블과 인덱스만 잘 설계하면, 성능 영향을 최소화할 수 있다.

4. 삭제(Delete)에 대한 트레이드오프 감수

  • modified_at 방식은 기본적으로 Delete 감지는 어려움 하지만
    • 실제로 많은 시스템에서는 삭제 대신 status 필드로 soft delete 처리 (is_deleted, status = 'DELETED').
    • 혹은 삭제 이벤트는 별도 로그 테이블에 저장하여 보완

5. 보안 및 접근 제한 문제 회피

  • binlog 접근은 보안상 민감하며, RDS에서는 복잡한 권한 설정과 구성 요소 필요

  • 반면 modified_at 방식은 기존 애플리케이션 DB 사용자로도 충분히 접근이 가능해, 권한 관리가 수월

요약

modified_at 기반 CDC는 구현이 간단하고 운영이 쉬우며 binlog 대비 안정적으로 오래된 변경 이력을 추적할 수 있다는 장점이 있어 대다수의 ETL, DW 적재 작업에서 널리 사용되며 특히 Aurora처럼 binlog 제약이 있는 환경에서는 default choice로 선택한다.

profile
Data Engineer

0개의 댓글