Amazon MSK #1

이번 글은 Amazon 공식 사이트에서 MSK 개발자 가이드 문서를 번역/편집하여 작성 하였습니다.
참고자료 : Welcome to the Amazon MSK Developer Guide – Amazon Managed Streaming for Apache Kafka

Amazon MSK 란?

Amazon Managed Streaming for Apache Kafka (Amazon MSK) 는 Apache Kafka 클러스터 생성, 업데이트 등 구성 및 관리를 제공하는 완전 관리 형 서비스 입니다. 사용 중인 Apache Kafka 의 기존 애플리케이션, 도구 및 플러그인이 지원되므로 애플리케이션 코드를 변경할 필요가 없습니다.



Cluster 구성

  • Broker Node : Amazon MSK 클러스터를 생성할 때 Amazon MSK가 각 A-Z영역에 생성할 브로커 노드 수를 지정합니다. VPC 내의 A-Z 영역에 브로커 노드를 배치 합니다.
  • ZooKeeper Node : Amazon MSK는 ZooKeeper 노드를 사용할 수 있습니다. 아파치 ZooKeeper 는 안정성이 뛰어난 분산 조정을 지원합니다.
  • Producer, Consumer, Topic : Amazon MSK를 사용하면 Apache Kafka 데이터 영역 작업을 사용하여 Topic을 만들고, 데이터를 Producing/Consuming 할 수 있습니다.
  • 모든 클러스터 작업은 아래의 방법으로 제어 할 수 있습니다.
    • AWS Management Console
    • AWS CLI
    • AWS SDK

Cluster 장애 복구 시나리오

  • 구성 컨포넌트의 Fail Status를 감지하고 자동으로 복구
  • Broker Fail 을 감지하면 비정상적 또는 연결할 수 없는 Broker를 새로 생성하여 교체
  • 이전 Broker의 스토리지를 재 사용하여 Apache Kafka가 복제해야 하는 데이터를 줄여 복구 시간 감소
  • 복구 이후 Broker IP가 동일 하여 Producer와 Consumer 에서 문제 없이 통신 가능


Amazon MSK 장점

  • 완전 관리형 : Cluster 및 ZooKeeper 구성 및 유지 관리가 필요 없습니다.
  • 고가용성 : Cluster 상태 모니터링을 하며 비정상 Broker를 자동으로 교체 및 복구를 제공하여 다운 타임이 없습니다.
  • 높은 보안 : VPC 의 Private Subnet을 사용하여 망분리, Cotrol-plane API에 대한 IAM role 과 TLS 암호화를 통한 인증 및 권한 제어가 가능합니다.
  • 완벽한 호환 : 기존 사용 중이던 Apache Kafka 애플리케이션 코드와 완벽하게 호환이 되어 쉽게 마이그레이션 할 수 있습니다.
  • 확장성
    • Cluster 확장 : Cluster 에 영향을 주지 않으며 Broker를 증설 할 수 있습니다.
    • Storage 오토 스케일 : Broker 가용성에 영향 없이 EBS 스토리지 확장을 할 수 있습니다.
    • Vertical 스케일링 : Kafka 파티션을 재할당 하지 않고 Broker Node 의 크기를 변경 할 수 있습니다.


Amazon MSK 가 지원하는 항목

인프라 관리 보다 스트리밍 애플리케이션 생성에 더 집중할 수 있도록 아래 주황색 음영에 해당하는 부분을 지원 하고 있습니다.



Amazon MSK 동작 방식

Amazon MSK 는 Apache kafka 를 사용하였기 때문에 Kafka 동작 방식과 동일 합니다.

  1. Producer 가 메세지를 생성 하여 Broker에 전송
  2. 각 Broker 에 메세지 데이터 복제
  3. Broker에 매핑 되어있는 Consumer가 메세지 데이터를 가지고 가서 처리
  • Producer가 Topic 의 파티션에 데이터를 쓰는 방식은 새로운 데이터 메세지가 점점 쌓이는 Queue 방식입니다.
  • Consumer 는 각 Topic의 파티션에 쌓여있는 데이터 메세지를 순차적으로 가져가서 처리 하게 됩니다.


연결 가능한 AWS 서비스

  • Amazon Glue Schema Registry : 데이터 스트림을 구조와 포맷을 정의 하여 중앙에서 스키마를 검색, 제어
  • Amazon Kinesis Data Analytics : 복잡한 데이터 스트림 처리
  • Amazon Data Migration Service : 변경된 데이터 캡쳐
  • AWS Lambda : MSK를 이벤트로 이용
  • AWS Certificate Manager : Client TLS 인증을 위한 인증서
  • Amazon IAM : Control-Plane API 인증
  • Amazon KMS : 스토리지 볼륨 암호화
  • AWS CloudFormation : IaC를 이용한 Cluster 프로비져닝
  • Amazon CloudWatch : 모니터링을 위한 Metric 수집


1부 에서는 Amazon MSK 가 어떤 서비스 인지? 어떤 방식으로 동작 하는지? Amazon 에서 어떤 부분을 지원 하는지? 에 대해 알아 보았습니다. 2부 에서는 MSK 서비스를 어떻게 이용 할 수 있는지 알아 보도록 하겠습니다.



참고 사이트


참고 문서