[트래픽제어, 처리율 제한 장치] API Gateway 와 API Throttling

김탁형·2025년 1월 1일

1. API Gateway?

(1) 정의

MSA 의 패턴중 하나로 특정 상품이나 서비스를 한정하여 지칭하는 것은 아니다. API Client 와 Server 의 사이 구간에 위치하여 다양한 목적으로 사용되는 역할을 한다.

(2) 이점(왜씀?)

  • 인증 및 권한부여, 서비스 검색 통합, 응답 캐싱, 정책/회로 차단기 및 QoS 다시 시도
  • 속도 제한, 부하 분산, 로깅/추적/상관 관계, 헤더/쿼리 문자열 청구 변환, IP 허용 목록에 추가

2. API Throttling?

(1) 정의

API 요청에 속도와 횟수를 제한하는 것을 말한다. Rate Limit 기능이다. API 의 경우 사용자 직접 API Client Tool 을 사용해서 요청을 하는 일은 적다. API 호출 테스트를 할 때를 제외하고 데부분이 자동화된 프로세스에 연동하여 사용하고자 한다.

특정 사용자가 모든 프로그램이 버그에 잇어서 요청량이 폭증하면 어떻게 될까? 아니면약의적인 사용자가 Dos(Denial of Servie)와 같은 공격을 시도하면 어떻게 될까? 우리의 서비스 가용성(Availability) 에 문제가 생긴다. 따라서 보안 을 위해서도 API Throttling은 필요 하다.

모든 사용자는 정상적인 이용을 하고 있다고 하자. 이때 A 회사와 B 회사가 있다. A 회사의 API 요청건이 B회사의 요청건을 훨씬 상회한다. 이때, A회사보다 B회사와의 계약금액이 훨씬 크다. 이때 어떤 선택을 할 수 있을까?

위와 같이 난처한 사항을 막기위해서라도 API 개발할떄는 API Throttling 을 도입하여, 프리세일즈나 테크세일즈 분들이 반드시 SLA(Service Level Agreement) 에서 협의의 대상으로 삼을 수 있도록 도와야 한다.

(2) API Thrttling 구현

일반적으로 Bucket과 Window 를 컨셉으로 한 알고리즘이 사용된다.

=> 나머지는 아래 불로그에서 이어서 진행
https://doublem.org/api-gateway-basic/
https://bryceyangs.github.io/various/2023/08/15/%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%84%A4%EA%B3%84-%EA%B8%B0%EC%B4%88-4%EC%9E%A5-%EC%B2%98%EB%A6%AC%EC%9C%A8-%EC%A0%9C%ED%95%9C-%EC%9E%A5%EC%B9%98-%EC%84%A4%EA%B3%84/#google_vignette
https://goodsvpg.tistory.com/entry/%EC%B2%98%EB%A6%AC%EC%9C%A8-%EC%A0%9C%ED%95%9CRate-Limiting%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC
https://jonghoonpark.com/2023/05/17/%EC%B2%98%EB%A6%AC%EC%9C%A8-%EC%A0%9C%ED%95%9C-%EC%9E%A5%EC%B9%98-%EC%84%A4%EA%B3%84
https://willseungh0.tistory.com/167

profile
김탁형/성남/31

0개의 댓글