PostgreSQL 데이터를 Elasticsearch로, Kafka Connect CDC 파이프라인 구축 사례
PostgreSQL 데이터를 Elasticsearch로 동기화하는 기존 파이프라인의 복잡성을 해결하기 위해 Kafka Connect를 도입함
Debezium과 ES Sink Connector를 활용하여 CDC 파이프라인을 구축하고, 데이터 변환을 위한 Python 앱을 추가함
ES 인덱싱 속도 47% 향상 및 정합성 문제 해결, 파이프라인 단순화로 문제 해결 용이성 확보
Kafka Connect 아키텍처 심층 분석
Kafka Connect는 Source Connector와 Sink Connector를 사용하여 데이터 파이프라인을 구축한다. 구체적으로 Debezium은 PostgreSQL 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 기반의 배포 자동화가 가능하며, Debezium과 ES Sink Connector 설정을 통해 CDC 파이프라인을 구축할 수 있다.