본문 바로가기
카테고리 없음

MSK(Kafka) Best Practice

by 홍띠 2023. 11. 26.

Cluster 운영

  • 브로커 유형에 따른 권장 파티션 수를 초과하지 않도록 한다. 
    kafka.t3.small 300
    kafka.m5.large or kafka.m5.xlarge 1000
    kafka.m5.2xlarge 2000
    kafka.m5.4xlarge, kafka.m5.8xlarge, kafka.m5.12xlarge, kafka.m5.16xlarge, or kafka.m5.24xlarge 4000
  • 브로커의 총 CPU 사용률 (CPU User + CPU System) 을 60% 미만으로 유지한다.
  • 디스크 공간 확보를 위해, KafkaDataLogsDiskUsed 값을 85% 미만으로 유지한다.

Topic 생성

  • Topic name은 Convention을 정해서 표준화된 Topic name을 사용 할 수 있도록 한다.
    (참고: )
    convention 예시: 
    • 포맷: <message type>.<dataset name>.<data name>
    • snake_case사용
    • message type: logging, queuing, tracking, db, streaming 등
  • replication factor(RF)는 2AZ Cluster→ 2개 이상, 3AZ Cluster → 3개 이상으로 한다.
  • minimum in-sync replicas(minISR)은 replication factor(RF) -1 이하로 한다.

Consumer 구성

  • 1개의 Consumer Group에 Consumer의 수는 Partition 수보다 적게하여, 리소스 낭비를 막는다.

 

참고: 

https://docs.aws.amazon.com/ko_kr/msk/latest/developerguide/bestpractices.html

https://cnr.sh/essays/how-paint-bike-shed-kafka-topic-naming-conventions