본문 바로가기
CSP (Cloud Service Provider)/AWS

API Token Bucket

by HemMu 2024. 7. 22.

Token Bucket 알고리즘이란

Token Bucket 알고리즘은 네트워크 속도 제어 알고리즘 중 하나로, 특정 양의 데이터를 일정한 속도로 전송하고자 할 때 사용된다고 한다.

AWS에서 Token Bucket 알고리즘이란?

AWS 모든 서비스는 API 기반으로 동작하고, Amazon API Call은 토큰 기반으로 동작하며, Token Bucket 알고리즘을 따른다고 한다.

Bucket에 Token을 넣어두고, 패킷(API)이 전송될 때마다 이 Bucket에서 Token을 소비하도록 하는데, Token이 충분하다면 패킷을 전송하고, Token이 부족하다면 패킷을 버린다. → (API Throttle)

여기서 Bucket의 크기는 한 번에 전송할 수 있는 최대 데이터 양을 의미하며, Token을 생성하는 속도는 네트워크의 전송 속도를 의미한다.

즉, Bucket의 크기와 Token 생성 속도를 조절하여 전송 속도를 제어할 수 있다.

그러니까 AWS는 이 알고리즘으로, 사용자들이 동일한 API Call의 성능(서비스 안정성)을 받도록 제한을 걸어두었다.

API Call 함부로 못하도록

예제

Bucket maximum capacity Bucket refill rate
100 10

어떠한 Action(API)의 Bucket의 최대 Capacity는 100이며, 초 당 10씩 쌓인다는 뜻이다.

그리하여, API Call을 통해 bucket의 capacity가 모두 소진되는 순간 throttling이 발생한다.

어디에 쓰나?

AWS에서 기본 값으로 정해준 Bucket 값이 있을 텐데, 큰 규모의 작업을 할 경우 Token이 모자랄 수도 있다.

뭐, ECS Task를 100개 이상 늘리는 작업을 한다고 가정하면 미리 Quota를 증가 시켜 놓아야 Throttle이 걸리지 않을 것.

 

참고문서

https://aws.amazon.com/ko/blogs/mt/managing-monitoring-api-throttling-in-workloads/

댓글