Elastic Load Balancing API에 대한 요청 제한 - Elastic Load Balancing

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Elastic Load Balancing API에 대한 요청 제한

Elastic Load Balancing은 리전별로 각 AWS 계정에 대한 API 요청을 제한합니다. 이를 통해 서비스의 성능과 가용성을 높일 수 있습니다. 제한을 사용하면 Elastic Load Balancing API에 대한 요청이 허용되는 최대 API 요청 제한을 초과하지 않습니다. API 요청에는 직접 호출하든 사용자를 대신하여 호출하든(예: AWS Management Console 또는 타사 애플리케이션) 요청 제한이 적용됩니다.

Elastic Load Balancing API 제한 한도를 초과하면 ThrottlingException 오류 코드와 Rate exceeded 오류 메시지가 표시됩니다.

제한을 정상적으로 처리할 수 있도록 준비하는 것이 좋습니다. 자세한 내용은 시간 제한, 재시도 및 지터를 사용한 백오프를 참조하세요. 제한 수준이 높으면 AWS Support 에 문의하여 API 사용량 및 잠재적 솔루션을 평가할 수 있습니다. 각 사례는 개별적으로 평가됩니다. 지원 는 고가용성과 예측 가능한 성능을 유지하기 위해 시스템의 안전 한도 내에서 한도를 늘릴 수 있습니다.

제한 적용 방법

Elastic Load Balancing은 토큰 버킷 알고리즘을 사용하여 API 제한을 구현합니다. 이 알고리즘을 사용하면 계정에 특정 수의 토큰을 보관하는 버킷이 있습니다. 버킷의 토큰 수는 지정된 초당 제한 한도를 나타냅니다.

Elastic Load Balancing은 두 가지 API 작업 세트를 제공합니다. ELB API 버전 2는 Application Load Balancer, Network Load Balancer 및 Gateway Load Balancer와 같은 유형의 로드 밸런서를 지원합니다. ELB API 버전 1은 Classic Load Balancer를 지원합니다. 각 ELB API 버전에는 자체 버킷과 토큰이 있습니다.

Amazon EC2, Amazon ECS, Amazon EC2 Amazon EC2 Auto Scaling과 같이 사용자를 대신하여 Elastic Load Balancing API를 호출하는 서비스에는 자체 계정 수준 버킷 AWS CloudFormation 이 있습니다. 이러한 서비스는 버킷의 토큰을 사용하지 않습니다.

요청 속도 제한

요청 속도 제한을 사용하면 수행하는 API 요청 수에 제한이 있습니다. 제출한 각 요청은 버킷에서 하나의 토큰을 제거합니다. 예를 들어, 변경되지 않는 API 작업에 대한 토큰 버킷 크기는 토큰 40개입니다. 1초에 최대 40개의 Describe* 요청을 수행할 수 있습니다. 1초에 40개의 Describe* 요청을 초과하면 제한이 발생하고 해당 초 내의 나머지 요청이 실패합니다.

버킷은 설정된 속도로 자동으로 다시 채워집니다. 버킷이 최대 용량 미만인 경우 버킷이 최대 용량에 도달할 때까지 설정된 수의 토큰이 초당 다시 추가됩니다. 리필 토큰이 도착할 때 버킷이 가득 차면 버킷은 폐기됩니다. 버킷은 최대 토큰 수를 초과할 수 없습니다. 예를 들어, 변경되지 않는 API 작업의 버킷 크기는 토큰 40개이고 리필 속도는 초당 토큰 10개입니다. 1초에 40개의 DescribeLoadBalancers 요청을 하면 버킷이 토큰 0(0)개로 줄어듭니다. 최대 용량인 토큰 40개에 도달할 때까지 매초마다 버킷에 리필 토큰 10개를 추가합니다. 즉, 해당 시간 동안 요청이 없는 경우 빈 버킷이 최대 용량에 도달하는 데 4초가 걸립니다.

API 요청을 하기 전에 버킷이 완전히 꽉 찰 때까지 기다릴 필요가 없습니다. 토큰이 버킷에 추가될 때 토큰을 사용할 수 있습니다. 다시 채우기 토큰을 즉시 사용하는 경우 버킷이 최대 용량에 도달하지 않습니다.

모든 Elastic Load Balancing API 작업에서 공유되는 계정 수준 제한 제한이 있습니다. 계정 수준 버킷의 용량은 토큰 40개이고 리필 속도는 초당 요청 토큰 10개입니다.

요청 토큰 버킷 크기 및 리필 속도

요청 속도 제한을 위해 API 작업은 범주로 그룹화됩니다. 각 범주에는 고유한 제한이 있습니다.

Categories
  • 변경 작업 - 리소스를 생성, 수정 또는 삭제하는 API 작업입니다. 이 범주에는 일반적으로 변경되지 않는 작업으로 분류되지 않는 모든 API 작업이 포함됩니다. 이러한 작업의 제한 한도는 변경되지 않는 API 작업보다 낮습니다.

  • 변경되지 않는 작업 - 리소스에 대한 데이터를 검색하는 API 작업입니다. 이러한 API 작업에는 일반적으로 API 제한 한도가 가장 높습니다.

  • 리소스 집약적 작업 - 완료하는 데 가장 많은 시간이 걸리고 가장 많은 리소스를 소비하는 API 작업입니다. 이러한 작업의 제한 한도는 변경 작업보다 훨씬 낮습니다. 이러한 작업은 다른 변경 작업과 별도로 제한됩니다.

  • 등록 작업 - 대상을 등록하거나 등록 취소하는 API 작업입니다. 이러한 API 작업은 다른 변경 작업과 별도로 제한됩니다.

  • 분류되지 않은 작업 - 이러한 API 작업은 다른 범주 중 하나에 속하더라도 자체 토큰 버킷 크기와 리필 속도를 수신합니다.

다음 표에는 분류된 요청 토큰 버킷의 기본 용량 및 리필 속도가 나와 있습니다.

범주 ELBv2 작업 ELBv1 작업 버킷 용량 리필 속도(초당)
리소스 집약적 CreateLoadBalancer, SetSubnets CreateLoadBalancer, AttachLoadBalancerToSubnets, DetachLoadBalancerFromSubnets, EnableAvailabilityZonesForLoadBalancer, DisableAvailabilityZonesForLoadBalancer 10 0.2
등록 RegisterTargets, DeregisterTargets RegisterInstancesWithLoadBalancer, DeregisterInstancesFromLoadBalancer 20 4
비변환 DescribeAccountLimits, DescribeListenerCertificates, DescribeListeners, DescribeLoadBalancerAttributes, DescribeLoadBalancers, DescribeRules, DescribeSSLPolicies, DescribeTags, DescribeTargetGroupAttributes, DescribeTargetGroups, DescribeTargetHealth Describe* 40 10
변형 AddListenerCertificates, AddTags, CreateListener, CreateRule, CreateTargetGroup, DeleteListener, DeleteLoadBalancer, DeleteRule, DeleteTargetGroup, ModifyListener, ModifyLoadBalancerAttributes, ModifyRule, ModifyTargetGroup, ModifyTargetGroupAttributes, RemoveListenerCertificates, RemoveTags, SetIpAddressType, SetRulePriorities, SetSecurityGroups AddTags, ApplySecurityGroupsToLoadBalancer, ConfigureHealthCheck, CreateAppCookieStickinessPolicy, CreateLbCookieStickinessPolicy, CreateLoadBalancerListener, CreateLoadBalancerPolicy, Delete*, ModifyLoadBalancerAttributes, RemoveTags, SetLoadBalancer* 20 3

다음 표에는 ELBv2에 대한 분류되지 않은 요청 토큰 버킷의 기본 용량 및 리필 속도가 나와 있습니다.

ELBv2 작업 버킷 용량 리필 속도(초당)
CreateTrustStore 10 0.2
AddTrustStoreRevocations, DeleteSharedTrustStoreAssociation, DeleteTrustStore, ModifyTrustStore, RemoveTrustStoreRevocations 10 0.2
GetTrustStoreCaCertificatesBundle, GetTrustStoreRevocationContent 20 4
DescribeTrustStoreAssociations, DescribeTrustStoreRevocations, DescribeTrustStores 40 10

전체 토큰 하나를 생성하는 데 몇 초가 걸립니다.

API 요청 모니터링

AWS CloudTrail 를 사용하여 Elastic Load Balancing API 요청을 모니터링할 수 있습니다. 자세한 내용은 를 사용하여 Elastic Load Balancing에 대한 API 호출 로깅 AWS CloudTrail 단원을 참조하십시오.