토픽 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