Ubuntu에 Kafka 서버 배포

나르·2022년 2월 18일
0

Infra

목록 보기
3/5
post-thumbnail

0. Intro.

kafka 서버 배포하기~~ 프로젝트 진행 중 카프카를 써야할 일이 생겼는데, MSK 를 쓰자니 어마어마한 비용을 감당할 수 없는 코린이는 고냥 인스턴스를 띄워서 돌려버리기로 합니다...
아주아주 간단하니 라이브 배포용이 아니라 잠시 적용하는 거라면 직접 설치해 사용해도 좋을 것 같습니다~!


1. Kafka 실행하기


1.1. Install Requirements

Apache Kafka 를 사용하려면 자바가 필요하기 때문에 자바를 설치해줍니다!
wget으로 카프카를 다운로드한 후, tgz 파일의 압축을 풀어줍니다.
폴더명이 길어서 불편하므로 저는 kafka 로 이름을 변경해줬습니다.

sudo apt install openjdk-11-jdk
wget https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz
tar -zxf kafka_2.13-3.1.0.tgz
mv kafka_2.13-3.1.0.tgz kafka

1.2. 설정 정보 변경

kafka/config/server.properties 를 수정해줍니다.
초기값에서 listeners=PLAINTEXT://:9092의 주석을 제거하고, advertised.listeners을 추가해줍니다.

주소설명
listeners카프카 브로커가 내부적으로 바인딩하는 주소.
advertised.listeners카프카 프로듀서, 컨슈머에게 노출할 주소.
설정하지 않을 경우 디폴트로 listners 설정이 적용됩니다.
cd kafka/
vi config/server.properties
    
    ...
    listeners=PLAINTEXT://:9092
    advertised.listeners=PLAINTEXT://{aws ec2 public ip}:9092
    ...

예시)

1.3. 실행

zookeeper을 먼저 실행하고, kafka 서버를 실행해줍니다.

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

netstat -an | grep 2181      # 실행 확인

1.4. 토픽 발행

./kafka-topics.sh --create --bootstrap-server {aws ec2 public ip}:9092 --topic {topic-name}
# 발행된 토픽 확인
./kafka-topics.sh --list --bootstrap-server {aws ec2 public ip}:9092

❗️ ERROR

create timeout error

고난과 역경을 이겨내며 설치해뒀더니 발생한 에러입니다.
카프카는 자바 기반의 JVM을 사용하는 애플리케이션이므로 메모리가 할당되는 영역인 힙(heap)이 만들어집니다.
Kafka 2.5.0은 기본값으로 1GB의 힙 메모리를 사용하도록 설정되어 있어, t2.micro에서 실행하기 위해서는 heap size 환경변수를 낮춰주어야합니다.

export KAFKA_HEAP_OPTS="-Xmx100m -Xms100m"    # 100MB

Ref.

[아파치 카프카 입문과 활용] 2. Apache kafka 설치, 실행, CLI
Kafka 설정 listeners vs. advertised.listeners
Kafka 핵심 포인트
Kafka 컨슈밍이 안될때는 advertised.listeners 설정을 확인하라
[Apache Kafka] Ubuntu에 Kafka 설치 방법

profile
💻 + ☕ = </>

0개의 댓글