Kafka 설치없이 더 쉽고 유연한 데이터 마이그레이션 실현하기
작성자: Manni Wood
게시일: 2025년 6월 18일
새로운 데이터베이스 플랫폼을 도입할 때 가장 먼저 해야 하는 일 중 하나는 기존 시스템의 데이터를 새로운 플랫폼으로 옮기는 작업입니다.
이전까지 데이터 마이그레이션은 쉽지 않은 일이었지만, EDB Postgres AI는 새롭게 강화된 **하이브리드 관리 기능(Hybrid Management)**과 **데이터 마이그레이션 서비스(DMS)**를 통해 이 과정을 훨씬 간단하고 자동화된 방식으로 처리할 수 있도록 도와줍니다.
단순한 마이그레이션부터 복잡한 실시간 복제까지
단순한 Postgres 간 마이그레이션의 경우 pg_dump
와 pg_restore
같은 친숙한 기본 툴로도 충분히 가능합니다. 하지만, 다음과 같은 복잡한 상황에서는 이야기가 달라집니다:
- Oracle에서 Postgres로 이전해야 하는 경우
- Postgres 버전 간 업그레이드 시, 기존 인스턴스를 지속적으로 복제하며 운영을 병행하고 싶은 경우
- 레거시 Oracle 데이터베이스에서 **하이브리드 매니저(Hybrid Manager)**에 호스팅된 Postgres로 데이터를 이전하고, 이후 발생하는 변경사항을 실시간으로 스트리밍하고 싶은 경우
물론, Kafka, Zookeeper, Debezium 같은 오픈소스 툴로도 구현은 가능합니다. 하지만 이 모든 툴을 직접 설치하고 운영하는 일은 막대한 인프라 비용과 전문 지식을 요구합니다.
반면, EDB Postgres AI의 마이그레이션 툴링은 이러한 복잡성을 사용자 대신 처리해줍니다.
실험: Postgres 16에서 EDB Postgres AI의 Postgres 17로 실시간 마이그레이션
제가 실험적으로 구성한 환경은 다음과 같습니다:
- 로컬 랩탑에 설치된 Postgres 16 (레거시 온프레미스 데이터베이스 시뮬레이션)
- EDB Postgres AI Hybrid Manager에 생성한 Postgres 17 클러스터 (목표 데이터베이스)
Postgres에서 Postgres로의 마이그레이션이므로, pg_dump
로 테이블 정의만 덤프한 후, psql
로 대상 Postgres 17에 로드했습니다. (Oracle에서 Postgres로의 이전 시에는 EDB의 전용 스키마 변환 도구를 사용할 수 있습니다.)
그 다음으로는 **EDB Change Data Capture Reader (cdcreader)**를 다운로드했습니다.
이 도구는 소스 데이터의 변경사항을 실시간으로 감지하고 EDB Postgres AI에 전송합니다.
이 과정에서 Kafka, Zookeeper, Debezium 스택이 사용되지만, 사용자는 이를 따로 설치하거나 설정할 필요가 없습니다.
cdcreader 설정 과정
cdcreader를 사용하려면 몇 가지 설정이 필요했습니다:
- Postgres에서 Logical Replication을 활성화
- Debezium 사용자 및 마이그레이션 역할 생성
- 마이그레이션 대상 테이블에 권한 부여
- SSL 활성화 필요
- 저는 Postgres를 수동 컴파일해서 사용 중이라, SSL을 활성화하고 self-signed 인증서를 생성해야 했습니다.
추가적으로:
- cdcreader는 Java 기반 애플리케이션이므로 JDK가 설치되어 있어야 합니다.
- **Hybrid Manager에서 마이그레이션 인증 정보(migration credentials)**를 다운로드해
cdcreader
가 대상 스택과 안전하게 통신할 수 있도록 설정해야 합니다. - cdcreader 실행 스크립트(
run-cdcreader.sh
)를 수정해 레거시 DB 경로 및 인증 정보를 반영해야 했습니다.
이러한 과정을 마친 후 ./run-cdcreader.sh
를 실행하면 Hybrid Manager UI의 Migration Sources 탭에 소스가 등록됩니다.

UI 기반 마이그레이션 구성
cdcreader 설정 이후의 과정은 훨씬 수월합니다.
- Hybrid Manager의 Migration Sources 메뉴에서 마이그레이션을 생성

2. 마이그레이션 대상 Postgres 17 인스턴스를 지정

- 마이그레이션할 테이블 선택 (저는 실험용으로 하나만 생성했기 때문에 선택은 간단했음)

3. 마이그레이션이 완료되면, 레거시 Postgres에서의 데이터 변경사항이 EDB Postgres AI의 대상 인스턴스로 실시간 반영됩니다.

제가 소스 DB에서 INSERT/DELETE 등 조작을 수행하면, 대상 DB에서도 SELECT
결과가 즉시 반영됨을 확인할 수 있었습니다.
마이그레이션 실험을 통한 자신감 향상
cdcreader가 한 번 설정되면 이후의 마이그레이션 실험은 훨씬 간편해집니다:
- 기존 마이그레이션을 삭제하고 새로 구성하거나
- Pg 클러스터를 제거 및 재생성 후 다시 마이그레이션을 시작하거나
- 데이터를 포함하지 않은 스키마만 재로드하고 재시작하는 것도 가능
이러한 반복 실험은 실제 프로덕션 환경의 전환 전략을 세우는 데 큰 자신감을 부여합니다.
특히 마이크로서비스 기반의 소규모 DB에서는 신속한 마이그레이션과 다양한 테스트가 가능하므로, 새로운 Postgres 인스턴스로의 전환 전에 철저한 검증이 가능합니다.
결론: 더 쉬운 마이그레이션, 더 빠른 전환
EDB Postgres AI는 데이터 이전의 복잡성을 제거하고, 실시간 스트리밍까지 포함된 현대적인 마이그레이션 경험을 제공합니다.
Kafka, Zookeeper를 직접 운영할 필요 없이도 실시간 CDC 기반 마이그레이션을 쉽게 구현할 수 있어,
Oracle에서 Postgres로의 전환이나 버전 업그레이드, 온프레미스에서 클라우드로의 이동 등을 고려하는 모든 조직에 탁월한 선택지가 될 것입니다.
더 많은 정보와 실습 가이드를 확인하려면