Confluent Cloud Kafka란? (아파치 카프카 vs 컨플루언트 카프카)
대량의 데이터를 다룬다면 카프카가 거의 필수라고 말할 만큼, 카프카는 요즘 대세이다. 하지만 카프카를 실제로 운영하는 데에는 많은 노하우가 필요하다. 토픽 삭제 정책, bootstrap(부트스트랩) 접근 권한 등과 같은 운영 이슈는 노하우가 없다면 시행착오를 많이 겪어야 되는 과정이다. 이러한 시행착오와 운영성 이슈를 해결하고 싶다면, 아래의 SaaS 카프카 플랫폼이 도움이 될 것이다.
카프카에 대한 기본 개념은 아래 글을 참고하면 좋다.
카프카 SaaS 서비스
- AWS의 MSK (Managed Streaming for Kafka)
- Confluent의 Cloud Kafka (Confluent Cloud)
위 서비스들은 카프카 서버를 직접 구축하지 않아도 카프카를 SaaS 형태로 사용할 수 있는 서비스이다.
이 중 Confluent사의 클라우드 카프카에 대해 알아보자.
Apache kafka와 Confluent Kafka의 차이?
컨플루언트사의 SaaS 카프카에 대해 알아보기 앞서, 아파치 카프카와 컨플루언트 카프카의 차이는 무엇일까?
우선, Confluent(컨플루언트)사는 실리콘밸리에 있는 빅데이터 회사로, 아파치 카프카의 최초 개발자들(제이 크랩스 등)이 설립한 회사이다. 컨플루언트는 아파치 카프카를 기반으로 하는 데이터 스트리밍 플랫폼으로써, 컨플루언트 카프카라고 불리는 것은 컨플루언트 플랫폼이 포함된 가장 완전한 카프카의 배포판이라고 생각하면 된다.
아파치 카프카는 자바 클라이언트를 포함하고 있고, 컨플루언트 카프카는 자바 외의 다른 언어용 클라이언트도 포함하고 있다. 따라서 자바 외의 다른 언어를 사용하고 싶다면, 컨플루언트 플랫폼을 사용해야 한다.
Confluent의 SaaS 카프카 플랫폼
컨플루언트는 주로 아파치 카프카의 프리미엄 버전을 고객에게 제공하고 있다. 설치형과 SaaS형이 있는데, 그 중 SaaS형에 대해 알아보자.
SaaS란?
- Software as a Service (서비스로서의 소프트웨어)
- 소프트웨어를 제공하는 클라우드를 의미한다.
컨플루언트에서 제공하는 SaaS형 카프카는 완전 관리형 SaaS형이기 때문에, 클릭 몇 번 만으로 서버 구축이 완성된 카프카 클러스터를 사용할 수 있다. 이전에는 개발자들이 직접 서버를 구축하고, zookeeper를 설치하거나 각종 스크립트 명령어를 통해 카프카를 실행해야했다. 이렇게 SaaS를 사용하게 되면 대부분의 동작이 웹 인터페이스를 통해 쉽고 간편하게 사용할 수 있으므로, 클러스터 운영에 들어가는 개발자의 리소스를 줄이는 데에 좋다. 당장에 개발자의 리소스가 부족하다거나, 스트리밍 서비스를 빨리 만들어야 하는 스타트업 같은 회사에 유용하다.
컨플루언트 사이트에 들어가보면 사용하고 싶은 SaaS 카프카의 클라우드 종류를 선택할 수 있다. AWS(Amazon Web Services)/GCP(Google Cloud Platform)/Azure 중 하나를 선택하면 된다. 대부분의 SaaS 서비스는 자체 구축한 on-premise 서버를 기준으로 사용하거나 특정 클라우드 하나만 사용하는데, 이렇게 고객이 직접 클라우드 서비스를 선택하여 사용하는 SaaS 서비스는 흔치 않다. 이는 컨플루언트에서 cloud region간의 latency 문제를 해소하기 위해 노력한 결과 같다.
이렇게 만든 카프카 클러스터는 confluent의 웹 대시보드를 통해 이루어진다. 웹 대시보드에서는 토픽 생성/삭제, 커넥터 등록, KSQL사용 등 카프카를 운영할 때 필요한 다양한 기능들이 제공된다.
Confluent의 SaaS 카프카 플랫폼 - 가격과 성능
클라우드 카프카를 사용한다면 보안 이슈는 없는지, SLA(서비스의 성능과 가용성 등 일정한 수준 보장범위)나 가격도 고려해서 결정해야 한다. SaaS형 컨플루언트 카프카를 사용하는 데 있어서 가장 중요한 가격과 스펙에 대해 알아보자.
- 가격
- 서비스 시간당 사용량 + 서버 사용량(데이터 사용료) - 성능
- 종류: Basic / Standard / Dedicated
- Basic과 Standard의 차이점은 single available zone을 사용하는지, multi available zone을 사용하는지이다. 클라우드 서비스에서는 고가용성을 위해 multi available zone을 사용하는데, 이는 AWS의 MSK에서도 동일한 스펙을 갖는다. single available zone을 사용하면 available zone의 장애로 인해 데이터가 유실되거나 클러스터를 못 쓰게 되는 경우도 있으므로, 유실되면 안 되는 데이터를 다루는 경우라면 Standard 이상의 서비스를 사용해야 한다. 만약 추가적인 처리량이 필요하거나 더 많은 스토리지를 사용하고 싶다면 Dedicated를 사용하면 된다.
(출처: 유튜브 데브원영 DVWY)
'Kafka' 카테고리의 다른 글
[Kafka] 아파치 카프카 스트림즈란? (Apache Kafka Streams) (0) | 2022.02.21 |
---|---|
[Kafka] 카프카 lag(랙) 간단한 설명 (Consumer Lag, Burrow) (0) | 2022.02.19 |
[Kafka] 카프카 기본 개념_3 (소스 커넥트, 싱크 커넥트, 커넥터) (0) | 2022.01.31 |
[Kafka] 카프카 기본 개념_2 (토픽, 파티션, 세그먼트, 리플리케이션, 리더-팔로워) (0) | 2022.01.31 |
[Kafka] 카프카 기본 개념_1 (브로커, 프로듀서, 컨슈머, 메시지 + 주키퍼) (0) | 2022.01.31 |