-
서버 아키텍처 - 처리율 제한 장치아키텍처 및 기술 공부 2023. 1. 24. 22:35반응형
처리율 제한 장치란?
- 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치다.
- API요청 횟수가 제한 장치에 정의된 임계치를 넘어서 추가로 도달한 모든 호출은 처리가 중단 된다.
- 사용자는 초당 2회 이상 새 글을 올릴 수 없다.
- 같은 IP주소로는 하루에 10개 이상의 계정을 생성할 수 없다.
- 같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없다.
처리율 제한 장치의 장점- DoS(Denial of service) 공격에 의한 자원 고갈을 방지할 수 있다.
- 비용을 절감 할 수 있다.
- 우선순위가 높은 API에 더 많은 자원을 할당할 수 있다.
- 서버 과부화를 막는다. 봇(bot)에서 오는 트래픽이나 사용자의 잘못된 이용 패턴으로 유발된 트래픽을 걸러내는데 처리율 제한 장치를 활용할 수 있다.
처리율 제한 장치의 실례
- 대형 IT기업들이 외부로 공개한 거의 대부분의 API는 어떤 형태로든 처리율 제한 장치를 갖고 있다.
- 트위터는 3시간 동안 300개의 트윗만 올릴 수 있도록 제한하고 있다.
- 구글 독스 API는 사용자당 분당 300회의 read 요청만 허용한다.
- 처리율 제한 장치는 클라이언트가 너무많은 전송을 보내면 HTTP 상태코드 429를 반환하여 너무 많은 요청을 보내려 한 것을 알린다.
- 보통 클라우드 마이크로 서비스의 경우, 처리율 제한 장치는 보통 API 게이트웨이에 구현된다.
처리율 제한 알고리즘- 토큰 버킷 (token bucket) 알고리즘
- 버킷에 토큰을 담고, 하나의 API 요청당 하나의 토큰을 소진한다.
4개의 토큰이 버킷에 존재하므로, 4번의 요청은 성공한다. 5번째 요청은 Drop 된다. - 누출 버킷 (leaky bucket)
- 고정 윈도 카운터 (fixed window counter)
- 이동 윈도 로그 (sliding window log)
- 이동 윈도 카운터 (sliding window counter)
처리율 제한 장치의 종류
- Api Gateway - 토큰 버킷 (token bucket) 알고리즘을 이용해 구현
참고자료:
- 가상면접 사례로 배우는 대규모 시스템 설계 기초
- https://github.com/envoyproxy/ratelimit
- https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/api-gateway-request-throttling.html
반응형'아키텍처 및 기술 공부' 카테고리의 다른 글
서버 아키텍처 - 해시와 안정 해시 (0) 2023.03.20 서버 아키텍처 - 메시지 큐, 메시지 브로커, 이벤트 스트리밍 서비스 (2) 2023.01.12 서버 아키텍처 - 콘텐츠 전송 네트워크(CDN) (0) 2023.01.10 서버 아키텍처 - 모놀리식 아키텍처 (0) 2023.01.08