아파치 카프카 클러스터를 운영하는 방법

구분

온프레미스(on-premise) : 자체 전산실에 서버를 구축

Iaas(Infrastructure-as-a-Service) : 가상 컴퓨터 리소스를 발급받아서 사용 (AWS, GCP)

Paas(Platform-as-a-Service) : 애플리케이션 개발 및 실행환경 제공 (Aws Lambda)

Saas(Software-as-a-Service) : 소프트웨어 배포 및 실행만 담당

On-Premise

  • 오픈소스 카프카 설치 및 운영
  • 기업용 카프카(Confluent, 튜닝 목적으로 사용하기 위함) 사용

Iaas

  • 가상 컴퓨팅 리소스

Saas

  • 컨플루언트 클라우드, AWS MSK
  • 다양한 주변 생태계(ksqlDB, 모니터링 도구) 기능을 제공

오픈소스 카프카를 직접 설치시 꿀팁

전송된 데이터를 모두 파일시스템에 저장해야하고, 대규모 통신을 사용하는 카프카에 대해서 권장 사양

  • 메모리 : 32GB, 힙메모리6GB설정, 26GB는 OS의 페이지캐시영역으로 활용
  • CPU : 24코어
  • DISK : RAID10설정 사용. NAS는 사용불가능

개발용 카프카 클러스터

  • 브로커 5개, 16GB(힙6GB), 16Core

상용환경 카프카 클러스터

  • 브로커 10개, 32GB(힙6GB), 24Core

Saas형 아파치 카프카 소개

  1. Confluent Kafka : Saas형 카프카
  2. 스키마 레지스트리, ksqlDB등 ‘오픈소스 뿐만 아니라, 커넥터, 모니터링 지표 등 다양한 툴을 제공’
  3. AWS MSK : 클라우드 서비스Iaas였으면 CLI환경에서 한땀한땀 해야하는 일들을, MSK에서 제공하는 웹대시보드에서 바로설정가능
  4. 생성, 업데이트, 삭제 등과 같은 운영요소를 대시보드를 통해서 제공

Saas형 카프카의 장단점

장점

  1. Scaliable에 강점을 가짐
    • 일반적으로 운영할때 브로커3대 + 주키퍼3대 이상으로 운영함
    • 만약 브로커들 중 일부에 이슈가 발생하여, 서버를 재시작 하더라도 크게 신경안써도됨
    • Saas서비스가 자동적으로 이슈를 감지하여, 클러스터를 복구하기 때문
    • 브로커 개수만 설정하여 쉽게 스케일 아웃할수 있는것이 장점
  2. 대시보드
    • 브로커들이 제공하는 지표들을 수집, 적재, 대시보드, 시각화까지 한번에 해준다
  3. 보안설정
    • 인증서, 인프라, 보안설정 모두 다 자동으로 해준다

단점

  1. 서비스 사용 비용
  2. 커스터마이징의 제한
    • 서버의 최적화 옵션이 전부 ‘업체기준으로 맞춰져서' 나오기때문에, 이걸 커스터마이징할때 오히려 불편함
  3. 클라우드 종속성
    • 멀티 클라우드(2개 이상의 클라우드) 혹은 하이브리드 클라우드(사내서버와 퍼블릭클라우드를 함께사용) 할때는 클라우드 종속성을 탈피하기 어려움

그럼에도 불구하고 카프카 클러스터에 대한 운영 노하우가 부족한데, 빠르게 클러스터 인프라를 구축하고 활용할때는 Saas형태로 많이들 사용한다

jjongguet