Kafka 클러스터

1 minute read

  1. 개요
    1. 카프카 클러스터를 실행하기 위해서는 주키퍼가 필요하다.
    2. 주키퍼의 서로 다른 znode에 클러스터를 지정하면 된다.
    3. root znode에 각 클러스터별 znode를 생성하고 클러스터 실행 시 root 가 아닌 하위 znode로 설정한다.
    4. 카프카 3.0 부터는 주키퍼가 없어도 클러스터 동작이 가능하다.
  2. 클러스터를 운영하는 방법
    1. 아파치 카프카 클러스터를 서버에 직접 설치하고 운영하는 것은 가장 전통적이고 기본적인 방법이다. 이 방법으로는 각종 설정을 직접 컨트롤하여 세부적인 서버 설정을 통해 최고의 성능으로 최적의 클러스터를 활용할 수 있다.
    2. 그러나 그만큼 최적화된 카프카 클러스터를 사용하기위해서는 노하우가 필요하기 때문에 수많은 시행착오를 거쳐야한다. 특히 각종 보안 설정이나 모니터링 도구를 선택하고 설치, 운영할 때는 수많은 선택지 때문에 어려움을 겪을 수도 있다. 이러한 운영상 시행착오를 줄이면서 최고의 카프카 클러스터를 빠르게 설치하여 안전하게 운영하기 위해 Saas를 도입할 수 있다.
  3. 운영 방법에 따른 서비스 형태들
    1. 온프레미스
      1. 사용자가 자체적으로 보유한 전산실 서버에 직접 설치해 운영
      2. 기업 상황에 맞게 하드웨어를 커스터마이징 구성 가능
      3. 초기 도입 비용, 운영 및 관리를 위한 유지보수 비용 발생
    2. IaaS
      1. 물리/가상 컴퓨팅 리소스를 발급받아서 사용
      2. 온라인 스토리지, 데이터베이스 등도 포함됨
      3. 사용자가 운영체제, 애플리케이션 등을 직접 설정, 배포, 운영
    3. Paas
      1. 애플리케이션 개발 및 실행 환경을 제공
      2. 사용자는 컴퓨팅 리소스 관리를 신경 쓰지 않아도 됨
    4. Saas
      1. 소프트웨어의 배포, 실행을 업체에서 관리하고 기능을 제공
      2. 소프트웨어 관리를 업체에 위임하고 기능만 사용할 때 유용
  4. 서비스 형태별 카프카 운영 방법
    1. 온프레미스
      1. 물리장비, 네트워크 설치 구성 수행
      2. 오픈소스 카프카를 설치, 운영
      3. 또는 기업용 카프카(컨플루언트 플랫폼 등) 설치, 운영
    2. Iaas
      1. AWS, GCP와 같은 클라우드 서비스를 통해 물리/가상 컴퓨팅 리소스를 발급
      2. 컴퓨팅 리소스에 오픈소스 카프카를 설치, 운영
      3. 또는 기업용 카프카(컨플루언트 플랫폼 등) 설치, 운영
    3. Saas
      1. 컨플루언트 클라우드 또는 AWS MSK는 대표적인 Saas
      2. 다양한 주변 생태계(ksqlDB, 모니터링 도구 등)를 옵션으로 제공
  5. 오픈 소스 카프카를 직접 설치하여 운영하는 경우
    1. 카프카는 전송된 데이터를 모두 파일 시스템에 저장하고 대규모 데이터 통신이 일어나기 때문에 고성능의 하드웨어를 사용해야 한다.
    2. 컨플루언트에서는 상용 환경의 카프카 클러스터 운영시 브로커의 하드웨어를 다음과 같이 설정하는 것을 추천한다.
      1. 메모리 : 32GB 머신에 힙 메모리 6GB로 설정. 나머지는 OS의 페이지 캐시 영역으로 활용
      2. CPU : 24core 머신 사용. 만약 SSL과 같은 보안 설정 사용할 경우 추가 더 높은 사용 필요
      3. 네트워크 : 사용하는 데이터 통신량에 맞춰 설정
      4. 파일시스템 : XFS 또는 ext4
    항목 개발 환경 상용환경
    브로커 갯수 5개 10개
    메모리 16GB(heap memory 6GB) 32GB(heap memory 6GB)
    CPU 16core 24core
    디스크 사용량에 따라 다름 사용량에 따라 다름
-->

Categories:

Updated:

Comments