콘텐츠로 이동하기
데이터 분석

새로운 Apache Kafka용 관리형 서비스를 사용해 보고 할 일 목록에서 클러스터 관리를 지우세요

2025년 3월 17일
Kir Titievsky

Product Manager, Google Cloud

영업 대표 연락하기

귀하의 클라우드에 대한 이슈를 전문 영업 대표를 통해 논의해보세요.

연락하기

* 본 아티클의 원문은 2024년 8월 16일 Google Cloud 블로그(영문)에 게재되었습니다.

Apache Kafka™와 같은 분산형 스토리지 시스템을 운영하다 보면 배우는 것이 많습니다. 먼저 클러스터를 위해 보안과 네트워킹을 설계 및 설정하고 안정적 운영과 업그레이드를 위한 프로세스 및 도구를 개발하는 과정을 진행하게 됩니다. 이 모든 과정에서 새로운 트래픽을 위한 확장이나 비용 절약을 위한 축소를 결정하기도 합니다. 보람되면서도 어려운 모험입니다. 

이제 Google Cloud에서 지름길을 알려드립니다. 새로 나온 Apache Kafka용 Google Cloud 관리형 서비스를 사용해 보세요. 이 서비스는 위험 부담이 크고 때로는 지루한 인프라 운영 업무를 처리합니다. 지금 Google Cloud 프로젝트에서 프리뷰 버전을 사용해 보실 수 있습니다. 

자체적인 Apache Kafka 인프라 운영을 생각하고 있다면 이 서비스를 사용해 보세요. 할 일 목록에 있는 다른 업무를 처리할 시간을 확보할 수 있습니다. 아래 내용을 읽으면서 새로운 서비스로 무엇을 할 수 있는지 알아보세요.

Apache Kafka란 무엇인가요?

본격적인 설명에 앞서 잠시 Apache Kafka가 확장 가능한 소프트웨어를 빌드하고 비즈니스를 구축하는 데 어떤 도움이 되는지 알아보겠습니다. 기술적인 차원에서 Apache Kafka는 애플리케이션에 이벤트를 공유하는 데 사용하는 확장 가능한 스토리지 시스템입니다. 이벤트에 반응하는 서비스를 빌드해야 한다면 그 이벤트를 Kafka에서 가져올 수 있습니다. 이벤트를 생성한 애플리케이션에 직접 통합하는 것보다 훨씬 쉽습니다. 이렇게 분리함으로써 내구성과 확장성을 갖춘 복잡한 소프트웨어를 빌드할 수 있게 됩니다. 이는 Kafka가 다른 스토리지 시스템과 달리 초당 기가바이트 단위의 처리량으로 수평 확장되기 때문에 가능합니다. Kafka는 객체 스토리지와 다르게 규모가 크고 변경이 불가능한 배치가 아니라 개별 레코드를 몇 마이크로초 안에 전송합니다. 

이 시스템은 어느 분야에서 유용하게 사용될까요? 소매업의 경우 '사용자 X가 제품 Y를 클릭함'과 같은 이벤트를 처리하는 여러 서비스를 이용합니다. 예를 들어 추천 시스템을 빌드하거나 사용자에게 최근 본 제품의 기록을 보여주고자 할 수 있습니다. 데이터 사이언스팀에서는 당연히 사용자 상호작용의 전체 내역을 확인하고자 합니다. 제조업의 경우 '센서 X가 측정값 Y를 보고함'과 같은 형식의 이벤트가 발생합니다. 이러한 이벤트로 운영 모니터링 대시보드를 생성하거나 조기 장애 감지 알고리즘을 개발하고 실행하는 등 다양한 업무를 수행하게 됩니다. 금융 서비스 회사의 경우 주식 매매와 거래를 사기 감지 파이프라인과 잔액 계산기에 피드할 수 있습니다. 

Apache Kafka용 관리형 서비스는 어떤 도움이 되나요?

Apache Kafka용 관리형 서비스를 사용해 Apache Kafka 클러스터를 실제로 운영하는 데 무엇이 필요한지 살펴보겠습니다. 구체적으로 말하자면 안전하고 확장 가능한 클러스터로 운영할 수 있어야 합니다. 

가장 먼저, 서비스에 대한 액세스 권한을 받아야 합니다. 프로젝트 관리자라면 이미 권한이 있을 것입니다. 이러한 권한은 기존 계정과 서비스 약관에 포함되며 기존 결제 수단 또는 계약의 적용을 받습니다. 

두 번째로, 클러스터의 보안 방식을 결정해야 합니다. Apache Kafka용 관리형 서비스는 보안 기능도 기본으로 제공합니다. 모든 클러스터는 암호화되고 인증된 연결만 허용합니다. 인증 시 서비스 계정과 직원 ID 제휴 계정을 포함해 Google IAM에서 지원하는 모든 ID를 사용할 수 있습니다. 하지만 Kafka 클러스터에서 이러한 ID를 관리할 필요가 없습니다. 클라이언트는 OAuth로 인증할 수 있으며 이는 Google Cloud의 사용자 인증 정보 처리나 기존 애플리케이션의 사용자 이름/비밀번호(SASL_PLAIN) 인증을 자동화합니다. 데이터는 저장 시 암호화되며 CMEK 지원이 포함됩니다. 

세 번째로, 네트워크 설계입니다. Apache Kafka용 관리형 서비스는 네트워크 설계도 완전히 자동화합니다. 클라이언트가 서비스에 액세스하는 데 사용할 VPC 네트워크를 결정하기만 하면 나머지는 서비스에서 처리합니다. 최대 10개의 VPC 네트워크에 클러스터를 노출할 수 있습니다. 즉, 클라이언트를 서로 다른 네트워크에 분리할 수 있으며 클러스터에 리전 간 액세스가 가능합니다. VPC 페어링은 필요하지 않습니다. 서비스는 각 네트워크에서 브로커 및 부트스트랩 서버를 위한 비공개 IP 주소를 생성합니다. 그런 다음 클라이언트가 클러스터의 부트스트랩 URL만 알면 되도록 DNS 항목을 설정합니다. 참, 부트스트랩 URL은 하나뿐입니다. 각 클러스터에 부하 분산기가 설정되어 있기 때문입니다.

마지막은 크기 조정 단계입니다. 어떤 유형의 브로커 머신을 몇 개 사용할 것이며, 디스크는 어떻게 설정해야 할까요? 이 문제는 간단히 해결됩니다. 이 서비스에서 브로커와 스토리지를 완벽하게 관리합니다. vCPU 수와 클러스터의 RAM 크기만 사용자가 직접 관리하면 됩니다. 이 두 가지만 설정하면 브로커 관리는 자동화됩니다. 여기에는 브로커와 스토리지의 수평 및 수직 확장이 포함됩니다. 스토리지는 버퍼링을 위한 최소한의 로컬 스토리지와 사실상 무제한의 원격 스토리지를 포함하여 계층화됩니다. 따라서 디스크 공간이 부족해질 걱정 없이 원하는 만큼 Kafka 데이터를 저장할 수 있습니다.

이제 서비스를 사용할 준비가 되었습니다. 이 서비스는 오픈소스 Apache Kafka를 실행하기 때문에 Kafka 프로토콜을 사용하는 클라이언트는 예상대로 작동하게 됩니다. 중요한 운영 측정항목은 Cloud Monitoring에서, 로그는 Cloud Logging에서 얻습니다. 서비스는 Google Cloud API이므로 Terraform, UI, CLI를 포함한 클라이언트 라이브러리가 함께 제공됩니다. 

클러스터가 최대 성능으로 가동되고 있다면 마지막 깜짝선물로 자동 업그레이드가 등장합니다. 서비스는 모든 소프트웨어를 자동으로 최신 상태로 유지합니다. 다시 시작할 필요도 없습니다. 

직접 사용하여 약 1시간 만에 게시해 보세요

간단히 말해 Apache Kafka용 관리형 서비스는 Google Cloud에서 Apache Kafka 클러스터를 운영하는 업무를 서브넷 선택과 RAM 및 CPU 사용률을 살펴보는 수준으로 줄이는 데 도움이 됩니다. 직접 사용해 보세요. Google Cloud 콘솔에서 시작하거나 빠른 시작을 따라서 시작할 수 있습니다. 더 궁금한 점이 있다면 계정팀에 문의하거나 kafka-hotline@google.com으로 이메일을 보내주세요.

게시 위치