logo
logo
Kafka Connect Architecture
코드너리  |  2022. 11. 30
데이터 인프라
사용된 기술:
kafka-image
mysql-image
oracledb-image
postgresql-image
content

요약:

모든 인프라는 EKS에서 동작하고 있으며, 안정적인 운영 및 리소스 최소화를 목표로 아래와 같이 작업했습니다.

  1. 모든 인프라는 Helm 차트 이용
    • Confluent에서는 이미 kafka eco system에 대한 helm을 제공하고 있으며, 이를 마이리얼트립 요구 사항에 맞춰서 아래와 같이 수정해 사용하고 있습니다.에서 동작하고 있으며, 안정적인 운영 및 리소스 최소화를 목표로 작업했습니다.
  2. kowl을 이용한 클러스터 관리
    • Confluent helm에서 제공하는 ui 툴인 Confluent Control Center은 굉장히 많은 기능을 제공하는 훌륭한 툴이지만 ,사용상의 제약이 있어 오픈소스로 제공되는 kowl을 이용해서 커넥터 클러스터를 관리하고 있습니다.
  3. Schema registry를 이용한 스키마 관리
    • 마이리얼트립 CDC의 1차 목표는 서비스 DB와 분석용 DB를 완전히 분리하는 것이기 때문에, 실 서비스 DB의 데이터를 bigquery로 전송하는 것을 최우선으로 하고 있습니다. 이러한 이기종 간 데이터 전송 시 스키마 관리가 정확하게 되지 않으면 소스의 뒷단까지 에러가 전파될 수 있기 때문에 schema registry를 이용해 잘못된 데이터가 들어오지 않도록 관리합니다.
  4. 커넥트 클러스터 모니터링
    • Kafka Connect 특성상 커넥터에서 N개의 task를 생성해 데이터를 전송하게 됩니다. 하지만 각 task의 실패가 커넥터로 전파되지 않기 때문에, 커넥터 상태는 정상이지만, 하위 task의 상태가 failed인 경우가 종종 발생하게 됩니다. 이러한 이슈 때문에 에러 발생을 파악하기 위해서는 커넥터와 task의 상태를 모두 모니터링해야 합니다.
  5. Fargate를 이용한 serverless 운영
    • AWS 에서 제공해주는 EKS 환경은 EC2와 동일하게 직접 서버를 관리해주어야 합니다. (AMI, 노드 수, ..) 이러한 단순 작업 또한 운영 리소스가 들어가기 때문에 fargate를 이용해 CDC 플랫폼을 배포 및 운영 하고 있습니다.
Copyright © 2024. Codenary All Rights Reserved.