[BE] Kafka 클러스터 운영

지구🌍·2022년 8월 25일

BE

목록 보기
3/3
post-thumbnail

1. 카프카 클러스터 운영 방법

아파치 카프카 클러스터

  • 서버에 직접 설치하고 운영하는 가장 전통적이고 기본적인 방법
  • 설치, 운영할 때 어려움이 존재할 수 있으므로 SaaS 도입 추천

운영 방법에 따른 서비스 형태

  • 온프레미스
  • IaaS
  • PaaS
    • 런타임 제공
  • SaaS
    • 모든 서비스 제공
    • 클라우드 서비스 제공 업체에서 SW, Infra, Platform 모두 제공

설치 방법별 서비스 형태 종류

서비스 종류특징
온프레미스(On-premise)- 사용자가 자체적으로 보유한 서버에 직접 설치하여 운영
- 기업 상황에 맞게 하드웨어를 커스터마이징 구성 가능
- 초기 도입 비용, 운영 및 관리를 위한 유지보수 비용 발생
Iaas- 물리/가상 컴퓨팅 리소스 발급 받아 사용
- 온라인 스토리지, 데이터베이스도 포함
- 사용자가 운영체제, 애플리케이션등을 직접 배포, 설정, 운영
Paas- 애플리케이션 개발 및 실행환경을 제공
- 사용자는 컴퓨팅 리소스 관리를 신경쓰지 않아도 됨
SaaS- 소프트웨어의 배포, 실행을 업체에서 관리하고 기능 제공
- 소프트웨어 관리를 업체에 위임하고 기능만 사용할 때 유용

서비스 형태별 카프카 운영 방법

서비스 종류특징
온프레미스(On-premise)- 물리장비(서버)를 구매, 네트워크 설치 구성 수행
- 물리 장비 운영체제 설치 수행
- 오픈소스 카프카를 설치 운영 (Apache 2.0) 카프카 브로커, 컨슈머 등 포함
- 기업용 카프카(컨플루언트 플랫폼 등) 설치 운영, 유료, 튜닝 되어있음 DB Connector, 모니터링 툴등을 유료로 제공
Iaas- AWS, GDP와 같은 클라우드 서비스를 통해 물리/가상 컴퓨팅 리소스(서버)를 발급
- 컴퓨터 리소스에 오픈 소스 카프카 설치
- 기업용 카프카 설치, 운영
SaaS- 컨플루언트 클라우드 또는 AWS MSK는 대표적인 SaaS
- 다양한 주변 생태계(ksqlDB, 모니터링 도구) 옵션으로 제공

Iaas, 온프레미스 는 설치, 운영이 필요하기 때문에 노하우가 필요함
많은 기업에서는 IaaS를 사용함
SaaS 운영, 설치에 대해 사용자의 리소스 적음

2. 오픈소스 카프카를 직접 설치하여 운영하는 경우

IaaS, 온프레미스 환경

  • 고성능 하드웨어 필요
  • 메모리 : 32GB, 힙 메모리는 6GB, 나머지 OS 페이지 캐시영역
  • CPU : 24core
  • 디스크 : NAS 사용 X, RAID 10
  • 파일 시스템 : XFS or ext4
  • 브로커 개수 : 최소 3-5개 + a 이상 운영은 10개

3. SaaS형 아파치 카프카 소개

클라우드 서비스 - 컨플루언트

connector, ksqldb, rest proxy 등 소스들을 오픈소스로 공개하고 관리 중

제공 서비스

컨플루언트 클라우드컨플루언트 플랫폼
- 클라우드 기반 카프카 클러스터 => 완벽한 SaaS
- 120개 넘는 커넥터, ksqlDB, 스키마 레지스트리 온라인으로 제공
- 엔터프라이즈 수준의 보안 수준 제공
- 데이터 적재 제한 없음
- 온라인 웹 환경
- 온프레미스 기반 설치형 카프카 클러스터
- 개인정보, 결제정보등 클라우드 서비스를 이용할 수 없을 때 사용
- 컨플루언트 팀에서 지원, 학습 제공
- 단계별 스토리지 기능 제공
- GUI 기반 모니터링 시스템 제공

클라우드 서비스 - AWS MSK

완전 관리형의 고가용성 Apache Kafka 서비스
AWS 에서 설치, 추가 모니터링, 인프라 관리
카프카 클러스터를 생성, 업데이트, 삭제 등 운영요소를 대시보드로 제공
TLS 인증 보안 설정 가능
AWS를 사용중인 기업에서는 쉽게 도입 가능

4. SaaS형 아파치 카프카 장단점

장점

  1. 인프라 관리의 효율화
    카프카 클러스터 최소 3대 이상 서버 운영 -> 주키퍼, 브로커 최소 6대 모니터링 필요 -> 인력 필요
    SaaS를 사용하면 인프라 운영 감소
    지속적으로 데이터 처리할 수 있도록 서버 자동 관리
    브로커 개수만 설정하면 쉽게 스케일 아웃 가능

  2. 모니터링 대시보드 제공
    보통의 아파치 카프카 클러스터 대시보드 제공 X
    SaaS를 사용하면 브로커들이 제공하는 데이터를 수집, 적재 후 데이터 시각화

  3. 보안설정
    보안 설정 방안 제공하고 있지만 실질적으로 도입해서 사용하기엔 어려움 존재
    SaaS를 사용하면 클러스터 접속 시 보안 설정 기본 제공

단점

  1. 서비스 사용 비용
    SaaS를 제공하는 업체에 특정 요금제를 사용
    인력을 들여서 전부 설치해서 운영할 것인지 VS 비용을 들여서 서비스를 제공하는 SaaS를 사용할 것인지

  2. 커스텀마이징의 제한
    최적화 옵션이나 카프카 브로커 옵션과 같은 다양한 부분의 사용자 설정 수정 어렵

  3. 클라우드의 종속성
    클라우드 서비스 업체를 선택하고 클러스터를 운영해야함
    업체를 선책하고 클러스터를 운영하는 순간 프로듀서, 컨슈머들을 포함한 클러스터는 해당 서비스에 종속됨
    추 후의 있을 여러가지 이슈를 꼭 생각하고 도입해야함

SaaS형 카프카를 사용하는 것이나은 경우?

카프카 클러스터에 대한 운영 노하우가 부족하다면 SaaS형 카프카 선택하는 것이 좋음!


해당 내용은 데브원영님의 아파치 카프카 애플리케이션 프로그래밍을 공부하고 리뷰하는 글입니다.

profile
일취월장 하며 성장! 중! 공부한 것을 기록하자(^∀^●)ノシ

0개의 댓글