Kafka 설치없이 더 쉽고 유연한 데이터 마이그레이션 실현하기

작성자: Manni Wood
게시일: 2025년 6월 18일

새로운 데이터베이스 플랫폼을 도입할 때 가장 먼저 해야 하는 일 중 하나는 기존 시스템의 데이터를 새로운 플랫폼으로 옮기는 작업입니다.

이전까지 데이터 마이그레이션은 쉽지 않은 일이었지만, EDB Postgres AI는 새롭게 강화된 **하이브리드 관리 기능(Hybrid Management)**과 **데이터 마이그레이션 서비스(DMS)**를 통해 이 과정을 훨씬 간단하고 자동화된 방식으로 처리할 수 있도록 도와줍니다.


단순한 마이그레이션부터 복잡한 실시간 복제까지

단순한 Postgres 간 마이그레이션의 경우 pg_dumppg_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를 사용하려면 몇 가지 설정이 필요했습니다:

  1. Postgres에서 Logical Replication을 활성화
  2. Debezium 사용자 및 마이그레이션 역할 생성
  3. 마이그레이션 대상 테이블에 권한 부여
  4. 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 설정 이후의 과정은 훨씬 수월합니다.

  1. Hybrid Manager의 Migration Sources 메뉴에서 마이그레이션을 생성

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

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

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


제가 소스 DB에서 INSERT/DELETE 등 조작을 수행하면, 대상 DB에서도 SELECT 결과가 즉시 반영됨을 확인할 수 있었습니다.


마이그레이션 실험을 통한 자신감 향상

cdcreader가 한 번 설정되면 이후의 마이그레이션 실험은 훨씬 간편해집니다:

  • 기존 마이그레이션을 삭제하고 새로 구성하거나
  • Pg 클러스터를 제거 및 재생성 후 다시 마이그레이션을 시작하거나
  • 데이터를 포함하지 않은 스키마만 재로드하고 재시작하는 것도 가능

이러한 반복 실험은 실제 프로덕션 환경의 전환 전략을 세우는 데 큰 자신감을 부여합니다.

특히 마이크로서비스 기반의 소규모 DB에서는 신속한 마이그레이션과 다양한 테스트가 가능하므로, 새로운 Postgres 인스턴스로의 전환 전에 철저한 검증이 가능합니다.


결론: 더 쉬운 마이그레이션, 더 빠른 전환

EDB Postgres AI는 데이터 이전의 복잡성을 제거하고, 실시간 스트리밍까지 포함된 현대적인 마이그레이션 경험을 제공합니다.
Kafka, Zookeeper를 직접 운영할 필요 없이도 실시간 CDC 기반 마이그레이션을 쉽게 구현할 수 있어,
Oracle에서 Postgres로의 전환이나 버전 업그레이드, 온프레미스에서 클라우드로의 이동 등을 고려하는 모든 조직에 탁월한 선택지가 될 것입니다.


더 많은 정보와 실습 가이드를 확인하려면


문의 메일: salesinquiry@enterprisedb.com