MSK 개요
- MSK는 Amazon Managed Streaming for Apache Kafka의 줄임말
- Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션의 구축 및 실행을 위해 사용할 수 있는 완전관리형 서비스
- MSK는 클러스터 생성, 업데이트 및 삭제 등에 필요한 제어 영역 작업을 제공
- Kafka의 오픈 소스 버전을 실행하기 때문에, Kafka 커뮤니티의 기존 애플리케이션, 도구 및 플러그인이 지원됨
MSK Cluster 생성하기
AWS Console > MSK에 접속하여 클러스터 생성
을 눌러서 생성 가능하다.
클러스터 생성 방법 선택
클러스터 생성은 빠른 생성
과 사용자 지정 생성
중에 선택이 필요하다.
MSK 생성 시, 나중에 변경 가능한 설정과 변경 불가능한 설정이 있기 때문에, 환경에 맞게 선택이 필요하다.
빠른 생성
빠른 생성
은 모범 사례를 사용하여, Kafka 버전과 브로커 영역 수, 영역당 브로커 수, 브로커 유형(인스턴스 유형), 스토리지 사이즈만 설정하여 스타터 클러스터를 생성 가능하다.
빠른 생성
은 VPC를 기본 VPC밖에 선택하지 못하기 때문에, 다른 서비스와 VPC를 격리시키고 싶거나, 커스터마이즈가 필요한 개발 서버 및 운영 서버에는 적합하지 않다.
사용자 지정 생성
사용자 지정 생성
은 총 5가지 단계(클러스터 설정, 네트워킹, 보안, 모니터링 및 태그, 검토 및 생성)로 클러스터를 설정한다.
1단계: 클러스터 설정
브로커
MSK 클러스터에서 사용할 브로커의 설정이다.
- 브로커의 유형(인스턴스 유형), 영역 수, 영역당 브로커 수를 설정한다.
- 영역은 가용영역을 나타내며, 영역 수를 3으로 하면 클러스터를 배포할 VPC에는 3개의 가용영역에 대해 Subnet이 설정되어 있어야 한다.
- 영역당 브로커 수는, 한 가용영역에 대해 배포될 브로커의 수이다. 배포 후 변경을 통해 브로커 수를 늘릴 수 있다. (축소는 안됨)

스토리지

구성
브로커 설정에 관련한 파라미터

2단계: 네트워킹
VPC
- 브로커를 배포할 VPC 선택
- 전 단계에서 영역 수를 3으로 설정했기 때문에 3개의 영역과 각 영역에 대해 Subnet 선택

퍼블릭 액세스
- 브로커에 퍼블릭 액세스 가능하게 하는 설정
- 아래의 조건을 만족 필요
- 퍼블릭 subnet에 브로커 배포 (Internet Gateway 연결 필요)
- 인증되지 않은 액세스 제어 비활성화
- SASL/IAM, SASL/SCRAM, MTL과 같은 액세스 제어 방법 중 하나 이상이 활성화
- 클러스터 내 암호화 활성화 (기본값 활성화, 배포후 변경 불가)
- 브로커와 클라이언트 간의 일반 텍스트 트래픽 비활성화
Amazon EC2의 보안 그룹
브로커와 통신을 위한 Inbound와 Outbound를 설정하기 위한 보안 그룹
- Kafka Client 설정하려면 Inbound에 CLient의 보안그룹 추가 필요
3단계: 보안
액세스 제어 방법
- 인증되지 않은 액세스
- IAM 역할 기반 인증
- SASL/SCRAM 인증
- AWS Secrets Manager를 사용하여 인증
- AWS Certificate Manager를 통한 TLS 클라이언트 인증
암호화
- Client와 브로커 간
- TLS 암호화
- 액세스 제어 방법으로 IAM 역할 기반 인증, 혹은 SASL/SCRAM 인증을 선택하면 자동으로 TLS 암호화 활성화
- 일반 텍스트
- Cluster 내
- TLS 암호화
- 액세스 제어 방법으로 IAM 역할 기반 인증, 혹은 SASL/SCRAM 인증을 선택하면 자동으로 TLS 암호화 활성화

4단계: 모니터링 및 태그
Amazon CloudWatch 지표 설정
- 기본 모니터링
- 기본 클러스터와, 브로커 모니터링 (추가 비용 없음)
- 향상된 브로커 수준 모니터링
- 향상된 주제 수준 모니터링
- 향상된 파티션 수준 모니터링
