Tumblr 아키텍처 분석 (2013)

Source

  • Evernote/Inbox/야후가 1조원 건넨 텀블러 아키텍처 때문.md

Summary

야후가 텀블러를 11억 달러에 인수한 배경에는 단순한 사업적 가치보다 뛰어난 기술적 아키텍처에 대한 평가가 있었다. 월 150억 페이지뷰, 초당 4만 리퀘스트 피크를 처리하는 텀블러는 초기 LAMP(PHP/MySQL) 구조에서 분산형 서비스 모델로 전환했다. 핵심은 실시간성과 일관성이 요구되는 ‘대시보드’를 위해 셀(Cell) 기반 아키텍처를 도입하고, Scala와 Finagle을 활용한 JVM 중심 서비스 레이어로 마이그레이션한 점이다. MySQL은 유지하되, 쓰기 성능이 필요한 부분과 대시보드 캐싱에는 HBase와 Redis를 적극 활용하며 확장성을 확보했다.

Key Points

  • 인수 배경: 야후는 텀블러의 급성장 속에서도 안정적으로 확장된 기술 인프라와 아키텍처 역량을 높게 평가했다.
  • 트래픽 규모: 월 150억 PV, 일 5억 PV, 초당 4만 리퀘스트 피크. 일일 신규 데이터 3TB, 팔로워 리스트 업데이트 2.7TB.
  • 아키텍처 진화: 초기 LAMP(PHP/MySQL) 구조에서 분산 서비스 모델로 전환. PHP는 프레젠테이션 레이어로 남기고, 백엔드 로직은 Scala/Finagle 기반 JVM 서비스로 분리.
  • 대시보드 최적화: 실시간 피드 제공을 위해 셀(Cell) 기반 아키텍처 적용. 사용자와 팔로워를 묶어 HBase에 저장하고 Redis로 캐싱하여 쓰기/읽기 성능 향상.
  • 기술 스택: 웹서버(Apache/Nginx), DB(MySQL, HBase, Redis, Memcached), 메시지 큐(Kafka, Gearman), 로드밸런서(HAProxy), 캐시(Varnish) 등 혼합 사용.
  • 확장성 전략: 고가용성을 위해 코모디티 하드웨어 다수 사용. 지리적 분산 인프라 구상 중.