AWS MSK

Dokkabei97·2022년 9월 1일
0

AWS

목록 보기
3/3

MSK (Amazon Managed Streaming for Apache Kafka)란?

  • Amazon MSK(Managed Streaming for Apache Kafka)는 AWS에서 제공하는 완전 관리형 apache kafka 서비스입니다.
  • 기존에 on-promise에서 사용하던 혹은 EC2로 관리하던 Apache kafka를 SaaS형태로 사용할 수 있습니다.
  • Apache kafka의 특정 버젼을 그대로 사용할 수 있기 때문에 vanila apache kafka의 버젼별 api spec을 따라서 사용할 수 있습니다.

클러스터 생성

빠른 생성 시 클러스터의 이름과 Kafka 버전 그리고 브로커 유형이랑 스토리지 볼륨만 정해주면 됩니다.

사용자 지정 시 브로커 영역과 영역당 브로커 수를 추가로 지정해 주고

VPC와 영역과 서브넷 그리고 보안 그룹을 지정해 줍니다 다음으로

보안 설정 후

모니터링 기능 선택과 태그를 설정 후 검토를 끝내면 클러스터가 생성이 됩니다.

두 방식 중 하나로 클러스터를 생성 후에 클러스터에 보안 그룹에서 9092 포트를 열어줍니다
카파카는 9092를 기본으로 사용하고 있고 만약 주키퍼도 건드리게 된다면 2181 포트도 열어주면 됩니다.

만약 Spring Kafka를 사용한다면 KafkaTemplate을 통해 바로 사용이 가능합니다,
https://github.com/Dokkabei97/aws-msk-test 스프링 kafka 예제

아래 방식은 직접 카프카를 다운로드하고 연결해 주제와 토픽을 생성하는 방법입니다.
EC2를 생성 후 EC2에 자바를 설치해 주고 나서 (자바는 1.8 버전 이상이면 됩니다, 1.8, 11, 17 LTS 권장)

wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.12-2.6.2.tgz
 
tar -xzf kafka_2.12-2.6.2.tgz

위 명령어로 카프카를 다운로드하고 압축을 풀어줍니다.

그리고 MSK 클러스터를 통해 들어가서 오른쪽에 클라이언트 정보 보기

부트스트랩 서버에 일반 텍스트에 엔드 포인트 1개를 복사해서

카프카 경로/bin/kafka-topics.sh --create --bootstrap-server 카프카 엔드포인트 --replication-factor 3 --partitions 1 --topic MSKTutorialTopic

복사한 엔드 포인트를 넣어주고 위 명령어를 통해 토픽을 만들어 줍니다. 정상적으로 만들어진다면 "Created topic MSKTutorialTopic."라는 메시지가 표시됩니다.

kafka 폴더에 client.properties를 만들어 주고 아래 내용을 넣어 줍니다.

security.protocol=PLAINTEXT

그러고 나서 아래 명령어로 메시지를 입력합니다.

카프카 경로/bin/kafka-console-producer.sh --broker-list 카프카 엔드포인트 --producer.config client.properties --topic MSKTutorialTopic

메시지 입력하고 Enter 키를 누르면 다음 줄이 나오는데 또 다른 메시지를 입력하고 Enter를 누르면 몇 번 반복합니다. Kafka는 클러스터에 별도의 메시지로 전송됩니다.

그리고 Ctrl+C 키를 눌러 빠져나오고 아래 명령어로 보낸 메시지를 확인합니다.

카프카 경로/bin/kafka-console-consumer.sh --bootstrap-server 카프카 엔드포인트 --consumer.config client.properties --topic MSKTutorialTopic --from-beginning
profile
ESTJ 개발자 백엔드와 인프라에 집중하고 있습니다.

0개의 댓글