카프카 설치 방법

카프카 설치 방법

카프카 설치 방법에 대해 알아보겠습니다. 카프카는 아마존에서 제공하는 완전관리형 아파치 카프카 MSK, 컨플루언트에서 제공하는 카프카 솔루션이 있습니다. 여기서는 AWS에 실제 카프카를 설치하는 방법을 소개하겠습니다.

1. AWS 환경에서 실습 환경 구성

Amazon EC2 스팟 인스턴스 요금

  • t2.medium(vCPU 2, MEM 4GB) 7대 설치, 아마존 리눅스 2
    • 배포 서버 1대 : public
    • 주키퍼 서버 3대 : private
    • 카프카 서버 3대 : private
ssh -i keypair.pem -l ec2-user 13.125.209.60
#or
ssh -i keypair.pem [email protected]
  • DNS 서버 설정
    • 아래처럼 호스트 이름 변경하거나 Route53에서 프라이빗 도메인 설정하여 사용(비용과금)
# 확인
ping -c 2 pf-zk01.foo.bar

2. 카프카 클러스터 구성

  • 앤서블 – Ansible : 서버 배포 자동화 도구

Installation Guide — Ansible Documentation

관리서버에 앤서블 설치

#ansible 설치
sudo amazon-linux-extras install -y ansible2

#실습 소스 설치
sudo yum install -y git
git clone <https://github.com/onlybooks/kafka2>
#키파일 배포서버 복사
scp -i keypair.pem key [email protected]:~
  • 앤서블 Ansible
# 키페어 권한 설정
chmod 600 keypair.pem

# 키를 메모리에 등록
ssh-agent bash

# ssh-add 명령어를 이용해서 키를 등록
ssh-add keypair.pem
  • 위 방법은 재접속하면 설정이 초기화되는 문제가 있음.
  • 아래 방법대로 하면 비밀키없이 ssh 접근 가능 추천.
# 배포 서버에서 공개키 생성
ssh-keygen
cat /home/ec2-user/.ssh/id-rsa.pub

# 공개 키 내용을 접속하고자 하는 서버에 복사
vi /home/ec2-user/.ssh/authorized_keys
chmod 600 .ssh/authorized_keys

# ssh 접근 가능
ssh pf-kafka01

주키퍼 설치

# 설치 명령
ansible-playbook -i hosts zookeeper.yml
  • hosts 파일
[zkhosts]
peter-zk01.foo.bar
peter-zk02.foo.bar
peter-zk03.foo.bar

[kafkahosts]

peter-kafka01.foo.bar peter-kafka02.foo.bar peter-kafka03.foo.bar

[kerberoshosts]

peter-zk01.foo.bar

  • zookeeper.yml
---
- hosts: zkhosts
  become: true
  connection: ssh
  roles:
    - common
    - zookeeper
  • 주키퍼 설치 확인
sudo systemctl status zookeeper-server
#Active : active [running] 확인
  • systemctl 명령
# 프로세스 상태 확인 명령어
systemctl status zookeeper-server

#프로세스 중지 명령어
systemctl stop zookeeper-server

#프로세스 시작 명령어
systemctl start zookeeper-server

#프로세스 재시작 명령어
systemctl restart zookeeper-server

Overview of systemd for RHEL 7 – Red Hat Customer Portal

카프카 설치

# 카프카 설치
ansible-playbook -t hosts kafka.yml

# 카프카 설치 확인
sudo systemctl status kafka-server

3. 카프카 테스트

1) 카프카 기본 구성

  • 카프카 : 애플리케이션의 이름
  • 브로커 : 카프카 애플리케이션이 설치된 서버 또는 노드

2) 메시지 보내고 받기

# 토픽 생성
kafka-topcis.sh --bootstrap-server pf-kafka01.sample.test:9092 --create - topic pf-overview01 --partition 1 --replication-factor 3

# 컨슈머 실행
kafka-console-consumer.sh --bootstrap-server pf-kafka01.sample.test --topic pf-overview01

# 프로듀서 실행
kafka-console-producer.sh --bootstrap-server pf-kafka01.sample.test --topic-overview01
  • 카프카 기본 명령어
    • kafka-topic.sh : 토픽을 생성하거나 포틱의 설정 등을 변경하기 위해 사용함.
    • kafka-console-production.sh : 토픽으로 메시지를 전송하기 위해 사용함. 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 프로듀서 옵션 적용 가능
    • kafka-console-consumer.sh : 토픽에서 메시지를 가져오기 위해 사용함. 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 컨슈머 옵션 적용 가능
    • kafka-reassign-partition.sh : 토픽의 파티션과 위치 변경 등을 위해 사용함.
    • kafka-dump-log.sh : 파티션에 저장된 로그 파일의 내용을 확인하기 위해 사용함.

카프카 도입 사례에 대한 설명이 필요하신 분은 여기 링크를 참고바랍니다.

좀더 자세한 설명을 원하시는 분은 실전 카프카 개발부터 운영까지 도서를 참고바립니다.


참고 : 실전 카프카 개발부터 운영까지

아래는 카프카 관련 국내 도서입니다.

실전 카프카 개발부터 운영까지:데이터플랫폼의 중추 아파치 카프카의 내부동작과 개발 운영 보안의 모든것, 책만 아파치 카프카의 모든 것 세트 : 카프카 데이터 플랫폼의 최강자+실전 카프카 개발부터 운영까지, 책만 (서점추천) 헤드 퍼스트 디자인 패턴 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 24단계 실습으로 정복하는 쿠버네티스 + 실전 카프카 개발부터 운영까지 (전2권), 위키북스 (서점추천) 데이터 파이프라인 핵심 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 몽고DB 완벽 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 클린 코드의 기술 + 실전 카프카 개발부터 운영까지 (전2권), 영진닷컴 (서점추천) 카프카 핵심 가이드 + 디지털 플랫폼 전략 수립을 위한 쿠버네티스 실전 활용서 (전2권), 제이펍 아파치 카프카 애플리케이션 프로그래밍 with 자바:카프카의 개념부터 스트림즈 커넥트 스프링 카프카까지, 비제이퍼블릭 카프카 핵심 가이드 개정증보판, 제이펍 실전 아파치 카프카:애플리케이션 개발부터 파이프라인 사물인터넷 데이터 허브 구축까지, 한빛미디어 카프카 데이터 플랫폼의 최강자:실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지, 책만 카프카 스트림즈와 ksqlDB 정복:실시간 데이터 처리, 에이콘출판 카프카 핵심가이드:실시간 데이터와 스트림 프로세싱, 제이펍

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”

Back to top