티스토리 뷰

 

*본 포스팅은 인프런 [데브원영]님의 아파치 카프카 프로그래밍 강의 세션 3을 수강하고 이를 참고해 작성했습니다. 

 

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! |

데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고

www.inflearn.com

 

 

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

- 온프레미스(on-premise): 사용자가 자체적으로 보유한 전산실 서버에 직접 설치해 운영한다. 기업 상황에 맞게 HW 커스터마이징이 가능하고, 초기 도입 비용 및 유지 보수 비용이 발생한다.

- IaaS(Infrastructure-as-a-Service): 물리/가상 컴퓨팅 리소스를 발급받아 사용한다. 사용자가 운영체제, 애플리케이션 등을 직접 설정, 배포, 운영한다.

- PaaS(Platform-as-a-Service): 애플리케이션 개발 및 실행 환경을 제공한다. 사용자는 컴퓨팅 리소스를 신경 쓰지 않아도 된다. 

- SaaS(Software-as-a-Service): 소프트웨어 배포, 실행을 업체에서 관리하고 기능을 제공한다. 

 

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

서비스 종류 카프카 운영 방법
온프레미스
(on-premise)
- 물리 장비 구매, 네트워크 설치 구성 수행
- 물리장비 운영체제 설치
- 오픈소스 카프카 혹은 기업용 카프카(Confluent)를 설치, 운영
IaaS
(Infrastructure-as-a-Service)
- AWS, GCP 같은 클라우드 서비스를 통해 물리 컴퓨팅 리소스 발급
- 컴퓨팅 리소스에 오픈소스 카프카 혹은 기업용 카프카(Confluent)를 설치, 운영
SaaS
(Software-as-a-Service)
- 예: 컨플루언트 클라우드 또는 AWS MSK
- 다양한 주변 생태계(ksqlDB, 모니터링 도구)를 옵션으로 제공
- 노하우가 없을 때 유용하다. 

 

3. 오픈소스 카프카

- IaaS 또는 온프레미스 환경에서 카프카 클러스터를 설치하여 운영하는 것이 가장 흔한 운영 방식이다. 카프카는 전송된 데이터를 모두 파일 시스템에 저장하고 대규모 데이터 통신이 일어나기 때문에 고성능 하드웨어를 사용해야 한다.

- 컨플루언트에서 권장하는 브로커의 하드웨어 스펙은 다음과 같다. 메모리 32G(힙 메모리는 6G), CPU 24  코어, 디스크 RAID 10으로 설정된 것, 파일 시스템은 XFS 또는 ext4

 

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

- 컨플루언트: 카프카를 고안한 제이크랩스와 그의 동료들이 설립한 회사로 아파치 카프카의 생태계를 가꾸고 발전시키는 데에 선구적인 역할을 하고 있다. 스키마 레지스트리, ksqlDB 등의 오픈소스를 공개 관리하며 카프카 활용 범위를 넓히고 있다.

 

컨플루언트 클라우드 컨플루언트 플랫폼
- 클라우드 기반 카프카 클러스터
- GCP, AWS 등 클러스터 설치 위치 지정 가능
- 데이터 적재 제한 없음
- 온프레미스 기반 설치형 카프카 클러스터
- GUI 기반 모니터링 시스템 제공

 

- AWS MSK: AWS에서 제공하는 SaaS형 아파치 카프카 서비스로 AWS에서 카프카 클러스터 운영 요소를 대시보드를 통해 제공한다. 보안 접속을 위한 TLS 인증을 제공하고, 엔지니어가 직접 카프카 버전을 선택할 수 있는 덕분에 버전 차이로 인한 서비스 연동 이슈를 발생시키지 않고 안전하게 클러스터를 사용할 수 있다.

 

5. SaaS로 카프카 클러스터를 운영할 경우 장단점

[ 장점 ]

 

- 인프라 관리의 효율화: 카프카 SaaS 서비스를 사용하는 경우 브로커가 올라가는 서버는 자동으로 관리되므로 인프라 운영 관련 역할에서 자유로울 수 있다. SaaS 서비스가 이슈를 감지해 이슈가 생긴 서버를 제외하고 신규 장비에 브로커를 실행하여 클러스터를 복구하므로 서버 재시작에 관해 운영자가 크게 신경 쓰지 않아도 된다. 

 

- 모니터링 대시보드 제공: SaaS형 카프카에서는 자동화되어 만들어진 클러스터로부터 운영에 필요한 지표들을 수집하고 그래프로 보여주는 옵션을 제공한다. 만약 직접 클러스터를 운영하면 지표를 저장할 저장소를 구축하고, 대시보드를 운영하기 위해 추가 플랫폼을 설치, 운영해야 하는 반면, SaaS형 카프카는 추가 플랫폼 설치 필요 없이 효과적으로 지표를 수집하고 대시보드화하여 데이터를 시각화할 수 있다.

 

- 보안 설정: SaaS형 카프카는 클러스터 접속 시 보안 설정을 기본으로 제공함으로써 인가된 사용자만 클러스터에 접근할 수 있도록 한다.

 

[ 단점 ]

- 비싼 비용: AWS MSK의 경우 3대의 브로커로 인스턴스(kafka.m5.xlarge: CPU 4, 메모리 16G)들을 구성하는 경우 한 달에 1,080달러 한화 약 120만 원의 비용이 발생한다. 이는 직접 서버를 발급하고 설치하는 것보다 2배 이상 비싸다.

 

-커스터마이징의 제한: SaaS 서비스는 인프라부터 설치까지 모든 부분이 자동화되어 있고 정해진 아키텍처가 있으므로 상세 설정 커스텀이나 아키텍처 변화가 매우 어렵다. 특히 멀티 클라우드나 하이브리드 클라우드 형태로 클러스터를 구성하는 것은 불가능하다.

 

-클라우드 종속성: SaaS형 카프카는 클러스터와 관련된 모든 애플리케이션이 클라우드 서비스에 종속되므로 다른 업체로 옮기는 것이 불가능하다. 

 

정리하자면,
- 운영 노하우가 부족한 상황
- 빠르게 인프라를 구축해야 하는 경우
- 운영상 리소스 낭비를 원치 않는 경우
등의 상황에서는 SaaS 카프카를 사용하는 것이 낫다.

 

But, 구축 비용과 운영상 이슈 등의 다양한 조건을 다방면으로 면밀히 검토하는 것이 필수다! 

 

 

The End.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함