반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

간단한 개발관련 내용

CHAPTER 10: 클러스터간 데이터 미러링하기 본문

IT 책/카프카 핵심 가이드

CHAPTER 10: 클러스터간 데이터 미러링하기

vincenzo.dev.82 2024. 12. 11. 10:01
반응형

10.1 클러스터간 미러링 활용 사례

Kafka의 클러스터간 미러링은 여러 목적을 위해 사용됩니다. 주요 활용 사례는 다음과 같습니다:

  • 지역 및 중앙 클러스터:
    데이터를 로컬 클러스터에서 수집하고 중앙 클러스터로 집적하는 구조입니다. 이를 통해 데이터 일관성과 분석에 유용합니다.
  • 고가용성과 재해 복구 (DR):
    한 클러스터에 장애가 발생했을 때 미러링된 클러스터로 페일오버를 수행해 가용성을 유지합니다.
  • 규제 준수:
    국가 및 지역별 규제에 따라 데이터를 물리적으로 분리해야 하는 경우 미러링을 통해 요구사항을 충족할 수 있습니다.
  • 클라우드 마이그레이션:
    온프레미스에서 클라우드로 이전할 때 데이터를 안전하게 이전할 수 있습니다.
  • 엣지 클러스터 데이터 집적:
    엣지에서 수집한 데이터를 중앙 클러스터로 전송해 데이터 분석 및 머신러닝에 활용합니다.

10.2 다중 클러스터 아키텍처

10.2.1 데이터 간 통신의 현실적 문제들

클러스터 간 데이터를 복제할 때 다음과 같은 문제들이 발생합니다:

  • 높은 지연 (High Latency): 물리적 거리와 네트워크 속도에 따라 전송 지연이 발생합니다.
  • 제한된 대역폭 (Limited Bandwidth): 네트워크 자원의 한계로 인해 전송 속도가 저하될 수 있습니다.
  • 높은 비용 (Higher Cost): 대규모 데이터 전송은 비용 부담이 클 수 있습니다.

10.2.2 허브-앤-스포크 아키텍처

**허브-앤-스포크 (Hub-and-Spoke)**는 중앙 허브 클러스터를 중심으로 데이터를 다른 여러 스포크 클러스터로 전송하는 구조입니다.

  • 장점: 중앙에서 데이터 통합 및 관리가 용이합니다.
  • 단점: 허브에 부하가 집중될 수 있습니다.

10.2.3 액티브-액티브 아키텍처

두 개 이상의 클러스터가 동시에 데이터를 읽고 쓰는 구조입니다.

  • 장점: 고가용성과 낮은 지연 제공
  • 단점: 데이터 충돌 및 일관성 관리가 필요합니다.

10.2.4 액티브-스탠바이 아키텍처

한 클러스터가 활성 상태로 데이터를 처리하고, 다른 클러스터는 대기 상태로 복제 데이터를 유지합니다.

재해 복구 (DR) 고려사항:

  1. 데이터 유실과 불일치: 예상치 못한 장애로 데이터 손실이 발생할 수 있습니다.
  2. 애플리케이션 시작 오프셋: 장애 복구 후 데이터를 어디서부터 읽을지 결정해야 합니다.
    • 자동 오프셋 설정
    • 오프셋 토픽 복제
    • 시간 기반 장애 복구
    • 오프셋 변환

복구 이후 클러스터 관리

재해 복구 후 클러스터를 정상 상태로 복원해야 하며 클러스터 디스커버리 기능이 중요합니다.

10.2.5 스트레치 클러스터

스트레치 클러스터는 물리적으로 분산된 브로커를 단일 Kafka 클러스터로 묶어 운영하는 구조입니다.

  • 장점: 일관된 클러스터 관리와 데이터 접근 제공
  • 단점: 네트워크 안정성에 의존합니다.

10.3 아파치 카프카의 미러메이커

Kafka의 MirrorMaker는 클러스터 간 데이터를 미러링하기 위한 기본 도구입니다.

10.3.1 미러메이커 설정하기

  1. 복제 흐름: 데이터를 소스 클러스터에서 타겟 클러스터로 복제
  2. 미러링 토픽: 선택적으로 일부 토픽만 미러링할 수 있습니다.
  3. 컨슈머 오프셋 마이그레이션: 오프셋 데이터를 함께 복제해 컨슈머가 지속해서 읽을 수 있도록 합니다.
  4. 토픽 설정 및 ACL 마이그레이션
  5. 커넥터 태스크와 설정 접두어: 각 작업의 태스크 수와 설정을 정의합니다.

10.3.2 다중 클러스터 토폴로지

MirrorMaker는 다양한 클러스터 토폴로지를 지원합니다:

  • 단방향 복제
  • 양방향 복제
  • 다중 클러스터 허브 모델

10.3.3 미러메이커 보안

미러링된 데이터의 보안을 위해 TLS/SSL 암호화 및 SASL 인증을 설정해야 합니다.

10.3.4 프로덕션 환경 배포 및 모니터링

미러메이커의 안정적 운영을 위해 다음을 모니터링합니다:

  • Kafka Connect 상태 모니터링
  • 미러메이커 지표 모니터링: 네트워크 지연, 메시지 처리량 확인
  • 프로듀서 및 컨슈머 지표: 성능 병목과 오류 감지
  • 카나리아 테스트: 지속적인 복제 검증

10.3.5 미러메이커 튜닝하기

성능 최적화를 위해 다음 설정값을 조정합니다:

  • linger.ms, batch.size: 메시지 배치 최적화
  • max.in.flight.requests.per.connection: 동시 요청 수 조정
  • fetch.max.bytes: 한 번에 가져올 최대 메시지 크기
  • fetch.min.bytes, fetch.max.wait.ms: 효율적인 데이터 전송 조정

10.4 기타 클러스터간 미러링 솔루션

10.4.1 우버 uReplicator

  • 대규모 데이터 미러링을 위한 우버의 솔루션입니다.

10.4.2 링크드인 브루클린

  • 링크드인의 복제 최적화 도구로, 높은 가용성과 성능을 제공합니다.

10.4.3 컨플루언트 데이터 미러링 솔루션

  • 컨플루언트 리플리케이터: 엔터프라이즈 수준 미러링 기능
  • 멀티 리전 클러스터: 여러 리전에 걸쳐 고가용성을 보장합니다.
  • 클러스터 링킹: 클러스터 간 데이터 공유를 간소화하는 기능

10.5 요약

Kafka의 미러링은 클러스터 간 데이터 복제를 통해 고가용성, 재해 복구, 규제 준수, 클라우드 마이그레이션과 같은 다양한 요구사항을 해결합니다.

  • MirrorMaker는 클러스터 간 데이터를 복제하는 핵심 도구입니다.
  • 프로덕션 환경에서는 모니터링성능 튜닝이 중요합니다.
  • uReplicator, Brooklin, Confluent Replicator와 같은 대체 솔루션도 활용할 수 있습니다.

결론: 다중 클러스터 및 미러링 파이프라인은 신뢰성, 확장성, 그리고 재해 복구의 핵심이며 조직 전체의 데이터 전략에서 중요한 역할을 수행합니다.

반응형