API 쓰로틀링이란 무엇인가?

2023. 4. 30. 19:03· CS 지식
목차
  1. 정의
  2. 왜 필요한가?
반응형

정의

특정 기간 동안 사용자가 할 수 있는 API 요청의 수를 제한하는 프로세스입니다.

서버를 오프라인으로 전환하거나 서버 또는 다른 시스템의 과부하를 방지하기 위해 API 호출에 지연을 삽입하여 수동으로 수행할 수 있습니다.

API는 사용자와 소프트웨어 애플리케이션 사이의 게이트웨이 역할을 한다.

예를 들어, 사용자가 소셜 미디어에서 게시 버튼을 클릭하면 버튼 클릭이 API 호출을 트리거 한다. 이 API는 소셜 미디어 애플리케이션의 웹 서버와 상호 작용하여 게시 작업을 수행합니다. 이 사용자는 사람 또는 다른 소프트웨어 응용 프로그램 일 수 있습니다.

API 쓰로틀링은 API가 처리할 수 있는 트래픽 양을 제어하는 ​​데 사용되는 속도 제한 유형입니다. API가 주어진 시간 동안 수락할 요청 수를 제한하는 방법입니다. 이 방법은 구현하기가 더 쉽습니다. 스로틀링은 API의 백엔드가 네트워크 또는 하드웨어(예: 데이터베이스 또는 서버)에 의해 제한되는 상황에서 흔히 사용되는 방법입니다.

왜 필요한가?

시스템 성능 저하 방지

사용자 수가 증가함에 따라 API 호출이 많아지기 때문에 웹 사이트 또는 모바일 응용 프로그램이 성능 저하의 징후를 보이기 시작합니다. 더 나은 환경이나 더 빠른 연결, 인터페이스를 가진 사용자는 다른 사용자보다 더 나은 환경을 얻을 수 있습니다. API 쓰로틀링은 조직이 API를 공정하게 사용할 수 있도록 지원하는 솔루션이다.

악의적 요청에 따른 서비스 과부하 방지

또한 API 쓰로틀링은 악의적인 사용자가 웹 사이트 또는 모바일 응용 프로그램을 다운시키기 위해 엄청난 양의 요청을 보내는 서비스 거부(DoS) 공격을 방지하는 데 도움이 된다.

쓰로틀링 알고리즘

  1. 클라이언트/사용자는 웹 서비스 또는 응용 프로그램과 인터페이스하는 API를 호출한다.
  2. API 쓰로틀링 로직은 현재 요청이 허용된 API 호출 수를 초과하는 지 확인합니다.
  3. 요청이 제한 범위 내에 있는 경우 API는 정상적으로 수행되며, 사용자의 작업을 완료합니다.
  4. 요청이 제한을 초과하면 API는 사용자에게 오류 응답을 반환합니다.
  5. 사용자는 사전 허용된 기간 동안 기다리거나, API Call 을 하기 위해 비용을 지불해야 합니다.

 

3줄 개인 생각

쓰로틀링이란 API 호출이 과도하게 많아져 시스템에 저하를 일으키는 것을 미연에 방지하는 것으로 이해가 간다.
어떻게? 특정 기간 내의 API 호출 수를 제한하고 호출 사이사이에 지연을 넣어서
API rate limit이랑은 뭐가 다르지? 라는 생각이 드는 데 나중에 작성 해봐야겠다.

 

[참조] : 

https://www.tibco.com/reference-center/what-is-api-throttling#:~:text=API%20throttling%20is%20the%20process,user%20and%20a%20software%20application.

반응형
저작자표시 (새창열림)

'CS 지식' 카테고리의 다른 글

분산 트랜잭션이란?  (0) 2023.05.01
DPU란?  (0) 2023.04.30
SQL과 NoSQL이란?  (0) 2022.07.31
트랜잭션이란?  (0) 2022.07.03
Batch란?  (0) 2022.07.03
  1. 정의
  2. 왜 필요한가?
'CS 지식' 카테고리의 다른 글
  • 분산 트랜잭션이란?
  • DPU란?
  • SQL과 NoSQL이란?
  • 트랜잭션이란?
Nowon9159
Nowon9159
반응형
Nowon9159
Nowon의 블로그
Nowon9159
전체
오늘
어제
  • DevOps Engineer (176) N
    • DevOps (7)
    • 서버 관리 (4)
      • 운영체제 (3)
      • 터미널 (0)
    • 프로그래밍 (13)
      • Python (11)
      • JavaScript (2)
      • Vue.js (0)
    • Cloud (6)
      • AWS (6)
      • NAVER Cloud (0)
    • Network (7)
      • Service Mesh (1)
    • CICD (0)
      • Git (0)
      • Jenkins (0)
      • Ansible (0)
    • IaC (0)
      • Terraform (0)
      • Helm (0)
    • Containers (3)
      • Docker (1)
      • Kubernetes (2)
    • 모니터링 (0)
      • 인프라 모니터링 (0)
      • 어플리케이션 모니터링 (0)
      • 로그 관리 (0)
    • DB (0)
      • MongoDB (0)
    • 자격증 (54)
      • 정보처리기사 (0)
      • AWS SAA (26)
      • AWS SAP (22)
      • AWS DOP (0)
      • Kubernetes CKA (4)
      • AWS SOA (2)
    • CS 지식 (47)
    • 책, 강의 (5)
    • 스터디 (11) N
      • k8sd (0)
      • Istio Hands-on Study (11) N
    • 기타 (14)
      • Problem Solve (4)
      • 사담 (4)
      • 토이프로젝트 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로거 소개 글

인기 글

태그

  • 토이프로젝트
  • familiar
  • gasida
  • 쿠버네티스 인 액션
  • Kubernetes
  • Practice
  • 클라우드넷
  • DevOps
  • 티스토리챌린지
  • cloud@net
  • 가시다
  • SAA-C03
  • SAP-C02
  • CKA
  • 오블완
  • 부트캠프
  • DevOps 엔지니어
  • AWS
  • 스터디
  • 코딩
  • 개발자
  • 문제 풀이
  • 이스티오
  • 책
  • istio
  • github
  • 자격증
  • 파이썬
  • PYTHON
  • k8s

최근 댓글

최근 글

글 보관함

hELLO · Designed By 정상우.v4.2.2
Nowon9159
API 쓰로틀링이란 무엇인가?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.