kjp0411 님의 블로그

내일배움캠프 단기심화 Java - 본 캠프 Day 48 본문

TIL

내일배움캠프 단기심화 Java - 본 캠프 Day 48

kjp0411 2026. 4. 21. 20:22

TIL - 2026.04.21

오늘 한 일

  • 티케팅 시스템에서 Kafka 기반 비동기 이벤트 처리 구조 설계 고민
  • Kafka 브로커를 1개 vs 3개로 구성할지 비용/아키텍처 관점에서 비교
  • AWS EC2 인스턴스 비용 계산 및 운영 전략 수립
  • 단기간(1주일) 운영을 통한 비용 최적화 방식 고려

오늘 배운 점

1. Kafka 고가용성의 핵심은 “브로커 수”

Kafka는 단순 메시지 큐가 아니라
Replication 기반 분산 시스템이다.

  • replication.factor = 3 → 브로커 3개 필요
  • 브로커 1개 → 복제 불가능 → 사실상 Kafka 의미 없음

즉, Kafka를 “제대로” 쓰려면 최소 3 브로커는 필수

 

2. 브로커 1개 vs 3개 차이

구분 브로커 1개 브로커 3개
장애 대응 불가능 (SPOF) 1대 장애 허용
데이터 복제 불가능 가능
안정성 매우 낮음 높음
실무 적합성 X O

결론: 티케팅처럼 순간 트래픽이 폭발하는 시스템에서는 3 브로커 구성이 사실상 필수

 

3. 비용 구조 이해

Kafka를 고가용성으로 구성하면:

  • EC2 (m5.large) × 3대
  • $308 / 월

한화 기준:

  • 40만 ~ 43만 원 / 월

 

4. 비용 최적화 전략

항상 띄워둘 필요는 없음.

운영 전략

  • 평소 (개발 환경)
    • Kafka 1 브로커
  • 테스트 / 시연 기간
    • Kafka 3 브로커 (약 1주 운영)

1주 비용

  • 약 $72
  • 9만 ~ 10만 원

→ 현실적으로 감당 가능한 수준

 

5. 최종 아키텍처 방향

[ API 서버 (Producer) ]
        ↓
[ Kafka Cluster (3 Broker) ]
        ↓
[ Consumer (좌석/결제 처리) ]
  • 브로커는 각각 별도 EC2
  • 가능하면 AZ 분산 배치
  • 메시지 유실 방지 설정 필수

 

인사이트

  • Kafka는 “붙이면 좋은 기술”이 아니라 인프라 비용까지 고려해야 하는 선택이다.
  • 단순히 도입하는 것이 아니라 왜 3대가 필요한지 설명할 수 있어야 한다.
  • 비용과 아키텍처를 함께 설계하는 것이 백엔드 개발자의 중요한 역량이라는 걸 체감함