Yebali

Kafka 설치하기 (feat. EC2) 본문

Kafka

Kafka 설치하기 (feat. EC2)

예발이 2022. 1. 31. 22:29

카프카를 공부하며 실습을 위한 환경을 만들기 위한 작업이다.

카프카와 주키퍼 모두 한 EC2 인스턴스에 설치할 것이다.

사전작업

카프카는 자바 애플리케이션이기 때문에 JDK가 미리 설치되어있어야 한다.

EC2에 JDK 11 설치하기

 

EC2 Linux Java 11 설치하기

EC2 Linux에서 jdk를 설치하려고 하면 1.8까지만 존재하는 것을 확인할 수 있다. Java 11 설치하기 때문에 Java 11을 설치하기 위해서는 yum 설치 외의 다른 방법을 사용해야 한다. 예시에서는 Amazon에서

yebali.tistory.com

 

설치하기

카프카를 설치하는 방법은 사실 파일을 다운받고, 설정하고, 실행하는 것이 전부이다.

1. 카프카 다운로드 하기

https://kafka.apache.org/downloads에서 설치하고 싶은 버전의 *. tgz파일을 다운로드한다.

 

CLI 환경이라면 'wget' 명령을 사용하여 파일을 다운로드할 수 있다.

wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz

2. 다운로드한 파일 압축 풀기

다운로드한. tgz 파일을 압축 푼다.

tar xvf kafka_2.12-2.8.1.tgz

3. 카프카 설정하기

가상 메모리

EC2를 사용한다면 대부분 메모리가 부족할 것이다. 이를 해결하는 방법은 두 가지가 있다.

 

  1. 카프카 브로커 힙 메모리 작게 설정하기
    환경변수에 'KAFKA_HEAP_OPTS'를 등록하여 가상 메모리를 줄이는 방법이다.
    필요하다면 '~/. bashrc'에 추가하여 영구적으로 등록해 줄 수 있다.
    export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
    echo $KAFKA_HEAP_OPTS # 환경변수로 잘 등록되었는지 확인


  2. 가상 메모리 추가로 극복하기
    EC2 인스턴스에 가상 메모리 추가하기
 

EC2 인스턴스 가상메모리 추가하기

EC2 인스턴스를 사용하다 보면 메모리가 부족한 경우가 많다. 이런 문제는 가상 메모리를 추가하여 어느 정도 해결할 수 있다. AWS 공식 문서에 나온 가상 메모리 추가 방법을 알아보자. 스왑 파일

yebali.tistory.com

 

브로커 설정

config/server.properties 파일에서 카프카 브로커의 다양한 설정을 수정할 수 있다. 
주요 설정들은 아래와 같다.

  • broker.id : 브로커를 구분하는 아이디. (Default. 0)
  • listeners : 카프카 브로커가 통신을 위해 열어둘 인터페이스 IP, Port, 프로토콜을 설정할 수 있다.
    따로 설정하지 않으면 모든 IP와 Port에서 접속할 수 있다.
  • advertised.listeners : 카프카 클라이언트나 커맨드 라인 툴을 브로커와 연결할 때 사용하는 IP, Port 정보
  • log.dir : 로그가 저장되는 위치. (Default. /tmp/kafka-logs)
  • zookeeper.connect : 주키퍼 접속 정보 (Default. localhost:2181)

advertised.listeners 만 'PLAINTEXT://<IP addr>:9092'로 설정한다.

4. 주키퍼 실행하기

아래 명령어를 통해 Daemon으로 주키퍼를 실행시킨다.

'jps -vm' 명령을 통해 잘 실행되었는지 확인할 수 있다.

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

5. 카프카 실행하기

아래 명령어를 통해 Daemon으로 카프카 브로커를 실행시킨다.

'jps -m' 명령으로 잘 실행되었는지 확인할 수 있다.

bin/kafka-server-start.sh -daemon config/server.properties

6. 로컬 컴퓨터에서 카프카와 통신 확인

EC2에는 카프카 브로커가 실행된 상태이다. 이제 자신의 컴퓨터에서 카프카와 정상적으로 통신할 수 있는지 확인해야 한다.

자신의 컴퓨터에도 카프카 바이너리 패키지를 다운로드하고 압축을 풀어 카프카 브로커에 대한 정보를 가져올 수 있는 'kafka-broker-api-versions.sh'를 사용해보자.

curl https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz
tar xvf kafka_2.12-2.8.1.tgz
cd kafka_2.12-2.8.1
bin/kafka-broker-api-versions.sh --bootstrap-server 13.124.252.159:9092

 

정상적으로 통신했을 때, 위 사진처럼 카프카 브로커의 각종 정보를 알 수 있다.

'Kafka' 카테고리의 다른 글

Kafka 토픽 삭제하기  (0) 2022.02.01
Kafka 토픽 생성하기  (0) 2022.02.01
Spring Kafka (스프링 카프카)  (0) 2022.01.30
Kafka Consumer (카프카 컨슈머)  (0) 2022.01.30
Kafka Producer (카프카 프로듀서)  (0) 2022.01.30