翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Load Balancing API のリクエストスロットリング
Elastic Load Balancing は、リージョンごとに各 AWS アカウントの API リクエストを調整します。これは、サービスのパフォーマンスと可用性を支援するために行われます。スロットリングにより、Elastic Load Balancing API へのリクエストが API リクエストの最大許容上限を超えないことが保証されます。API リクエストは、リクエストを呼び出すか、ユーザーに代わって呼び出されるか ( AWS マネジメントコンソール やサードパーティーアプリケーションなど) にかかわらず、リクエスト制限の対象となります。
Elastic Load Balancing API スロットリング制限を超えると、ThrottlingException エラーコードと Rate exceeded エラーメッセージが表示されます。
スロットリングを適切に処理する準備をすることをお勧めします。詳細については、「タイムアウト、リトライ、ジッターによるバックオフ
スロットリングの適用方法
Elastic Load Balancing はトークンバケットアルゴリズム
Elastic Load Balancing には、2 セットの 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 Auto Scaling など、ユーザーに代わって Elastic Load Balancing API を呼び出し、独自のアカウントレベルのバケット AWS CloudFormation を持つサービス。これらのサービスは、バケットのトークンを消費しません。
リクエストレート制限
リクエストレートを制限すると、実行する API リクエストの数がスロットリングされます。各リクエストは、バケットから 1 つのトークンが削除されます。たとえば、非変更 API アクションのトークンバケットサイズは 40 トークンです。1 秒あたり最大 40 個の Describe* リクエストを行うことができます。1 秒で 40 個の Describe* リクエストを超えると、スロットルされ、その秒以内の残りのリクエストは失敗します。
バケットは設定されたレートで自動的に補充されます。バケットが最大容量に達していない場合、最大容量に達するまで、設定した数のトークンが毎秒追加されます。リフィルトークンが到着したときにバケットが満杯である場合、リフィルトークンは破棄されます。バケットは最大数を超えてトークンを保持することはできません。例えば、 (非変化 API アクション) のバケットサイズが 40 トークンで、リフィルレートが 1 秒あたり 10 トークンであるとします。1 秒間に 40 個の DescribeLoadBalancers リクエストを行うと、バケットはゼロ (0) トークンまで減らされます。バケットは、最大容量の 40 トークンに達するまで、毎秒 10 トークンが補充されます。つまり、その間にリクエストが行われなかった場合、空のバケットが最大容量に達するまでに 4 秒かかります。
API リクエストを行う前に、バケットが完全にいっぱいになるまで待つ必要はありません。トークンはバケットに追加されるとすぐに使用できます。リフィルトークンをすぐに使用しても、バケットが最大容量に達することはありません。
すべての Elastic Load Balancing API アクションで共有されるアカウントレベルのスロットリング制限があります。アカウントレベルのバケットの容量は 40 トークンで、補充レートは 1 秒あたり 10 リクエストトークンです。
リクエストトークンバケットのサイズとリフィルレート
リクエストレート制限の目的で、API アクションはカテゴリにグループ化されます。各カテゴリには独自の制限があります。
カテゴリ
-
変異アクション – リソースを作成、変更、または削除する API アクション。このカテゴリには、通常、非変異アクションとして分類されていないすべての API アクションが含まれます。これらのアクションは、非変異 API アクションよりもスロットリング上限が低くなります。
-
非変異アクション — リソースに関するデータを取得する API アクション。これらの API アクションは通常、API スロットリング上限が最も高くなります。
-
リソース集約型アクション — 完了するのに最も時間がかかり、最も多くのリソースを消費する API アクション。これらのアクションのスロットリング上限は、変異アクションよりもさらに低くなります。これらのアクションは、他の変異アクションとは別にスロットリングされます。
-
登録アクション — ターゲットを登録または登録解除する API アクション。これらの API アクションは、他の変異アクションとは別にスロットリングされます。
-
未分類アクション — これらの API アクションは、他のカテゴリのいずれかに該当していても、独自のトークンバケットサイズと補充レートを受け取ります。
次の表は、分類されたリクエストトークンバケットのデフォルトの容量と補充レートを示しています。
| Category | ELBv2 アクション | ELBv1 アクション | バケットキャパシティ | 補充レート/秒 |
|---|---|---|---|---|
| リソース集約型 | CreateLoadBalancer, SetSubnets |
CreateLoadBalancer,
AttachLoadBalancerToSubnets,
DetachLoadBalancerFromSubnets,
EnableAvailabilityZonesForLoadBalancer,
DisableAvailabilityZonesForLoadBalancer |
10 | 0.2 † |
| Registration (登録) | RegisterTargets, DeregisterTargets |
RegisterInstancesWithLoadBalancer,
DeregisterInstancesFromLoadBalancer |
20 | 4 |
| 非変更 | DescribeAccountLimits,
DescribeCapacityReservation,
DescribeListenerAttributes,
DescribeListenerCertificates,
DescribeListeners,
DescribeLoadBalancerAttributes,
DescribeLoadBalancers, DescribeRules,
DescribeSSLPolicies, DescribeTags,
DescribeTargetGroupAttributes,
DescribeTargetGroups,
DescribeTargetHealth |
Describe* |
40 | 10 |
| ミューテーション | AddListenerCertificates, AddTags,
CreateListener, CreateRule,
CreateTargetGroup, DeleteListener,
DeleteLoadBalancer, DeleteRule,
DeleteTargetGroup,
ModifyCapacityReservation, ModifyIpPools,
ModifyListener, ModifyListenerAttributes,
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 † |
GetResourcePolicy,
GetTrustStoreCaCertificatesBundle,
GetTrustStoreRevocationContent |
20 | 4 |
DescribeTrustStoreAssociations,
DescribeTrustStoreRevocations,
DescribeTrustStores |
40 | 10 |
† 小数補充レートは、1 つの完全なトークンを生成するのに数秒かかります。
API リクエストのモニタリング
AWS CloudTrail を使用して、Elastic Load Balancing API リクエストをモニタリングできます。詳細については、「を使用して Elastic Load Balancing の API コールをログに記録する AWS CloudTrail」を参照してください。