Learning
토픽 185 / 192·시스템 설계 및 아키텍처 패턴

Rate Limiting / Throttling (속도 제한)

Rate Limiting / Throttling (속도 제한)

API나 서비스에 대한 요청 수를 제한하여 시스템 과부하를 방지하고 공정한 리소스 사용을 보장하는 기법으로, DDoS 방어, 비용 관리, 서비스 안정성 확보에 필수

목적: 과부하 방지, DDoS 방어, 공정한 사용, 비용 관리, SLA 보장

특징: 요청 수 제한, 시간 윈도우, 다양한 알고리즘, API Gateway에서 주로 적용

주요 알고리즘

  • Token Bucket: 일정 속도로 토큰 생성, 요청마다 토큰 소비, 버스트 허용, 가장 일반적
  • Leaky Bucket: 일정 속도로 요청 처리(출력), 버퍼 초과 시 드롭, 균일한 출력
  • Fixed Window: 고정 시간 윈도우(분/시간)마다 카운터 초기화, 경계 시점 버스트 문제
  • Sliding Window Log: 각 요청 타임스탬프 기록, 윈도우 내 요청 수 계산, 메모리 사용 높음
  • Sliding Window Counter: Fixed + Sliding 결합, 가중 평균, 효율적

Rate Limiting vs Throttling

  • Rate Limiting: 요청 수 초과 시 거부(429 오류), 엄격한 제한
  • Throttling: 요청 지연 또는 품질 저하, 우아한 성능 저하

적용 수준

  • 사용자/API Key: 개별 사용자 제한
  • IP 주소: 악의적 클라이언트 차단
  • 서비스/엔드포인트: 특정 API 보호
  • 글로벌: 전체 시스템 보호

응답 헤더 (표준)

  • X-RateLimit-Limit: 최대 요청 수
  • X-RateLimit-Remaining: 남은 요청 수
  • X-RateLimit-Reset: 리셋 시간
  • Retry-After: 재시도 대기 시간

장점: 시스템 안정성, DDoS 방어, 비용 예측, 공정한 사용

단점: 정상 사용자 영향, 설정 복잡, 분산 환경 구현 어려움

적용사례: API Gateway(Kong, AWS API Gateway), CDN, 클라우드 서비스

기술요소: Token Bucket, Leaky Bucket, Sliding Window, Redis, API Gateway

비교: Rate Limiting(거부) vs Throttling(지연) vs Circuit Breaker(차단)

연관: API Gateway, DDoS 방어, 429 Too Many Requests, Resilience