본문으로 이동
SSR 서버 최적화로 비용 아끼기
문서

SSR 서버 최적화로 비용 아끼기

정진우/문현경 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

서비스와 트래픽이 늘면서 SSR 서버 수가 많아지자, 토스는 같은 트래픽을 더 적은 자원으로 처리하기 위해 성능 측정과 최적화에 나섰다. Pod 배치에 따른 편차를 없애는 전용 환경을 마련하고, K6 벤치마크와 CPU·Event Loop 지표, Profiling 및 OpenTelemetry 추적으로 병목을 분석했다. React Query 캐시의 serializer를 제거하고 Yarn을 3.6.1 이상으로 업데이트했으며, Express를 Node.js 내장 HTTP 서버로 바꾸는 등 불필요한 오버헤드를 줄였다. 그 결과 CPU 사용률을 평균적으로 약 20% 낮춰 SSR 서버 대수를 줄였으며, 신뢰할 수 있는 측정 환경과 런타임 이해가 최적화의 기반이라는 점을 확인했다.

  • 벤치마크 결과를 신뢰하려면 Pod 배치와 호스트 자원 같은 변인을 통제한 전용 측정 환경이 필요하다.
  • Maximum RPS만 보지 말고 CPU·메모리 사용량과 Event Loop Lag·Utilization을 함께 확인해야 한다.
  • K6와 CPU Profiling, OpenTelemetry 추적으로 병목이 발생하는 컴포넌트와 작업을 구체적으로 찾아낼 수 있다.
  • SSR 데이터가 직렬화 가능한 구조라면 불필요한 serializer 단계를 제거해 렌더링 오버헤드를 줄일 수 있다.
  • 서버 요구사항에 맞지 않는 프레임워크 기능은 비용이 될 수 있으므로, Express 대신 Node.js 내장 HTTP 서버를 검토할 수 있다.

소개

오늘은 SSR 아키텍처 운영을 위해 반드시 알아두어야 할, SSR 서버의 최적화와 관련된 이야기를 해보려 합니다. 최적화를 통해 토스는 서비스 운영에 필요한 SSR 서버의 수를 절감하여 비용을 개선할 수 있었습니다.

비슷한 학습 자료

문서 이세찬

토스페이먼츠 데이터 엔지니어링 팀이 50억 건의 데이터를 1초 이내로 조회하는 시스템을 구축한 이야기를 들려드려요.

백엔드 데이터베이스

문서 김경윤

TPS가 평균 1만, 최대 2만까지 늘어난 약관(terms) 서버에 안정적인 서비스 제공을 위해 캐시를 적용한 이야기를 들려드리려고 해요.

백엔드 데이터베이스

문서 토스 프론트엔드 챕터

프론트엔드 개발자라면 한 번쯤 고민해봤을 성능 최적화! 토스 개발자들이 전하는 최적화의 본질과 실무 노하우를 공개합니다. 초기 로딩부터 런타임 최적화까지, 토스의 박서진, 박건영, 조유성 님이 전하는 최적화 사례와 비법을 만나보세요!

웹 개발 프론트엔드

문서 정석호

토스 프론트엔드 챕터에서는 하나의 모노레포에서 200여개가 넘는 서비스를 관리하고 있어요. 이렇게 커진 모노레포에서도 git push 부터 배포까지 5분을 유지할 수 있는 비결을 소개합니다!

프론트엔드 데브옵스 · 인프라

문서 함종현

늘어나는 트래픽을 잘 처리하기 위해 서버 개발자는 어떤 고민을 해야 할까요? “라이브 쇼핑 보기” 서비스에 대규모 트래픽이 들어오면서 겪은 문제와 해결책을 공유드려요.

백엔드 데이터베이스

문서 박명순

토스페이먼츠 DevOps 엔지니어가 스토리지 파일 시스템을 OpenZFS로 변경하면서 성능은 높이고 비용은 절감한 과정을 소개합니다.

데브옵스 · 인프라 시스템 · 운영체제