본문 바로가기
Spring/SpringBoot

[SpringBoot] Kafka로 분산형 데이터 처리하기 (2) - Virtual Box에서 Kafka 설치하기

by J4J 2024. 8. 25.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 kafka로 분산형 데이터 처리하기 두 번째인 virtual box에서 kafka 설치하는 방법에 대해 적어보는 시간을 가져보려고 합니다.

 

 

 

이전 글

 

[SpringBoot] Kafka로 분산형 데이터 처리하기 (1) - Kafka란 무엇인가?

 

 

반응형

 

 

Virtual Box 설정하기

 

spring에서 kafka를 연동하여 사용하기 위해 kafka를 구축해 보겠습니다.

 

kafka를 구축하기 위해 해볼 수 있는 방법은 다양하게 존재합니다.

 

대표적으로 aws에서 제공해 주는 완전관리형 서비스인 msk도 존재하고, 그 외에도 ec2 등의 서버 등을 통해 자체 구축하는 경우도 있습니다.

 

이번에 저 같은 경우는 자체 구축을 진행하려고 하며, ec2 등을 통해 서버를 할당받지 않고 virtual box를 통해 로컬에서 구축해 보도록 하겠습니다.

 

 

 

[ 1. virtual box 다운로드 ]

 

virtual box를 설치하지 않으신 분들은 virtual box 다운로드에서 다운로드를 진행해 주시면 됩니다.

 

 

 

[ 2. ubuntu iso 이미지 다운로드 ]

 

virtual box에서 구동될 os를 ubuntu로 설정하기 위해 iso 이미지를 다운로드하여야 합니다.

 

다른 os를 선택해도 되지만, 제가 아래에 설정한 대로 올바르게 동작되지 않을 수 있다는 점 참고 부탁드립니다.

 

iso 이미지 다운로드는 ubuntu iso 이미지 다운로드에서 진행해 주시면 됩니다.

 

 

 

 

[ 3. 가상 머신 생성 ]

 

먼저 설치된 virtual box를 실행시킨 뒤 "새로 만들기"를 클릭합니다.

 

가상 머신 새로 만들기

 

 

 

이름은 자유롭게 입력하고 iso 이미지는 위에서 설치한 ubuntu iso 이미지를 선택하고 다음을 눌러줍니다.

 

이름 입력 및 iso 이미지 선택

 

 

 

다음은 사용자 정보와 호스트 및 도메인 정보를 자유롭게 입력해 줍니다.

 

입력이 완료되면 다음을 클릭합니다.

 

사용자 정보와 호스트 및 도메인 정보 입력

 

 

 

이번엔 하드웨어 설정입니다.

 

kafka cluster 동작을 위한 최소 스펙은 2vCPU와 4GB의 메모리를 권장하고 있습니다.

 

그래서 다음과 같이 메모리와 프로세서 설정을 할 예정이고 필요하신 경우 더 높은 스펙을 설정하시면 됩니다.

 

설정이 완료되면 다음을 클릭합니다.

 

메모리 및 프로세서 설정

 

 

 

하드 디스크는 최소 50GB를 권장하고 있습니다.

 

저는 이번에 다음과 같이 100GB로 설정해 보겠습니다.

 

설정이 완료되면 다음을 클릭합니다.

 

하드 디스크 설정

 

 

 

모든 설정이 올바르게 되었는지 요약 본을 확인한 뒤 완료를 클릭합니다.

 

요약 확인

 

 

 

 

[ 4. 가상 머신 기본 설정 ]

 

가상 머신 생성이 완료되면 가상 머신이 자동으로 실행되며 추가적인 설정을 요구합니다.

 

먼저 언어 설정입니다.

 

원하시는 언어를 선택한 뒤 다음을 클릭합니다.

 

언어 설정

 

 

 

다음은 ubuntu 사용에 대한 설정입니다.

 

저는 아무 작업도 하지 않고 다음을 클릭하겠습니다.

 

ubuntu 사용 설정

 

 

 

이번엔 키보드 설정입니다.

 

원하시는 설정 값을 선택한 뒤 다음을 클릭합니다.

 

키보드 설정

 

 

 

네트워크 설정 쪽은 "유선 연결 사용"을 선택하여 다음을 클릭합니다.

 

네트워크 설정

 

 

 

최신 버전에 대한 업데이트를 "Update now"를 클릭하여 진행합니다.

 

최선 버전 업데이트

 

 

 

그리고 "Close installer"를 클릭해 줍니다.

 

installer 종료

 

 

 

 

Kafka 설치하기

 

[ 1. terminal 접속 ]

 

kafka 설치를 위해 terminal를 접속하겠습니다.

 

왼쪽 상단을 클릭한 뒤 terminal를 검색어에 입력해 주시면 됩니다.

 

왼쪽 상단 클릭

 

terminal 검색 및 접속

 

 

 

[ 2. root 계정 접속 ]

 

terminal에서 다음 명령어를 입력하여 root 계정 비밀번호를 설정해 줍니다.

 

$ sudo passwd root

 

 

 

비밀번호 설정이 되었다면 다음 명령어를 입력한 뒤 위에서 설정한 비밀번호를 입력하여 root 계정으로 접속해 줍니다.

 

$ su - root

 

 

 

 

[ 3. java 설치 ]

 

다음 순서대로 명령어를 입력하여 java를 설치해 줍니다.

 

$ sudo apt update
$ sudo apt install default-jdk

 

 

 

설치가 완료되었다면 다음 명령어를 통해 완료가 올바르게 되었는지 확인해 줍니다.

 

$ java -version

 

java 설치 버전 확인

 

 

 

[ 4. kafka 설치 ]

 

다음 순서대로 명령어를 입력하여 kafka를 설치해 줍니다.

 

만약 wget 명령어에서 404가 나오는 경우 apache kafka 다운로드에서 제공해 주는 정보를 한번 확인해 주시면 됩니다.

 

$ wget https://downloads.apache.org/kafka/3.8.0/kafka_2.12-3.8.0.tgz
$ tar xzf kafka_2.12-3.8.0.tgz 
$ sudo mv kafka_2.12-3.8.0 /usr/local/kafka

 

 

 

[ 5. kafka 서버 설정 ]

 

다음 순서대로 명령어를 입력하여 kafka 서버 설정을 해줍니다.

 

$ hostname

 

hostname 확인

 

$ cd /usr/local/kafka
$ mkdir kafka-logs
$ vi /usr/local/kafka/config/server.properties

 

// server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://ubuntu:9092 // {hostname}:9092 구조로 입력
log.dirs=/usr/local/kafka/kafka-logs

 

 

 

 

[ 6. systemctl 설정 ]

 

다음 순서대로 명령어를 입력하여 systelctl을 통한 서버 동작 설정을 해줍니다.

 

$ vi /etc/systemd/system/zookeeper.service

 

// zookeeper.service
[Unit]
Description=Apache Zookeeper
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

 

$ cd /usr/lib/jvm
$ ls

 

openjdk 이름 확인

 

$ vi /etc/systemd/system/kafka.service

 

// kafka.service
[Unit]
Description=Apache Kafka
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-1.21.0-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

 

$ systemctl daemon-reload

 

 

 

[ 7. kafka 동작 및 상태 확인 ]

 

$ sudo systemctl start zookeeper
$ sudo systemctl status zookeeper

 

zookeeper active 확인

 

 

 

$ sudo systemctl start kafka
$ sudo systemctl status kafka

 

kafka active 확인

 

 

 

 

로컬에서 Virtual Box Kafka 접속 설정

 

virtual box에 kafka를 위와 같이 설정하면 virtual box 내부에서는 동작이 되지만 로컬에서 spring을 통해 접근이 아직까지는 불가능합니다.

 

로컬에서 spring을 통해 virtual box kafka에 접근할 수 있도록 추가 설정을 해보겠습니다.

 

 

 

[ 1. host 파일 수정 ]

 

window 기준으로 "C:\Windows\System32\drivers\etc" 경로로 이동하면 hosts 파일이 다음과 같이 존재합니다.

 

hosts 파일

 

 

 

해당 파일을 메모장이나 편집기 등을 이용하여 오픈해 준 뒤 다음과 같이 도메인 정보를 추가해 줍니다.

 

// hosts
127.0.0.1 ubuntu // 127.0.0.1 {kafka 설치할 때 확인한 os hostname}

 

 

 

[ 2. 가상 머신 네트워크 설정 ]

 

virtual box에서 kafka를 설치한 가상 머신을 선택한 뒤 "설정"을 클릭합니다.

 

가상 머신 설정

 

 

 

다음으로 "네트워크"에서 "포트 포워딩"을 클릭합니다.

 

네트워크 포트 포워딩

 

 

 

오른쪽에 + 버튼을 클릭한 뒤 호스트와 게스트 포트에 모두 9092를 입력한 rule을 추가하고 확인을 클릭합니다.

 

포트 포워딩 포트 설정

 

 

 

 

[ 3. telnet 연결 확인 ]

 

모든 설정이 완료되었다면 cmd 창을 열어줍니다.

 

그리고 다음 명령어를 통해 로컬에서 접속하는데 문제가 없는지 검증해 줍니다.

 

명령어를 입력했을 때 아래와 같이 어딘가에 접속되어 검은색 화면이 나오면 올바르게 설정된 것입니다.

 

$ telnet ubuntu 9092 // telnet {os hostname} 9092

 

telnet 접속 확인

 

 

 

 

 

 

 

이상으로 kafka로 분산형 데이터 처리하기 두 번째인 virtual box에서 kafka 설치하는 방법에 대해 간단하게 알아보는 시간이었습니다.

 

읽어주셔서 감사합니다.

 

 

 

728x90
반응형

댓글