Apache Kafka

EC2 생성 후 접속, Kafka 설치 및 설정

beekei 2021. 9. 24. 17:33
반응형

AWS EC2 생성 후 Inbound rule 추가

1. AWS Console 로그인 후 EC2에 접속

AWS Console EC2 접속

2. EC2 인스턴스 생성

인스턴스 시작 클릭

 

리눅스 2 AMI 선택
가난한 회사원 이므로 프리티어를 사용해 주겠다.

3. 키 페어 생성

키페어는 ssh 접속 시 필요하므로 생성해서 보관해야 한다.

4. Inbound rule 추가

생성된 인스턴스 > 보안 > 보안 그룹 클릭
Edit inbound rules 클릭
규칙 추가를 클릭
모든 위치에서 inbound 혀용
생성된 것을 확인할 수 있다.

Inbound rule은 필요한대로 설정하면 되겠다.


EC2 접속 후 Kafka 설치 및 설정

1. 키 페어 권한 변경

위에서 생성한 키 페어를 보관하는 곳으로 이동해 키 페어 파일를 사용할 권한을 변경한다.

# 400 → 나만 읽을 수 있음(private)
chmod 400 devbeekei-kafka.pem

2. EC2 접속

# 키 페어를 사용하여 EC2 접속
ssh -i devbeekei-kafka.pem ec2-user@3.34.97.97

3. Java 설치

Amazon에 JDK 11버전을 사용했다.

# Java 설치 버전 확인
java -version
-bash: java: command not found # 자바 설치가 안됨

# 설치가 가능한 amazon-corretto Java 버전을 확인
sudo yum list | grep amazon-corretto

# java 11 버전 사용
sudo yum install java-11-amazon-corretto.x86_64

만약 자바가 이미 설치 되어있고 버전을 바꾸고 싶으면 아래 명령어를 사용한다.

sudo alternatives --config java

4. Kafka 설치 및 설정

Kafka를 설치하고 압축 해체 한다.

# kafka 2.5.0 버전 설치
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz

# 설치된 파일 확인
ls
kafka_2.12-2.5.0.tgz

# 압축 해체
tar xvf kafka_2.12-2.5.0.tgz

Kafka의 heap memory를 설정한다.

기본 힙 메모리 설장이 Kafka = 1G, Zookeeper = 512M으로 설정되어있기 때문에 프리티어의 메모리 1G에서는 Kafka와 Zookeeper를 동시에 실행하면 Cannot allocate memory와 같은 문제가 발생한다.

# 설정된 옵션 확인
echo $KAFKA_HEAP_OPTS

# 옵션 설정
export KAFKA_HEAP_OPTS="-Xms400m -Xmx400m"

# 다시 설정된 옵션 확인
echo $KAFKA_HEAP_OPTS
-Xms400m -Xmx400m

설정하고 난 뒤 터미널을 재 접속해보면 설정이 초기화 된 것을 확인할 수 있다.

터미널을 재 실행했을 때도 설정이 유지되도록 .bashrc 파일을 수정해야 한다.

서버를 실행할때 필요한 JAVA_HOME도 설정해준다.

# .bashrc 파일 수정
sudo vi ~/.bashrc

# 추가 코드
######### KAFKA HEAP OPTS ############
export KAFKA_HEAP_OPTS="-Xms400m -Xmx400m"

######### JDK11 PATH ############
export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64
export PATH=$PATH:$JAVA_HOME/bin

# 수정 후 적용
source  ~/.bashrc

Kafka Server의 설정 파일을 수정한다.

# server.properties 파일 수정
vi config/server.properties

# 포트번호 설정(주석 제거)
listeners=PLAINTEXT://:9092
# 통신을 위해 열어두는 PROTOCOL, IP, PORT를 지정(주석 제거 후 EC2 퍼블릭 IPv4 주소:PORT 수정)
advertised.listeners=PLAINTEXT://3.34.97.97:9092

Zookeeper Server와 Kafka Server를 실행한다.

# zookeeper 실행
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
# kafka 실행
bin/kafka-server-start.sh -daemon config/server.properties
# 실행중인 JVM 프로세스 확인
jps -m


이렇게 EC2를 생성하고 접속 후 Kafka를 설치하고 설정까지 해보았다.

그럼 이제 Local에서 여러가지 Kafka 명령어를 날려보자

 

[Kafka] Local에서 Kafka 명령어 날리기

[Kafka] EC2 생성 후 접속, Kafka 설치 및 설정 AWS EC2 생성 후 Inbound rule 추가 1. AWS Console 로그인 후 EC2에 접속 2. EC2 인스턴스 생성 3. 키 페어 생성 4. Inbound rule 추가 Inbound rule은 필요한대로..

devbksheen.tistory.com

반응형