본문 바로가기

AWS

[AWS] MSK Express 브로커 Intelligent Rebalancing 설정 가이드

Amazon MSK(Managed Streaming for Apache Kafka)에서 Express 브로커+Intelligent Rebalancing은 Provisioned 클러스터의 파티션 자동 재분배 및 최적화를 제공합니다. 이 기능은 별도 설정 없이도 자동으로 활성화되며 Kafka 운영 리소스를 효율적으로 관리할 수 있도록 설계된 기능입니다.

1. Intelligent Rebalancing 개요

Intelligent Rebalancing은 MSK Express 브로커를 사용하는 Provisioned 클러스터에서 파티션 균형(balancing) 상태를 자동으로 관리하는 기능입니다.

  • Kafka 클러스터가 Scale up/down 될 때 자동으로 파티션을 재분배합니다.
  • 클러스터가 정상 상태에서도 리소스 부하 분산이 필요할 때 자동으로 재조정 합니다.
  • 별도 설정 없이 자동 활성화되어 운영 편의성을 제공합니다.

기능 효과

항목 설명
자동 파티션 재분배 스케일 작업 시 자동으로 실행
리소스 불균형 개선 특정 브로커 과부하 시 자동 조정
다운타임 없음 클러스터 가용성 유지하면서 실행
추가 비용 없음 Express 브로커 클러스터 기본 제공
성능 표준 브로커 대비 최대 180x 빠른 리밸런싱 지원 Amazon Web Services, Inc.

2. 사전 조건

  1. MSK Provisioned 클러스터여야 함
    서버리스 클러스터에서는 지원되지 않습니다.
  2. Express 브로커 타입 선택 필수
    Standard 브로커에서는 Intelligent Rebalancing이 자동 활성화되지 않습니다.
  3. AWS 리전 지원 여부 확인
    Express 브로커가 지원되는 AWS 리전 내에서만 인식됩니다.

3. 클러스터 생성 시 설정

Intelligent Rebalancing은 Express 브로커 클러스터 생성 시 자동 활성화됩니다.

콘솔에서 생성

  1. AWS 콘솔 > Amazon MSK > 클러스터 생성 클릭
  2. Provisioned 선택
  3. Express 브로커 선택
  4. 나머지 설정 (VPC, AZ, 브로커 수, EC2 인스턴스 타입 등) 완료
  5. 생성 시작

주의: Intelligent Rebalancing은 기본 ON이며, 생성 이후에 끌 수 있습니다.

CLI 또는 IaC 만들어두기 (예시)

aws kafka create-cluster \
  --cluster-name my-msk-express \
  --broker-node-group-info '{
      "brokerAZDistribution":"DEFAULT",
      "clientSubnets":["subnet-abc123","subnet-def456","subnet-ghi789"],
      "instanceType":"kafka.m7g.large"
  }' \
  --encryption-info '{
      "encryptionInTransit":{"clientBroker":"TLS","inCluster":true}
  }' \
  --broker-type "PROVISIONED" \
  --number-of-broker-nodes 3 \
  --enhanced-monitoring "PER_TOPIC_PER_BROKER"

Express 브로커 선택은 AWS Console/CLI 상에서 broker node group info의 instanceType 기반으로 간접적으로 지정됩니다. 현재 AWS 문서상 직접 Intelligent Rebalancing 파라미터는 따로 존재하지 않습니다.

4. Intelligent Rebalancing 상태 확인

콘솔

  1. MSK 클러스터 상세로 이동
  2. Monitoring 또는 Rebalancing 상태 탭 확인
  3. Rebalance status: Active/Idle 표시 확인

CloudWatch 지표

지표 의미
RebalanceInProgress 리밸런싱이 진행 중일 때 1, 아니면 0
UnderProvisioned 리소스 부족 상태, 리밸런싱 불가 상태

5. 유지보수 및 운영

5.1 평상시 상태

Intelligent Rebalancing은 기본적으로 모니터링 + 판단 + 리밸런싱 루프를 수행합니다. 다음과 같은 청사진으로 동작합니다:

  • 브로커 리소스가 과부하 또는 저활용 상태 감지 시
  • 재분배 트리거
  • 파티션 이동
  • 최적 상태 유지

운영 측에서는 CloudWatch 지표와 알림 설정을 통해 자동화 감시 플로우를 구성하는 것이 좋습니다.

5.2 스케일 작업

클러스터를 증설/축소할 때 Intelligent Rebalancing은 자동으로 파티션을 새 브로커로 이동하거나 제거 브로커의 파티션을 다른 브로커로 분산합니다.

  • 클러스터 다운타임 없이 실행
  • 노드 수 변경 시 자동 실행

6. Intelligent Rebalancing 끄기

특별히 필요할 경우, Intelligent Rebalancing을 일시 중지할 수 있습니다. 예를 들어 Cruise Control 같은 타사 도구를 사용하려 할 때 입니다.

AWS CLI

aws kafka update-rebalancing \
  --cluster-arn "arn:aws:kafka:REGION:ACCOUNT:cluster/your-cluster-id" \
  --current-version "abcd1234" \
  --rebalancing '{"status":"PAUSED"}'

활성화

aws kafka update-rebalancing \
  --cluster-arn "arn:aws:kafka:REGION:ACCOUNT:cluster/your-cluster-id" \
  --current-version "abcd1234" \
  --rebalancing '{"status":"ACTIVE"}'

7. 주의사항

  • Intelligent Rebalancing이 자동으로 활성화되며 별도 옵션은 필요 없습니다.
  • 기존 Standard 브로커에 적용 불가합니다.
  • 제약: 20,000 파티션/브로커 상한이 권장값으로 명시되어 있습니다.

8. 정리

Intelligent Rebalancing은 설정이 필요 없는 자동 파티션 리밸런싱 기능으로, MSK Express 브로커 클러스터 생성 시 기본으로 활성화됩니다. 운영자 입장에서는 관리 부담을 줄이고 안전한 확장/축소 및 최적화된 리소스 분배를 기대할 수 있습니다.