Blog

[Spring][258] EC2 Kafka 서버 적용 ( 테스트 환경 : 로컬 )

Author
Summary
Category
Project
Tags
Project
Favorite
Memory Date
2023/10/31
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
기능 구현
날짜
작성자
진행상황
진행 전
태그구분
6 more properties

전체 프로그램 구조

현재 아직은 AWS에 배포하지 않은 상태입니다.
배포 전 카프카 테스트를 위해 아래의 구조에서 로드 밸런서 없이 main Server ( Localhost:8080 ), Traffic Server ( Localhost:8090 ), Kafka Server ( AWS Ec2 ) 구조로 테스트 하였습니다.

AWS EC2 생성 및 설정

EC2 인스턴스 생성

EC2 보안 그룹 설정

EC2 SSh 연결

EC2에 Java 설치

sudo apt-get update sudo apt-get install openjdk-17-jdk java -version
Shell
복사

Kafka 설치

wget <https://downloads.apache.org/kafka/3.6.0/kafka_2.12-3.6.0.tgz>
Shell
복사
tar xvf kafka_2.12-3.6.0.tgz
Shell
복사

Kafka 설정

server.properties 파일 편집

•
listeners와 advertised.listeners 설정
◦
listeners Kafka 서버가 클라이언트의 연결을 수락할 인터페이스와 포트를 설정합니다. 외부 IP에서의 접근을 허용하려면 서버의 외부 IP 주소를 사용하거나 모든 인터페이스에서 수신하도록 0.0.0.0을 설정합니다.
listeners=PLAINTEXT://0.0.0.0:9092
Plain Text
복사
◦
advertised.listeners: 클라이언트가 연결할 Kafka 서버의 주소를 알려주는 설정입니다. 여기에는 외부에서 접근할 수 있는 서버의 IP 주소 또는 도메인 이름을 지정해야 합니다.
advertised.listeners=PLAINTEXT://your_external_ip:9092
Plain Text
복사
•
listener.security.protocol.map와 inter.broker.listener.name 설정
◦
listener.security.protocol.map 리스너 이름과 사용할 보안 프로토콜을 매핑합니다.
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
Plain Text
복사
◦
inter.broker.listener.name 브로커 간 통신에 사용할 리스너의 이름을 설정합니다.
inter.broker.listener.name=PLAINTEXT
Plain Text
복사

Kafka 서버 실행

zookeeper 서버 실행

bin/zookeeper-server-start.sh config/zookeeper.properties
Shell
복사

kafka 서버 실행

bin/kafka-server-start.sh config/server.properties
Shell
복사

Kafka Topic 생성

Kafka Topic 리스트 확인

웹 서비스에 카프카 적용

Kafka Config

테스트

카프카로 데이터가 정상적으로 들어 갔음을 확인 가능하다.
하지만 컨슈머에서 처리하지 못하는 문제가 발생하였다.

결과

아래처럼 카프카 서버를 거쳐서 정상적으로 작동하는 것을 알 수 있다!!!