아파치 카프카 클러스터를 운영하는 방법
구분
온프레미스(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형 아파치 카프카 소개
- Confluent Kafka : Saas형 카프카
- 스키마 레지스트리, ksqlDB등 ‘오픈소스 뿐만 아니라, 커넥터, 모니터링 지표 등 다양한 툴을 제공’
- AWS MSK : 클라우드 서비스Iaas였으면 CLI환경에서 한땀한땀 해야하는 일들을, MSK에서 제공하는 웹대시보드에서 바로설정가능
- 생성, 업데이트, 삭제 등과 같은 운영요소를 대시보드를 통해서 제공
Saas형 카프카의 장단점
장점
- Scaliable에 강점을 가짐
- 일반적으로 운영할때 브로커3대 + 주키퍼3대 이상으로 운영함
- 만약 브로커들 중 일부에 이슈가 발생하여, 서버를 재시작 하더라도 크게 신경안써도됨
- Saas서비스가 자동적으로 이슈를 감지하여, 클러스터를 복구하기 때문
- 브로커 개수만 설정하여 쉽게 스케일 아웃할수 있는것이 장점
- 대시보드
- 브로커들이 제공하는 지표들을 수집, 적재, 대시보드, 시각화까지 한번에 해준다
- 보안설정
- 인증서, 인프라, 보안설정 모두 다 자동으로 해준다
단점
- 서비스 사용 비용
- 커스터마이징의 제한
- 서버의 최적화 옵션이 전부 ‘업체기준으로 맞춰져서' 나오기때문에, 이걸 커스터마이징할때 오히려 불편함
- 클라우드 종속성
- 멀티 클라우드(2개 이상의 클라우드) 혹은 하이브리드 클라우드(사내서버와 퍼블릭클라우드를 함께사용) 할때는 클라우드 종속성을 탈피하기 어려움
그럼에도 불구하고 카프카 클러스터에 대한 운영 노하우가 부족한데, 빠르게 클러스터 인프라를 구축하고 활용할때는 Saas형태로 많이들 사용한다
'DATA Engineering > Kafka' 카테고리의 다른 글
챕터4. 기타) 카프카 실습 환경 구성 (0) | 2022.07.20 |
---|---|
섹션4. 카프카 CLI 활용 (0) | 2022.07.20 |
에러해결 kafka : Configured zookeeper. connect may be wrong. (0) | 2022.07.12 |
zero-copy 대신에 io_uring (1) | 2022.07.08 |
Zero-Copy는 왜 빠를까? (Kafka) (0) | 2022.07.08 |