Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지/기본,심화 개념, 아키텍처와 생태계

Ch03. Apache Kafka 구성 및 관리 - Apache Kafka and Confluent Reference Architecture

webmaster 2023. 5. 2. 23:29
728x90
  • Confluent Platform Architecture
  • Large Cluster Reference Architecture
  • Small Cluster Reference Architecture
  • Capacity Planning
  • Hardware Recommendations for On-Premises
  • Deployment
  • Public Cloud Deployment

Large Cluster Reference Architecture

높은 처리량의 장기적인 확장성을 위해 구축된 Confluent Platform 클러스터 아키텍처

  • 이 아키텍처는 확장을 고려해 설계
  • 각 구성 요소는 자체 서버를 기반으로 구성
  • 노드를 추가하여 독립적으로 확장할 수 있음
  • 예로, Confluent REST Proxy를 사용하는 애플리케이션을 추가할 때 REST Proxy는 더 이상 필요한 처리량을 제공하지 못하는 반면 기존 Kafka Broker에는 여전히 여유 용량이 있다면, 이 경우 REST Proxy 노드를 추가하여 확장하면 됨

Small Cluster Reference Architecture

Confluent Platform의 채택 초기 단계에서 주로 사용하는 아키텍처

 
  • 대부분 Kafka를 처음 도입하는 조직은 부하가 제한된 하나의 사용 사례에 대해 Confluent Platform을 채택하는 것으로 시작
  • 이 채택이 성공적으로 입증되면 조직은 추가 애플리케이션과 팀을 수용할 수 있도록 클러스터를 확장
  • 일반적으로 초기 도입 프로젝트의 성공을 위해 전체 배포에 대한 투자가 필요하지 않은 Confluent Platform 채택의 초기 단계에 이 아키텍처를 권장
  • 이러한 경우 더 적은 수의 서버로 시작하고 서버당 여러 구성 요소를 설치하는 것을 권장
  • Confluent Control Center 및 Confluent ksqlDB와 같은 리소스 집약적 구성 요소에 대해서는 전용 서버를 구성하는 것을 권장

Hardware Recommendations for On-Premises Deployment Large Cluster

Large Cluster용 HW 권장 사양

Component Nodes Strage Memory CPU
Zookeeper 5 (내결함성을 위해) Transaction log: 512GB SSD
Storage: 2 X 1TB SATA, RAID 10
32GB 2-4 cores
Kafka Broker 최소3 (추가 스토리지, 메모리, 네트워크 처리량을 위해서 추가) 12X1TBdisk,RAID10 선택사항 64GB이상 (많을수록 좋음) Dual 12-core sockets
Kafka Connect 최소2 (고가용성을 위해) 설치에 필요한 만큼만 0.5-4 GB Heap 사이즈
( Connector 사용에 따라 다름 )
CPU 많이 사용하지 않음
Confluent Schema Registry 최소2 (고가용성을 위해) 설치에 필요한 만큼만 1 GB Heap 사이즈 CPU 많이 사용하지 않음
Confluent REST Proxy 최소2 고가용성을 위해 ( 처리량 증가를 위해서 추가 ) 설치에 필요한 만큼만 1GB +
64 MB per Producer + 16 MB per Consumer
최소 16 cores
ksqlDB 최소2 고가용성을 위해 (처리량 증가를 위해서 추가) SSD
동시 Query수와 수행되는 집계에 따라 용량이 다름
최소20GB 최소 4 cores
Control Center 1 최소 300 GB(SSD 선호) 32GB이상 최소 8 cores
 

Small Cluster용 HW 권장 사양

Component Nodes Strage Memory CPU
Zookeeper + Kafka Broker 최소3 12X1TBdisk
1개의 Transaction log 전용 disk
64GB 이상 Dual 12 core sockets
Kafka Connect + Confluent Schema Registry + Confluent REST Proxy 최소2 ( 고가용성을 위해 ) 설치에 필요한 만큼만 1 GB (Connect)
1 GB (Schema Registry) 1GB+64MBper Producer +
16 MB per Consumer(REST Proxy)
최소 16 cores
ksqlDB 최소2 고가용성을 위해 (처리량 증가를 위해서 추가) SSD
동시 Query수와 수행되는 집계에 따라 용량이 다름
최소20GB 최소 4 cores
Control Center 1 최소 300 GB(SSD 선호) 32GB이상 최소 8 cores

Public Cloud Deployment AWS, MS Azure, Google Cloud Platform

유의할 점

  • Core : Cloud Provider는 시스템 크기를 조정할 때 "가상" Core를 사용 일반적으로 데이터 센터에서 사용하는 최신 Core보다 성능이 낮을 수 있음
  • Network : 대부분의 Cloud Provider는 최상위 계층 노드에서만 10GbE를 제공
    • 복제 트래픽을 고려한 필요 처리량을 제공하기에 충분한 네트워크 용량 확인
  • On-Premises 환경에서 설치시 HW 사양을 Public Cloud 환경에서도 권장

Public Cloud Deployment AWS EC2

Component Node Type Memory CPU Storage Network
Zookeeper m5.large 8GB 2 vCPU 1X32GBSSD Up to 10 Gbps
Kafka Broker r5.large 30.5 GB 4 vCPU SSD-based EBS Storage EBS Optimized Up to 10 Gbps
Kafka Connect c5.xlarge 8GB 4 vCPU Use EBS Up to 10 Gbps
Confluent REST Proxy c5.xlarge 8GB 4 vCPU Use EBS Up to 10 Gbps
Confluent Schema Registry m5.large 8GB 2 vCPU Use EBS Up to 10 Gbps
Confluent ksqlDB i3.xlarge or r5.xlarge 30.5 GB 4 vCPU Use EBS(SSD, optimized) Up to 10 Gbps
Confluent Control Center

m5.2xlarge 32 GB 8 vCPU Use EBS(SSD, optimized) Up to 10 Gbps

Google Cloud Compute Engine 최소 사양

 
Component Node Type Memory CPU Storage
Zookeeper n1-standard-2 7.5 GB 2 vCPU Zonal SSD persistent disks
Kafka Broker n1-highmem-4 26 GB 4 vCPU Zonal Standard persistent disks
Kafka Connect n1-standard-4 15 GB 4 vCPU Zonal Standard persistent disks
Confluent REST Proxy n1-standard-4 15 GB 4 vCPU Zonal Standard persistent disks
Confluent Schema Registry n1-standard-2 7.5 GB 2 vCPU Zonal Standard persistent disks
Confluent ksqlDB n1-highmem-4 26 GB 4 vCPU Zonal SSD persistent disks
Confluent Control Center

n1-highmem-8 52 GB 8 vCPU Zonal SSD persistent disks

Eventsizer Kafka Sizing을 위한 도구

 

728x90