반응형
AWS EC2 생성 후 Inbound rule 추가
1. AWS Console 로그인 후 EC2에 접속
2. EC2 인스턴스 생성
3. 키 페어 생성
4. Inbound rule 추가
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 명령어를 날려보자
반응형
'Apache Kafka' 카테고리의 다른 글
Spring Boot에 Kafka 연동 (0) | 2021.09.24 |
---|---|
Local에서 Kafka 명령어 날리기 (0) | 2021.09.24 |
Kafka Producer & Consumer란? (0) | 2021.09.17 |
Kafka Topic & Partition이란? (0) | 2021.09.17 |
Kafka Broker & Zookeeper란? (0) | 2021.09.17 |