PostgreSQL 데이터를 Elasticsearch로, Kafka Connect CDC 파이프라인 구축 사례

by DD
7개월 전
조회수 17

PostgreSQL 데이터를 Elasticsearch로 동기화하는 기존 파이프라인의 복잡성을 해결하기 위해 Kafka Connect를 도입함

DebeziumES Sink Connector를 활용하여 CDC 파이프라인을 구축하고, 데이터 변환을 위한 Python 앱을 추가함

ES 인덱싱 속도 47% 향상 및 정합성 문제 해결, 파이프라인 단순화로 문제 해결 용이성 확보

Kafka Connect 아키텍처 심층 분석

Kafka ConnectSource ConnectorSink Connector를 사용하여 데이터 파이프라인을 구축한다. 구체적으로 DebeziumPostgreSQL CDC 이벤트를 캡처하여 Kafka 토픽으로 전송한다. 따라서 ES Sink Connector는 해당 토픽을 컨슘하여 Elasticsearch 인덱싱을 수행한다.

기존 파이프라인 vs Kafka Connect: 트레이드오프

기존 파이프라인은 복잡성과 장애 지점이 많았지만, Kafka Connect가용성확장성을 제공한다. Logstash, NiFi 등 다른 툴 대비 Kafka 생태계와의 통합이 용이하다. 반면, Kafka Connect 설정 및 관리에 대한 학습 비용이 존재하며, Debezium 설정 시 PostgreSQL 설정을 주의해야 한다.

실전 적용 가이드: Strimzi를 활용한 배포

Strimzi를 사용하면 Kubernetes 환경에서 Kafka Connect를 쉽게 배포할 수 있다. 구체적으로 KafkaConnect, KafkaConnector 커스텀 리소스를 정의하여 Connector를 관리한다. 따라서 GitOps 기반의 배포 자동화가 가능하며, DebeziumES Sink Connector 설정을 통해 CDC 파이프라인을 구축할 수 있다.

PostgreSQL to ES: (1) Kafka Connect CDC 파이프라인 구성