목록 보기
대용량 트래픽을 견디는 서버 만들기 — Rust 기반 게이트웨이 구축
백엔드

대용량 트래픽을 견디는 서버 만들기 — Rust 기반 게이트웨이 구축

크리에이트립
크리에이트립
2025년 4월 10일

두줄요약

대용량 트래픽으로 반복 다운되던 GraphQL 게이트웨이를 Rust 기반 Apollo Router로 재구축했습니다. 배포 후 처리 성능과 자원 사용률이 크게 개선되어 장애 없이 운영 중입니다.

문제 상황

  • GraphQL 게이트웨이가 대량 트래픽과 봇 요청에 의해 CPU, 메모리 100%까지 치솟으며 반복 다운되는 상황
  • Node.js Apollo Gateway의 싱글 스레드 구조와 GraphQL 쿼리 파싱 비용이 병목으로 작용
  • 컨테이너 오토스케일링만으로는 급격한 트래픽 스파이크를 안정적으로 흡수하기 어려운 상태

해결 방법

  • Lambda 기반 게이트웨이와 Node.js 최적화를 시도했지만 콜드 스타트, 쿠키 전달 이슈로 운영 배포를 보류
  • 멀티스레드 기반 Rust와 Apollo Router를 도입해 POC, Dockerize, ECS 운영 가능성을 단계적으로 검증
  • router.yaml, rhai 스크립트, Redis, ElasticSearch 연동으로 기존 게이트웨이 기능을 Rust로 재구성

성능/운영 포인트

  • DashMap, lazy_static, Arc, Mutex, RwLock으로 멀티스레드 안전성과 조회 성능 확보
  • 데이터스트림 로그 적재 시 create 사용, bulk 처리, 카나리 배포로 운영 리스크 완화
  • 배포 후 p95 지연시간 100ms 이상 감소, CPU·메모리 사용률 대폭 하락

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...