피드로 돌아가기
Día 12: 5.000 personas hicieron click al mismo tiempo. Tu servidor pidió perdón.
Dev.toDev.to
Backend

Token Bucket 기반 Rate Limiting 도입으로 5,000 TPS 트래픽 폭주 시 시스템 붕괴 방지

Día 12: 5.000 personas hicieron click al mismo tiempo. Tu servidor pidió perdón.

Alejandro Lafourcade Despaigne2026년 4월 23일7intermediate

Context

단일 서버의 한정된 Thread 리소스로 인해 동시 요청 폭주 시 Queue 적체 및 Timeout이 발생하는 Cascade Failure 상황 분석. Rate Limit 부재로 인한 무제한 요청 수용이 전체 서비스 가용성을 저하시키는 병목 지점으로 식별.

Technical Solution

  • Token Bucket 알고리즘 채택을 통한 지속적 트래픽 제어 및 단기 Burst 요청 허용 구조 설계
  • Business Logic 진입 전 Filter 단계에서 인터셉트하여 불필요한 Resource 소모 차단
  • Client IP 및 Request URI 조합의 Key 설계를 통한 엔드포인트별 정밀한 트래픽 제어
  • HTTP 429 (Too Many Requests) 응답과 Retry-After 헤더 제공으로 클라이언트 측의 재시도 제어 유도
  • API Gateway를 통한 인프라 보호와 Application Layer의 비즈니스 로직 보호를 결합한 2단계 방어 체계 구축

- 인프라 보호를 위한 API Gateway/Load Balancer 레벨의 Rate Limit 설정 여부 검토 - 비즈니스 특성에 따른 엔드포인트별 차등 제한 수치(Quota) 정의 - 클라이언트의 무분별한 재시도를 방지하기 위한 Exponential Backoff 전략 적용 확인 - Token Bucket 또는 Leaky Bucket 알고리즘 중 서비스의 Burst 허용 요구사항에 맞는 모델 선택

원문 읽기