보안Medium#223
Rate Limiting은 어떤 공격과 장애를 완화하나요?
#보안#RateLimit#API#운영
답변 포인트
요청량 제한 기준과 알고리즘를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
Rate Limiting은 로그인 brute force, API 남용, 크롤링, 트래픽 폭주를 완화합니다. 토큰 버킷이나 슬라이딩 윈도우로 사용자/IP별 요청량을 제한합니다.
Rate Limiting은 특정 사용자, IP, 토큰, API key가 일정 시간 동안 보낼 수 있는 요청 수를 제한하는 기법입니다. 무차별 대입, 스크래핑, DDoS 일부, 실수로 인한 과도한 재시도, 비용 폭주를 완화합니다.
완화할 수 있는 문제
- 로그인 brute force와 credential stuffing
- 비밀번호 재설정/OTP 발송 남용
- 비싼 검색 API 과다 호출
- 외부 API 장애 시 클라이언트의 무한 재시도
- 특정 tenant의 트래픽이 전체 서비스를 잠식하는 noisy neighbor 문제
대표 알고리즘
| 방식 | 특징 |
|---|---|
| Fixed Window | 구현 쉽지만 경계 시점 burst 가능 |
| Sliding Window | 더 정확하지만 저장 비용 증가 |
| Token Bucket | 평균 속도 제한 + 짧은 burst 허용 |
| Leaky Bucket | 일정한 처리율로 평탄화 |
Text
Token Bucket: 초당 10개 토큰 충전, 최대 100개 저장
요청 1개 처리 시 토큰 1개 소비실무 설계 포인트
- 기준 키를 IP만으로 잡으면 NAT 환경에서 정상 사용자가 피해를 볼 수 있습니다.
- 로그인은 계정+IP 조합, API는 user/token/tenant 단위 제한이 더 적합할 수 있습니다.
- 분산 서버에서는 Redis 같은 중앙 저장소나 API Gateway 제한이 필요합니다.
- 제한 시
429 Too Many Requests와Retry-After를 반환합니다.
한계
Rate limiting은 대규모 DDoS를 혼자 막지 못합니다. CDN, WAF, bot detection, queue, circuit breaker와 함께 사용해야 합니다.
면접 답변 포인트
Rate Limiting은 남용과 장애 전파를 줄이는 방어선이며, 제한 단위와 알고리즘 선택이 중요합니다. 429 응답, 분산 환경의 일관성, 정상 사용자 피해 최소화까지 언급하면 좋습니다.