처리율 제한 장치(rate limiter)
클라이언트/서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치
ex. HTTP → 특정 기간 내 전송되는 클라이언트의 요청 횟수 제한
⇒ API 요청 횟수 > 제한 장치에 정의된 임계치 → 추가로 도달한 모든 호출 처리 중단(block)
- 사용자) 초당 2회 이상 새 글 올리기 X
- 같은 IP 주소로는 하루에 10개 이상의 계정 생성 X
- 같은 디바이스로는 주당 5회 이상 reward 요청 X
장점
- Dos(Denial of Service) 공격에 의한 자원 고갈 방지
- ex. 트위터: 3시간 동안 300개의 트윗 올릴 수 있도록 제한
/ Google docs: 사용자당 분당 300회의 read 요청만 허용
- 비용 절감: 우선순위 ↑ API에 더 ↑ 자원 할당
- (+) 제3자 API에 사용자 지불하는 회사
- ex. 신용 확인, 신용카드 결제, 건강 상태 확인 → 횟수에 따라 API 과금
- 서버 과부하 방지: bot에서 오는 트래픽 or 사용자의 잘못된 이용 패턴으로 유발된 트래픽 걸러냄
1단계 문제 이해 및 설계 범위 확정
요구 사항
- 설정된 처리율 초과하는 요청은 정확하게 제한
- 응답 시간 ↓: HTTP 응답시간에 나쁜 영향 X