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/
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
비용 소모 없이 DynamoDB Item 삭제하기 (3) | 2024.10.24 |
---|---|
API Gateway 개별 Cache 삭제 방법 (0) | 2024.08.13 |
AWS - Database Data 이관/전송하기 (DMS) (0) | 2024.06.28 |
[AWS] Lambda Connection Handler (0) | 2024.06.17 |
CodeBuild - empty git-upload-pack given for primary source and source version refs/heads/develop (1) | 2024.06.13 |
댓글