12장. Kafka 네트워크 카드 선택 가이드 (KRaft 기반)
Kafka를 KRaft 모드(Kafka Raft Metadata Mode)로 운영할 경우, 브로커, 컨트롤러, 또는 브로커/컨트롤러 겸용 노드 각각의 역할에 따라 네트워크 카드(NIC)의 성능 요구가 달라집니다. 이 장에서는 Kafka에서 네트워크가 어떻게 사용되는지와, 역할별 적절한 NIC를 선택하는 방법을 정리합니다.
12.1 Kafka에서 네트워크가 사용되는 영역
Kafka 클러스터에서는 아래와 같은 통신이 지속적으로 발생합니다:
| 통신 대상 | 설명 |
|---|---|
| 프로듀서 → 브로커 | 데이터 수집 (Ingress) |
| 브로커 → 컨슈머 | 데이터 전송 (Egress) |
| 브로커 ↔ 브로커 | 파티션 복제 (Replication) |
| 브로커 ↔ 컨트롤러 | 메타데이터 동기화 |
| 컨트롤러 ↔ 컨트롤러 | Raft 기반 메타데이터 복제 |
12.2 브로커 기준 트래픽 예시 계산
예를 들어 다음과 같은 조건에서:
- 메시지 크기: 1KB
- 초당 메시지 수: 50,000
- replication.factor: 3
계산 결과:
- Ingress: 50 MB/s
- Replication: 100 MB/s (2개 복제 노드)
- Egress: 50 MB/s
- 총합: 200 MB/s ≒ 약 1.68 Gbps
→ 이 정도 트래픽을 안정적으로 처리하려면 최소 10Gbps NIC가 필요합니다.
12.3 단위 변환 공식 (MB/s → Gbps)
- 1 Byte = 8 bits
- 1 MB = 1,048,576 Bytes
- 1 Gbps = 1,000,000,000 bits/s
200 MB/s × 1,048,576 × 8 = 1,677,721,600 bits/s ≒ 1.68 Gbps
12.4 노드 유형별 NIC 선택 기준
브로커 전용 노드
- 권장 NIC: 10~25Gbps 이상
- 특징: 데이터 수신, 복제, 전송 모두 포함 → 트래픽 가장 높음
- 기능 추천: RSS, MTU 9000, TCP Offload
컨트롤러 전용 노드
- 권장 NIC: 1Gbps 이상 (안정성 우선)
- 특징: 메타데이터 트래픽 위주, Raft 기반 통신 → 지연(Latency)에 민감
- 권장 설정: MTU 9000
브로커 + 컨트롤러 겸용 노드
- 권장 NIC: 25Gbps 이상
- 특징: 데이터 처리와 메타데이터 처리 동시 수행 → 고성능 NIC 필요
12.5 AWS EC2 기준 네트워크 성능 예시
| 인스턴스 타입 | 최대 네트워크 대역폭 | 특징 |
|---|---|---|
| t3.medium | 최대 5Gbps | 테스트 용도 |
| m5.2xlarge | 최대 10Gbps | 소규모 운영용 |
| c6i.4xlarge | 최대 12.5Gbps | 일반 브로커 용도 |
| m6in.8xlarge | 최대 40Gbps + MTU 9000 지원 | 겸용 노드에 적합 |
| c6gn.16xlarge | 최대 100Gbps | 고성능/대형 클러스터용 |
참고: ENA(Elastic Network Adapter)와 MTU 9000 지원 여부를 반드시 확인해야 합니다.
12.6 ENA와 MTU 9000 개념 정리
ENA (Elastic Network Adapter)
AWS EC2의 고성능 네트워크 어댑터로:
- 최대 100Gbps까지 지원
- 멀티큐(RSS), 네트워크 오프로드 등 고급 기능 포함
- Kafka 같은 네트워크 중심 워크로드에서 매우 유리함
MTU 9000 (Jumbo Frame)
- 일반 MTU는 1500 Bytes
- MTU 9000은 패킷당 9000 Bytes까지 전송 가능
- 장점:
- CPU 부하 감소
- 전송 효율 향상
- Throughput 증가
12.7 네트워크 튜닝 실전 명령어
| 항목 | 명령어 |
|---|---|
| MTU 확인/설정 | ip link show / ip link set dev eth0 mtu 9000 |
| NIC 오프로드 기능 확인 | ethtool -k eth0 |
| 멀티큐(RSS) 설정 확인 | ethtool -l eth0 |
| NIC 드라이버 확인 | ethtool -i eth0 (ENA 여부 확인용) |
12.8 네트워크 선택 요약
| 역할 | 트래픽 강도 | 권장 NIC | 비고 |
|---|---|---|---|
| 브로커 | 매우 높음 | 10~25Gbps 이상 | 메시지 수신/전송 + 복제 포함 |
| 컨트롤러 | 낮음 (지연 민감) | 1Gbps 이상 | 안정적인 메타데이터 처리 중요 |
| 겸용 노드 | 매우 높음 + 지연 중요 | 25Gbps 이상 | 종합적 처리 요구 |
Kafka 클러스터에서 네트워크는 병목 현상을 가장 쉽게 일으킬 수 있는 요소입니다.
따라서 트래픽 양에 맞는 NIC 대역폭과 기능을 갖춘 구성이 중요합니다.