나만무 · 12

  1. 2025
  2. 7월
  3. Architectural Improvements 407.28
  4. Poster Design Note : Form and Flow07.25
  5. Poster Design Note : How We Made It07.25
  6. Architectural Improvements 307.21
  7. Logo Design Note : The Logic of Flow07.21
  8. DeepDive : Many Over Mighty07.20
  9. Architectural Improvements 207.19
  10. DeepDive : GC-Triggered Stop-the-World07.19
  11. Architectural Improvements 107.18
  12. PhantomFlow : High-performance HTTP request simulator07.18
  13. Introduction to Project KlickLab07.18
  14. What is Clickstream data?07.18

Architectural Improvements 4

나만무 최종 발표 하루 전
인프라 원복 직전의 상황이다.
테스트 전용 사양으로 다운그레이드 해놓은 Kafka 브로커(t3.small)와
원래 사양(m5.large)을 정면 비교할 수 있는 단 한 번의 기회가 왔다.
이번 글은 그 실험 기록이다.


실험 배경

우리는 초당 1만 건 목표를 향해 인프라를 키워 왔다.
그러다 발표전까지 비용을 아껴야한다는 판단으로
Kafka 브로커를 m5.large → t3.small 로 내려놓았다. 

원복 작업이 예정돼 있던 바로 그날 밤, 
실제로 다운사이징이 병목일까?” 를 수치로 증명하기 위해 실험을 진행했다.

이미 휴면(Scale‑in) 전 m5.large 로그는 보관해 둔 상태라서
이제 t3.small 구간만 남기면 완벽한 A/B 비교가 가능했다.

그리고 만약 다운사이징을 한 상태에서도
RPS 1만이 나온다면,
우리는 비용을 더 아낄 수 있다.

나와도 좋고, 안나오면 그걸 실험으로 증명했으니 좋은 셈이다.


실험 설계

구간Kafka 사양프로듀서 (t2.small) 
At3.small 3 노드70 → 90 대 Step Scaling
Bm5.large 3 노드74 대 (고정)

결과 스크린샷

인스턴스 개수가 늘어도 카프카 병목으로 인해 평균 RPS는 더 이상 증가하지 못한다.

지표구간 A
(t3.small)
구간 B
(m5.large)
평균 RPS7,37510,166
최대 RPS10 0xx12 9xx
딥 스파이크 빈도1/40 s1/120 s

+38 % 처리량, 단지 브로커 사양을 되돌렸을 뿐인데 나온 차이다.


병목의 원인은 무엇이었을까??

1. CPU 크레딧 고갈

2. 메모리 & Page Cache 부족

3. 네트워크 / EBS Baseline 제약

결국 CPU, 메모리, IO 세 축이 동시에 제동되어
선형 스케일이 멈추고 80 ~ 90 대 구간에서 후퇴한것으로 보인다.


결론

근데 진짜 비싸다.