Kafka를 통한 메시지 처리
카카오클라우드 Advanced Managed Kafka 서비스의 클러스터 생성 후 Kafka 환경을 구축하여 메시지를 송수신하는 과정을 설명합니다.
시작하기 전에
카카오클라우드 Advanced Managed Kafka 서비스는 Kafka 클러스터를 완전 관리형으로 제공하여 고성능 데이터 스트리밍과 이벤트 처리 시스템을 손쉽게 구축할 수 있게 합니다. 이 튜토리얼에서는 Advanced Managed Kafka 서비스의 클러스터를 생성하고 Kafka 환경을 구축하여 메시지를 송수신하는 과정을 상세히 설명합니다.
시나리오 소개
- Advanced Managed Kafka 클러스터 생성
- Kafka 사용 환경 설정
- 토픽 생성
- 프로듀서와 컨슈머 실행 후 메시지 송수신
사전 작업
사전 작업 단계에서는 Advanced Managed Kafka를 생성하고 접근하기 위해 필요한 리소스를 생성합니다. 우선 카카오클라우드 네트워크 구성하고, Kafka 클러스터에 접근하기 위한 보안 그룹을 설정해 보겠습니다.
1. 네트워크 구성
-
카카오클라우드 콘솔 > Beyond Networking Service > VPC 메뉴로 이동합니다.
-
우측의 [VPC 생성] 버튼을 클릭하여 새로운 VPC를 생성합니다.
VPC: tutorial-amk-vpc
-
VPC 생성 정보를 아래와 같이 입력합니다.
구분 항목 입력값 VPC 정보 VPC 이름 tutorial-amk-vpc VPC IP CIDR 블록 10.0.0.0/16 Availability Zone 가용 영역 개수 2 첫 번째 AZ kr-central-2-a 두 번째 AZ kr-central-2-b 서브넷 설정 가용 영역당 퍼블릭 서브넷 개수 1 가용 영역당 프라이빗 서브넷 개수 0 kr-central-2-a 퍼블릭 서브넷 IPv4 CIDR 블록 10.0.0.0/20 kr-central-2-b 퍼블 릭 서브넷 IPv4 CIDR 블록 10.0.16.0/20 -
하단의 [생성] 버튼을 클릭합니다.
-
2. 보안 그룹 설정
-
카카오클라우드 콘솔 > Beyond Networking Service > VPC 메뉴에서 보안 그룹을 선택합니다.
-
우측의 [보안 그룹 생성] 버튼을 클릭하여 새로운 보안 그룹을 생성합니다.
보안 그룹: tutorial-amk-sg
-
보안 그룹 이름과 설명을 아래와 같이 입력합니다.
이름 설명(선택) tutorial-amk-sg Kafka 클러스터 보안정책 -
하단의 [추가] 버튼을 클릭 후, 인바운드 규칙을 아래와 같이 설정하고 [생성] 버튼을 클릭합니다.
항목 설정값 비고 프로토콜 TCP 출발지 0.0.0.0/0 ⚠️ 전체 접근 가능한 출발지입니다. 실 사용 시 사용자 설정에 맞게 변경합니다. 포트 번호 9092 Kafka 기본 포트값입니다. 정책 설명(선택) cluster inbound policy 1
보안 그 룹: tutorial-vm-sg
-
보안 그룹 이름과 설명을 아래와 같이 입력합니다.
이름 설명(선택) tutorial-vm-sg Kafka용 VM 인스턴스 보안정책 -
하단의 [추가] 버튼을 클릭 후, 인바운드 조건을 아래와 같이 설정하고 [생성] 버튼을 클릭합니다.
나의 퍼블릭 IP 확인하기다음 버튼을 클릭하면 현재 사용 중인 나의 퍼블릭 IP를 확인할 수 있습니다.
항목 설정값 비고 프로토콜 TCP 출발지 {사용자 퍼블릭 IP}/32
포트 번호 22 SSH 접근을 위한 포트 번호 정책 설명(선택) kafka inbound policy 1
-
3. Advanced Managed Kafka 클러스터 생성
Advanced Managed Kafka 클러스터를 생성합니다. 클러스터 생성 시 네트워크 및 보안 그룹 설정, 가용 영역 설정, 브로커 설정 등이 포함됩니다.
-
카카오클라우드 콘솔 > Analytics > Advanced Managed Kafka 메뉴로 이동합니다.
-
우측의 [클러스터 생성] 버튼을 클릭한 후, 다음과 같이 클러스터를 생성합니다.
기본 설정
항목 설정값 클러스터 이름 tutorial-amk-cluster Kafka 버전 3.7.1 포트 9092 인스턴스 유형
항목 설정값 인스턴스 유형 r2a.2xlarge 네트워크 설정
항목 설정값 비고 VPC tutorial-amk-vpc 사전 작업에서 생성한 VPC 서브넷 main (10.0.0.0/20)
-{VPC_ID}
_sn_1 (10.0.16.0/20)사전 작업에서 생성한 서브넷 보안 그룹 tutorial-amk-sg 사전 작업에서 설정한 보안 그룹 브로커 구성 설정
항목 설정값 비고 지정된 가용 영역 수 2 네트워크 설정 시 선택한 서브넷의 가용 영역에 기반 브로커 수 2 - 가용 영역당 배포되는 브로커 수
- 가용 영역이 2개이므로, 총 브로커 수는 4개볼륨 타입 / 크기 - 볼륨 타입: SSD
- 볼륨 크기 : 50 GB- 각 브로커에 할당되는 볼륨 크기
- 브로커 수가 4개이므로, 총 볼륨 크기는 200GB최대 IOPS 3000 - 볼륨 크기에 따라 최대 IOPS 자동 지정
- 볼륨 크기 50GB인 경우 최대 IOPS는 3000세부 설정 기본값 확인 이 문서에서는 기본 설정값을 변경하지 않고 클러스터를 생성합니다.
원하는 경우 설정값을 자유롭게 변경할 수 있습니다. -
[생성] 버튼을 클릭합니다.
-
생성한 클러스터의 상태가
Starting
,Creating
을 거쳐Active
로 변경된 것을 확인합니다.
- 클러스터가Active
되기 전이라도 클러스터 이름을 클릭하여 클러스터 상세 페이지의 브로커 탭에서 브로커 생성 상태를 확인할 수 있습니다.
4. Kafka 부트스트랩 서버 접근용 VM 생성
Advanced Managed Kafka 클러스터를 생성했다면 Kafka 부트스트랩 서버에 접근하기 위한 VM을 생성합니다.
-
카카오클라우드 콘솔 > Virtual Machine 메뉴로 이동합니다.
-
우측의 [인스턴스 생성] 버튼을 클릭한 후, 다음과 같이 VM 인스턴스를 생성합니다.
주의- 키 페어는 최초 1회 생성하여 잘 저장해두세요. 잃어버린 키는 복구할 수 없습니다.
구분 항목 설정값 비고 기본 정보 이름 tutorial-amk-vm 개수 1 이미지 기본 Ubuntu 24.04 인스턴스 유형 m2a.large 볼륨 루트 볼륨 10GB / SSD 키 페어 {USER_KEYPAIR}
키 페어 생성 또는 사용한 키 페어를 선택 네트워크 VPC tutorial-amk-vpc 사전 작업에서 생성한 VPC 서브넷 main (10.0.0.0/20) 사전 작업에서 생성한 서브넷 보안 그룹 tutorial-vm-sg 사전 작업에서 설정한 보안 그룹
작업 순서
본격적인 Kafka 사용 환경 구성 및 메시지 송수신을 위한 세부 작업은 다음과 같습니다.