[아파치 카프카 애플리케이션 프로그래밍] 카프카 클러스터

jj J·2023년 6월 29일
0

Kafka

목록 보기
2/3

운영 방법

  • 최적화된 카프카 클러스터를 사용하기 위해서는 수많은 시행착오 필요
  • 이런 시행착오를 줄이기 위해 SaaS 도입 가능

SaaS

  • 클라우드 서비스 제공업체가 소프트웨어와 인프라를 관리하면서 플랫폼을 제공하는 것
  • 세부 설정을 간편하게 할 수 있고, 네트워크/가상화 등 다양한 운영상 이슈는 업체에서 관리하기 때문에 매우 편리하게 이용할 수 있다

서비스 형태 별 카프카 운영

  • 온프레미스
    • 물리장비(서버) 구매, OS, 오픈소스 카프카 설치해 운영
    • 기업용 카프카(유료, 별도 추가 기능 제공) 운영
    • 고려할 부분과 유지보수 비용이 많이 발생
  • IaaS
    • AWS, GCP같은 클라우드 서비스를 통해 물리/가상 컴퓨팅 리소스 발급
    • 컴퓨팅 리소스에 오픈소스 카프카 설치, 운영
    • Scale out 필요 시 가상 리소스를 통해 유연하게 대응
  • SaaS
    • 컨플루언트 클라우드 또는 AWS MSK
    • 다양한 주변 생태계(ksqlDB, 모니터링 도구 등)을 옵션으로 제공

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

  • 요구사항에 따라 리소스 자동 확장
  • 120개가 넘는 커넥터, ksqlDB, 스키마 레지스트리 제공
  • 엔터프라이즈 보안 수준 제공

컨플루언트 플랫폼

  • 개인정보, 결제정보 등이 클라우드에 전송되면 안되는 산업군은 컨플루언트 플랫폼 활용 가능
  • 온프레미스 기반 설치형 카프카 클러스터
  • 단계별 스토리지 기능 제공
  • 구축 시 많은 리소스가 필요한 GUI 기반 모니터링 시스템 제공

클라우드 서비스 - AWS MSK

  • MSK(Managed Streaming for Apache Kafka)는 AWS에서 제공하는 SaaS형 아파치 카프카 서비스)
  • AWS 인프라에서 카프카 클러스터 생성, 업데이트, 삭제 등과 같은 운영 요소를 대시보드 통해 제공
  • 안전 접속 위해 TLS인증 보안 설정 가능
  • 카프카 버전을 직접 선택할 수 있어, 기존 운영 환경과의 버전 차이에 의한 서비스 연동 이슈를 발생시키지 않고 안전히 사용할 수 있음
  • AWS 인프라와 쉽게 연동할 수 있음

SaaS 카프카 운영 시 장점

  • 인프라 관리 효율화
    • 카프카 클러스터는 상용 환경에서 최소 3대 이상의 서버로 운영
    • 운영자는 3대 이상의 서버를 모니터링해야 한다는 것인데, SaaS 사용 시 인프라 운영 관련 역할에서 자유로워짐
    • SaaS 사용 시 브로커가 올라가는 서버를 자동으로 관리해주기 때문
    • 브로커 중 일부에 이슈가 발생하면 SaaS가 이슈를 감지해 이슈 서버를 제외하고 신규 브로커를 실행해 클러스터를 자동 복구해준다
    • 클러스터 데이터 사용량이 순간적으로 많아지더라도 서비스 제공 업체의 SaaS 대시보드에서 브로커 개수만 설정하여 쉽게 스케일 아웃 할 수 있다
    • 몇 분 뒤면 더 많은 양의 데이터를 소화할 수 있는 카프카 클러스터가 설정되어 안전하게 데이터를 처리할 수 있다

모니터링 대시보드 제공

  • SaaS 카프카에서는 자동화되어 만들어진 클러스터로부터 운영에 필요한 지표들을 수집하고 그래프로 보여주는 옵션이 제공됨
  • 직접 수집 지표를 저장할 저장소를 구축하고, 대시보드 플랫폼을 설치할 필요없이 클릭 몇 번으로 지표들을 그래프로 볼 수 있다

보안 설정

  • 보안 설정이 되지않은 클러스터의 경우 호스트와 포트 번호만 알면 모든 토픽의 데이터를 가져갈 수 있다
  • 또한, 어드민 API를 통해 악의적 공격도 가능함
  • 카프카 브로커는 SSL, ACL과 같은 다양한 보안 방안을 제공하지만, 종류 선정, 운영은 결코 쉽지 않다
  • SaaS 카프카에서는 클러스터 접속 시 보안 설정을 기본으로 제공하고, 인가된 사용자만 카프카 클러스터에 접근할 수 있도록 할 수 있다

SaaS 카프카 운영 시 단점

  • 서비스 사용 비용
    • SaaS 카프카 사용 시 AWS MSK의 경우 3대 브로커로 최소 사이즈 인스턴스 구성 시 일 (서울 기준) 4.5달러의 비용이 발생함
    • 동일 사양의 인스턴스를 직접 발급해 설치 운영하면 AWS MSK 사용 대비 2배 이상 저렴하다
    • 추가적으로 스토리지 요금과 데이터 전송 요금도 발생한다
    • 유지보수에 필요한 인력 비용과 비교 시 어떤게 좋은지는..
  • 커스터마이징 제한
    • 최적화나 카프카 브로커 옵션같은 상세 설정 적용이나 클러스터 아키텍처 변화가 필요한 경우 적용이 매우 어렵다
    • 특히 멀티 클라우드, 하이브리드 클라우드 형태로 카프카 클러스터를 구성하는 것은 SaaS형 카프카에서 불가능하다
  • 클라우드 종속성
    • 클라우드 서비스 업체를 선택하는 순간 클러스터와 관련된 모든 것은 해당 서비스에 종속된다
    • 더 나은 SaaS 업체가 생길 수도 있고, 카프카 운영상 추가 기능이 필요해 클러스터의 데이터와 연동을 온프레미스로 옮겨야할 수도 있다

결론

  • 카프카 클러스터에 대한 운영 노하우가 부족한 상태에서 빠르게 구축이 필요할 땐 SaaS형 카프카가 최고의 선택지가 될 수 있다
  • 하지만 결국 SaaS형도 카프카를 설치해 사용하는 것이므로 카프카 노하우가 없으면 세세한 운영 부분에서 어려움을 겪게 될 수도 있다
  • 카프카 클러스터에 대한 이해를 충분히 가진 상태에서 SaaS형 카프카를 운영한다면 더욱 효과적으로 활용할 수 있다
  • 현재 인력의 카프카 클러스터 운영 이해도, 클러스터 구축 비용, 추후 운영상 이슈를 다각토로 검토해 결정해야함

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

profile
매일 발전

0개의 댓글