택시짱의 개발 노트

API 처리율 제한 장치 (Rate Limiter) 본문

BackEnd

API 처리율 제한 장치 (Rate Limiter)

택시짱 2022. 2. 20. 17:08

처리율 제한 장치란?

처리율 제한 장비(Rate Limiter)는 클라이언트가 보내는 트래픽의 처리율(Rate)을 제어하기 위한 장치다.
일반적으로 정의된 임계치(Threshold)를 넘어가면 추가로 들어온 모든 호출은 처리를 중단한다.

Ex) GET - api/v2/products는 초당 10회까지만 호출이 가능 하다

처리율 제한 장치를 사용할 때의 장점

  • Dos 공격에 의한 자원 고갈 방지
  • 비용 절감
  • 서버 과부하를 방지

처리율 제한 장치를 어디에 둬야 될까?

  • 클라이언트 - 클라이언트의 요청은 쉽게 위변조가 가능하기 때문에 처리율 제한이 안정적이지 않다.
  • 서버 or 미들웨어(middleware)
    • 서버에 처리율 제한 장치를 둘 경우
    • 미들웨어에 처리율 제한 장치를 둘 경우

이때 처리율 제한을 실현하는 알고리즘은 여러가지가 있다.

처리율 제한 알고리즘

  • 토큰 버킷(token bucket)
  • 누출 버킷(leaky bucket)
  • 고정 윈도 카운터(fixed window counter)
  • 이동 윈도 로그(sliding window log)
  • 이동 윈도 카운터(sliding window counter)
반응형
Comments