2. Kafka 간단히 설치해보기 (feat. EC2) (+실습)

2025. 11. 20. 17:22·개발 공부/kafka

환경 세팅 전 갖추어야할 것

  • AWS 계정
  • 적당한 성능의 EC2
  • 이번 실습은 AWS 프리티어에서 진행하기 위해 EC2 t2.micro (메모리 1GB)에서 진행함

초기 상태

EC2에 Kafka 설치 / 실행하기

1. JDK 17 설치하기

  • Kafka를 실행시키려면 JDK 17 이상이 설치되어 있어야 합니다.
sudo apt update
sudo apt install openjdk-17-jdk
java -version # 잘 설치됐는 지 확인

 

2. Kafka 설치하기

wget https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz

 

3. 설치한 파일 압축풀기

tar -xzf kafka_2.13-4.0.0.tgz # 압축 풀기
cd kafka_2.13-4.0.0

 

4. Kafka를 실행시켰을 때 잡아먹는 메모리 크기 낮추기

  • 프리티어인 t2.micro로 진행하기 때문에 Kafka의 메모리를 낮춘다. (필요없다면 하지 않아도 됩니다.)
export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"

 

5. swap을 활용해 메모리 늘리기 (만약 비싸게 EC2를 만들어서 충분한 메모리를 확보하였다면 할 필요 없음)

  • 스왑 메모리는 메모리를 늘리는 대신 속도가 느려지기 때문에 필요할 때 사용하는 것을 추천

5.1. swap 메모리를 2GB로 설정

sudo dd if=/dev/zero of=/swapfile bs=128M count=16 # 2GB짜리의 파일 생성
sudo chmod 600 /swapfile # 파일에 권한 부여
sudo mkswap /swapfile # 2GB 짜리 파일을 swap 공간의 형태로 전환
sudo swapon /swapfile # swap 활성화

5.2. 시스템 부팅 시마다 자동으로 활성화 되도록 파일시스템 수정

# 시스템 부팅 시마다 자동으로 활성화 되도록 파일시스템 수정
sudo vi /etc/fstab

# 아래 내용을 추가하고 저장하기
/swapfile swap swap defaults 0 0

5.3. swap 메모리가 잘 설정됐는 지 확인하기

free

 

6. Kafka 설정 수정하기

vi config/server.properties

server.properties

...

# 외부에서 접근할 때 사용하는 주소
advertised.listeners=PLAINTEXT://{EC2 Public IP}:9092,CONTROLLER://{EC2 Public IP}:9093

 

7. Kafka 서버 시작하기

# 초기 로그 폴더 셋팅 (카프카 첫 실행 때만 이 명령어를 입력하면 됨)
KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties

# 카프카 서버 실행
cd ~/kafka_2.13-4.0.0
bin/kafka-server-start.sh config/server.properties # 포그라운드에서 실행

Kafka Server Started가 뜨면 성공!

 

8. Kafka 서버를 백그라운드에서 실행하기

# 백그라운드에서 실행
bin/kafka-server-start.sh -daemon config/server.properties 

# 백그라운드에서 실행되고 있는 kafka 서버의 로그 확인하기
tail -f logs/kafkaServer.out

 

9. Kafka 서버가 실행 중인지 확인하는 방법

sudo lsof -i:9092 # 9092번 포트에서 실행 중인 프로세스 조회

 

10. Kafka 서버 멈추기

bin/kafka-server-stop.sh

 

참고

  • kafka 디렉터리 내부에 있는 bin 디렉터리로 들어가보면 다양한 쉘 스크립트 파일(.sh)이 존재한다. 실제 카프카 명령어를 실행시킬 때 이 쉘 스크립트 파일을 활용해서 실행시키는 것이다.

 

출처: https://inf.run/qzJua

저작자표시 (새창열림)

'개발 공부 > kafka' 카테고리의 다른 글

5. Kafka 메시지 처리 실패 시 대처 방법 (feat. Spring) (DLT, 재시도) (+실습)  (0) 2025.11.24
4. Kafka의 Producer, Consumer 서버 만들기 (feat. Spring) (+실습)  (0) 2025.11.23
3-2. Kafka 토픽 네이밍 규칙  (0) 2025.11.21
3-1. Kafka의 핵심 요소와 작동 (Topic, Consumer, Producer, Consumer Group, OffSet, CURRENT OFFSET) (+ 실습)  (0) 2025.11.21
1. Kafka와 메시지큐 (정의, 형태)  (0) 2025.11.20
'개발 공부/kafka' 카테고리의 다른 글
  • 4. Kafka의 Producer, Consumer 서버 만들기 (feat. Spring) (+실습)
  • 3-2. Kafka 토픽 네이밍 규칙
  • 3-1. Kafka의 핵심 요소와 작동 (Topic, Consumer, Producer, Consumer Group, OffSet, CURRENT OFFSET) (+ 실습)
  • 1. Kafka와 메시지큐 (정의, 형태)
Jamey
Jamey
  • Jamey
    컴공 대학생의 이야기
    Jamey
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 개발 공부 (33)
        • k8s (24)
        • kafka (8)
        • AI (1)
      • 개발기 (2)
      • 프로젝트 홍보 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    llm최적화
    Producer
    Rag
    Linux
    Kafka
    조인 쿼리
    serialDB
    Graphana
    Kubernetes
    topic
    sql자동화
    cloudflare workers
    langchain
    Jenkins
    current offset
    consumer
    AI
    K8S
    토픽
    카프카
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Jamey
2. Kafka 간단히 설치해보기 (feat. EC2) (+실습)
상단으로

티스토리툴바