[AWS] MSK
in AWS on Aws
Amazon MSK란?
Amazon Managed Streaming for Apache Kafka (MSK)는 완전 관리형 Apache Kafka 서비스이다. Apache Kafka는 대용량 데이터 스트리밍을 처리하는 분산형 메시징 시스템인데, MSK는 이를 쉽게 설정하고 관리할 수 있게 도와준다.
주요 기능
- 완전 관리형 서비스: MSK는 클러스터 설정, 소프트웨어 패치, 모니터링, 확장 등을 자동으로 관리해준다. 사용자는 인프라 관리에 신경 쓰지 않고 데이터 스트리밍에 집중할 수 있다.
- 고가용성: MSK는 여러 가용 영역에 걸쳐 클러스터를 배포하여 고가용성을 보장한다. 장애 발생 시에도 데이터 손실 없이 안정적인 서비스 운영이 가능하다.
- 보안: MSK는 VPC, IAM, KMS 등을 통해 데이터와 네트워크 보안을 강화할 수 있다. 데이터 암호화, 인증 및 권한 부여 등의 기능을 제공하여 안전한 데이터 스트리밍 환경을 구축할 수 있다.
- 자동 확장: MSK는 트래픽 변화에 따라 클러스터를 자동으로 확장하거나 축소할 수 있다. 이를 통해 비용 효율적인 운영이 가능하다.
- 모니터링: MSK는 Amazon CloudWatch와 통합되어 클러스터 상태를 실시간으로 모니터링할 수 있다. 이를 통해 성능 문제를 신속하게 감지하고 대응할 수 있다.
설정 방법
1) 클러스터 설정
- 클러스터 생성 방법 : 사용자 지정 생성(빠른 생성과 사용자 지정 생성 중에 선택이 가능한데, 네트워킹 및 보안을 선택하여 생성하기 위해 사용자 지정 생성을 선택한다.)
- 클러스터 이름 : 입력
- 클러스터 유형 : 프로비저닝
- Apache Kafka 버전 : 권장 버전 선택
- 브로커 : 3개의 영역에 small로 생성함
- 영역단 브로커 : 1
- 스토리지 : 100GiB
2) 네트워킹
- VPC 및 보안 그룹 선택
3) 보안
- 액세스 제어 방법 : 인증되지 않은 액세스
- 암호화 : 일반 텍스트
Kafka UI 설치
Kafka UI는 주로 모니터링과 관리 작업을 수행하므로, 매우 높은 사양이 필요하지는 않는다. 때문에, 하기 스팩으로 진행함.
- 인스턴스 유형: t3.small
- 스토리지: 8
- OS: Amazon linux 2023
# 도커설치
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
# Docker compose 설치
sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 설치 확인
docker-compose --version
# 설치가 잘 안됬을 경우 삭제 후 재설치
sudo rm /usr/local/bin/docker-compose
# Docker Compose 파일 작성
mkdir kafka-ui
cd kafka-ui
nano docker-compose.yml
# yml (MSK 클러스터 세부 정보 페이지에서 Bootstrap servers를 확인)
version: '3'
services:
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
ports:
- "8080:8080"
environment:
KAFKA_CLUSTERS_0_NAME: "msk-cluster"
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "<MSK_BOOTSTRAP_SERVERS>"
KAFKA_CLUSTERS_0_ZOOKEEPER: "<MSK_ZOOKEEPER_CONNECT>"
# 실행
docker-compose up -d