[BASIC #2] 실습 환경 구축 및 실행

2025. 9. 7. 09:34·Kafka/Core

1. Oracle VirtualBox

 

Downloads – Oracle VirtualBox

This VirtualBox Extension Pack Personal Use and Educational License governs your access to and use of the VirtualBox Extension Pack. It does not apply to the VirtualBox base package and/or its source code, which are licensed under version 3 of the GNU Gene

www.virtualbox.org


2. Ubuntu

2.1. 호환성 확인

 

Supported Versions and Interoperability for Confluent Platform | Confluent Documentation

The following table lists Kafka and Confluent Platform compatibility. Important Change Notice: Effective with Confluent Platform 8.0, Confluent Platform, Community version transitioned to follow the Kafka release cycle more closely. The Kafka community pro

docs.confluent.io

Apache Kafka / Confluent Kafka 버전 호환성 표
Confluent Kafka와 Ubuntu 호환성 표

 

우리는 Apache Kafka가 아닌, Confluent Kafka를 사용한다. Apache Kafka의 3.1.x 버전과 호환시키기 위해 위의 사이트에 들어가서 호환성 여부를 확인해야 한다. 확인 결과 Confluent Platform은 7.1.x 버전을 설치해야 하고, ubuntu는 20.0x 버전을 설치해야 한다.

참고로 실습 환경을 위해 버전 호환성을 동일하게 맞추기 위함일 뿐, 만약 자신의 ubuntu가 22.0x 버전이라면 이에맞는 Kafka 버전을 설치하면 된다.

2.2. Ubuntu 설치

 

Ubuntu 20.04.6 LTS (Focal Fossa)

Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what m

releases.ubuntu.com


3. VirtualBox에서 Ubuntu 실행


4. 추가 SW 설치

sudo apt-get update
sudo apt-get upgrade
sudo apt install net-tools
sudo apt install openjdk-11-jdk
java -version

5. ubuntu 고정 IP 할당

6. SSH 환경 설정

6.1. Linux 설정

sudo apt install openssh-server
sudo systemctl status sshd

 

6.2. PuTTY / MTPuTTY 설치 

[1] PuTTY

 

Download PuTTY: latest release (0.83)

This page contains download links for the latest released version of PuTTY. Currently this is 0.83, released on 2025-02-08. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

[2] MTPuTTY

 

Multi Tabbed Putty – TTY PLUS

Supports all PuTTY protocols - SSH, Telnet, Rlogin, Raw. Supports PuTTY session. You can control and change PuTTY command line parameters. You can run PuTTY configuration from within the program.

ttyplus.com


7. Kafka 설치

 

Previous Versions - Confluent

Previous Versions

www.confluent.io

이전에 설명했던대로 최신 버전이 아닌, 실습 용도로 7.1.x의 Previous Version을 사용한다. 

# wget https://packages.confluent.io/archive/7.1/confluent-community-7.1.2.tar.gz?_ga=2.114026496.628590684.1757154217-1577310182.1757154217&_gac=1.128592382.1757160977.CjwKCAjwt-_FBhBzEiwA7QEqyNcRhjOnMpWIcwUhHQnsbWT2WqER93IQrJtGQcxB1rSSU39fOwScgBoCrXkQAvD_BwE&_gl=1*1u7gzoa*_gcl_aw*R0NMLjE3NTcxNjA5NzguQ2p3S0NBand0LV9GQmhCekVpd0E3UUVxeU5jUmhqT25NcFdJY3dVaEhRbnNiV1QyV3FFUjkzSVFySnRHUWN4QjFyU1NVMzlmT3dTY2dCb0NyWGtRQXZEX0J3RQ..*_gcl_au*MTkzMDY4NjkzNy4xNzU3MTU0MjE2*_ga*MTU3NzMxMDE4Mi4xNzU3MTU0MjE3*_ga_D2D3EGKSGD*czE3NTcyMzY1NDUkbzQkZzAkdDE3NTcyMzY1NDUkajYwJGwwJGgw
wget [URL 주소]
tar -xvf confluent-community-7.1.2.tar.gz # 압축 해제
mv confluent-7.1.2 confluent # 파일명 변경

8. Kafka 서버 기동

8.1. bashrc 환경 변수 설정

vi .bashrc
# .bashrc의 아래쪽으로 쭉 내려와서 아래 두 코드 작성 후 :wq
export CONFLUENT_HOME=/home/ubuntu/confluent 
export PATH=.:$PATH:$CONFLUENT_HOME/bin #
. .bashrc
echo $CONFLUENT_HOME

8.2. zookeeper server 실행

zookeeper-server-start $CONFLUENT_HOME/etc/kafka/zookeeper.properties

8.3. kafka server 실행

kafka-server-start $CONFLUENT_HOME/etc/kafka/server.properties
반드시 zookeeper 서버 실행 후에 kafka server를 실행해야 한다.
# kafka topic 생성
kafka-topics --bootstrap-server localhost:9092 --create --topic welcome-topic

8.4. 서버 실행 스크립트 생성

8.2와 8.3에서 서버 실행하는 CLI를 알았지만, 서버를 실행할 때 마다 해당 명령어를 작성하는건 매우 귀찮다. 앞으로는 bash script를 생성해서 해당 스크립트를 이용하자.

[1] zookeeper start script

vi zoo_start.sh
$CONFLUENT_HOME/bin/zookeeper-server-start $CONFLUENT_HOME/etc/kafka/zookeeper.properties

[2]  kafka start script

vi kafka_start.sh
$CONFLUENT_HOME/bin/kafka-server-start $CONFLUENT_HOME/etc/kafka/server.properties

[3] 권한 설정 (./*.sh 실행 가능하도록)

chmod +x *.sh

[4] 실행

./zoo_start.sh
./kafka_start.sh

9. Kafka 서버 환경 설정 

[1] server.properties 변경

mkdir -p /home/ubuntu/data/kafka-logs
cd $CONFLUENT_HOME/etc/kafka
vi server.properties
# 변경 전 코드
log.dirs=/tmp/kafka-logs

# 변경 후 코드
log.dirs=/home/ubuntu/data/kafka-logs
server.properties에 들어가보면 log.dirs가 /tmp/kafka-logs로 설정되어 있는데, 이건 서버가 종료되면 해당 로그들이 다 날아간다. 우리는 로그를 유지하기 위해 /home/ubuntu/data/kafka-logs에 저장해놓자.

[2] server.properties 변경

mkdir -p /home/ubuntu/data/zookeeper
# 변경 전 코드
dataDir=/tmp/zookeeper

# 변경 후 코드
dataDir=/home/ubuntu/data/zookeeper

'Kafka > Core' 카테고리의 다른 글

[BASIC #6] Consumer의 핵심: Consumer Group과 리밸런싱 전략  (0) 2025.09.07
[BASIC #5] Producer의 핵심: 직렬화와 파티셔닝 전략  (0) 2025.09.07
[BASIC #4] 메시지 전송의 시작: Producer와 Consumer  (0) 2025.09.07
[BASIC #3] Kafka 3가지 핵심 요소: Topic, Partition, Offsets  (0) 2025.09.07
[BASIC #1] 소개  (0) 2025.09.06
'Kafka/Core' 카테고리의 다른 글
  • [BASIC #5] Producer의 핵심: 직렬화와 파티셔닝 전략
  • [BASIC #4] 메시지 전송의 시작: Producer와 Consumer
  • [BASIC #3] Kafka 3가지 핵심 요소: Topic, Partition, Offsets
  • [BASIC #1] 소개
h6bro
h6bro
백엔드 개발자의 기술 블로그
  • h6bro
    Jun's Tech Blog
    h6bro
  • 전체
    오늘
    어제
    • 분류 전체보기 (250) N
      • Java (18)
        • Core (9)
        • Design Pattern (9)
      • Spring (80)
        • Core (24)
        • MVC (6)
        • DB (10)
        • JPA (26)
        • Monitoring (3)
        • Security (11)
        • WebSocket (0)
      • Database (33)
        • Redis (15)
        • MySQL (18)
      • MSA (25) N
        • MSA 기본 (11)
        • MSA 아키텍처 (14) N
      • Kafka (30)
        • Core (18)
        • Connect (12)
      • ElasticSearch (11)
        • Search (11)
        • Logging (0)
      • Test (4)
        • k6 (4)
      • Docker (9)
      • CI&CD (10)
        • GitHub Actions (6)
        • ArgoCD (4)
      • Kubernetes (18)
        • Core (12)
        • Ops (6)
      • Cloud Engineering (4)
        • AWS Infrastructure (3)
        • AWS EKS (1)
        • Terraform (0)
      • Project (8)
        • LinkFolio (1)
        • Secondhand Market (7)
  • 블로그 메뉴

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

  • 공지사항

    • Cloud Engineering 포스팅 정리
  • 인기 글

  • 태그

    ㅈ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
h6bro
[BASIC #2] 실습 환경 구축 및 실행
상단으로

티스토리툴바