kjp0411 님의 블로그
내일배움캠프 단기심화 Java - 본 캠프 Day 48 본문
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대가 필요한지 설명할 수 있어야 한다.
- 비용과 아키텍처를 함께 설계하는 것이 백엔드 개발자의 중요한 역량이라는 걸 체감함
'TIL' 카테고리의 다른 글
| 내일배움캠프 단기심화 Java - 본 캠프 Day 50 (0) | 2026.04.23 |
|---|---|
| 내일배움캠프 단기심화 Java - 본 캠프 Day 49 (0) | 2026.04.22 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 47 (0) | 2026.04.20 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 46 (0) | 2026.04.17 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 45 (0) | 2026.04.16 |
