AWS Fargate 스로틀링 쿼터

AWS Fargate 스로틀링 쿼터

AWS Fargate는 각 AWS 계정에 대해 리전별로 토큰 버킷 알고리즘(token bucket algorithm)을 사용해 Amazon ECS 태스크와 Amazon EKS 파드의 실행 속도를 쿼터(이전에는 리밋이라고 함)로 제한합니다. 이 글에서는 Fargate의 실행 속도 쿼터를 알아봅니다.

출처: 문서

본문

AWS Fargate는 각 AWS 계정에 대해 리전별로 토큰 버킷 알고리즘을 사용해 Amazon ECS 태스크와 Amazon EKS 파드 실행 속도를 쿼터로 제한합니다. 이 알고리즘에서는 계정에 특정 수의 토큰을 보유하는 버킷이 있습니다. 버킷의 토큰 수는 주어진 초에 대한 속도 쿼터를 나타냅니다.

각 고객 계정에는 고객 계정이 실행한 태스크와 파드 수에 따라 감소하는 태스크 및 파드 토큰 버킷이 있습니다. 이 토큰 버킷에는 주기적으로 더 높은 수의 요청을 할 수 있게 하는 버킷 최대값(bucket maximum)과, 필요한 만큼 꾸준한 속도로 요청을 지속할 수 있게 하는 재충전 속도(refill rate)가 있습니다.

예를 들어 Fargate 고객 계정의 태스크 및 파드 토큰 버킷 크기는 100 토큰이고 재충전 속도는 초당 20 토큰입니다. 따라서 고객 계정당 최대 100개의 Amazon ECS 태스크와 Amazon EKS 파드를 즉시 실행할 수 있고, 지속 실행 속도는 초당 20개의 Amazon ECS 태스크와 Amazon EKS 파드입니다.

작업 버킷 최대 용량(또는 버스트 속도) 버킷 재충전 속도(또는 지속 속도)
온디맨드(On Demand) Amazon ECS 태스크와 Amazon EKS 파드용 Fargate 리소스 속도 쿼터 ¹ 100 20
Spot Amazon ECS 태스크용 Fargate 리소스 속도 쿼터 100 20

¹ Amazon EKS 파드만 실행하는 계정은 Amazon EKS 플랫폼 버전에 명시된 플랫폼 버전을 사용할 때 버스트 속도 20, 지속 파드 실행 속도 초당 20입니다.

Fargate에서 RunTask API 스로틀링 (Throttling the RunTask API in Fargate)

또한 Fargate는 별도의 쿼터를 사용해 Amazon ECS RunTask API로 태스크를 실행할 때 요청 속도를 제한합니다. Fargate는 각 AWS 계정에 대해 리전별로 Amazon ECS RunTask API 요청을 제한합니다. 사용자가 만드는 각 요청은 버킷에서 토큰 하나를 제거합니다. 이는 서비스의 성능을 돕고 모든 Fargate 고객에게 공정한 사용을 보장하기 위한 것입니다.

API 호출은 Amazon Elastic Container Service 콘솔, 명령줄 도구, 서드파티 애플리케이션에서 발생하든 관계없이 요청 쿼터의 적용을 받습니다. Amazon ECS RunTask API 호출의 속도 쿼터는 초당 20회(버스트 및 지속)입니다. 다만 이 API에 대한 각 호출은 최대 10개의 태스크를 실행할 수 있어요. 즉, 이 API에 10번 호출하고 각 호출에서 10개의 태스크 실행을 요청하면 1초에 100개의 태스크를 실행할 수 있습니다. 마찬가지로 이 API에 20번 호출하고 각 호출에서 5개의 태스크 실행을 요청할 수도 있어요. Amazon ECS RunTask API의 API 스로틀링에 대한 자세한 내용은 Amazon ECS API Reference의 API 요청 스로틀링 문서를 참고하세요.

실제로 태스크 및 파드 실행 속도는 다운로드하고 압축을 풀어야 하는 컨테이너 이미지, 상태 확인, 그리고 태스크 또는 파드를 로드 밸런서에 등록하는 것 같은 기타 활성화된 통합 등 다른 고려 사항에도 의존합니다. 고객은 활성화한 기능에 따라 앞서 나타낸 쿼터와 비교해 태스크 및 파드 실행 속도의 변동을 보게 됩니다.

Fargate의 속도 쿼터 조정 (Adjusting rate quotas in Fargate)

AWS 계정에 대해 Fargate 속도 스로틀링 쿼터의 증가를 요청할 수 있습니다. 자세한 내용은 Service Quotas 사용자 가이드의 쿼터 증가 요청 문서를 참고하세요.

더 알아보기 (Learn more)

  • 서비스 쿼터와 스로틀링에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.