[AWS] MSK

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


© 2023 Lee. All rights reserved.