Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Limitation des demandes pour l'API Elastic Load Balancing
Elastic Load Balancing limite ses demandes d'API pour chaque AWS compte par région. Nous faisons cela pour améliorer les performances et la disponibilité du service. Throttling garantit que les demandes adressées à l'API Elastic Load Balancing ne dépassent pas les limites de demandes d'API maximales autorisées. Les demandes d'API sont soumises aux limites de demandes, que vous les appeliez ou qu'elles soient appelées en votre nom (par exemple, par l'application AWS Management Console ou une application tierce).
Si vous dépassez une limite de limitation de l'API Elastic Load Balancing, vous obtenez le code ThrottlingException
d'erreur et un message d'Rate exceeded
erreur.
Nous vous recommandons de vous préparer à gérer l'étranglement avec élégance. Pour plus d'informations, consultez les sections Expiration, nouvelles tentatives et interruption avec gigue.
Comment l'étranglement est appliqué
Elastic Load Balancing utilise l'algorithme Token Bucket
Elastic Load Balancing propose deux ensembles d'actions d'API. La version 2 de l'API ELB prend en charge les types d'équilibreurs de charge suivants : équilibreurs de charge d'application, équilibreurs de charge réseau et équilibreurs de charge de passerelle. La version 1 de l'API ELB prend en charge les équilibreurs de charge classiques. Chaque version de l'API ELB possède ses propres buckets et jetons.
Les services qui appellent l'API Elastic Load Balancing en votre nom, tels qu'Amazon EC2, Amazon ECS, Amazon EC2 Auto Scaling, et qui AWS CloudFormation disposent de leurs propres buckets au niveau du compte. Ces services ne consomment pas de jetons provenant de vos buckets.
Limitation du débit de demande
Avec la limitation du taux de demandes, le nombre de demandes d'API que vous effectuez est limité. Chaque requête que vous effectuez supprime un jeton du compartiment. Par exemple, la taille du bucket de jetons pour les actions d'API non mutantes est de 40 jetons. Vous pouvez effectuer jusqu'à 40 Describe*
demandes en une seconde. Si vous dépassez 40 Describe*
demandes en une seconde, vous êtes limité et les demandes restantes échouent au cours de cette seconde.
Les seaux se rechargent automatiquement à un débit défini. Si un compartiment est inférieur à sa capacité maximale, un nombre défini de jetons est ajouté chaque seconde jusqu'à ce que le compartiment atteigne sa capacité maximale. Si un seau est plein lorsque les jetons de recharge arrivent, ils sont jetés. Un bucket ne peut pas contenir plus de jetons que son maximum. Par exemple, la taille du bucket pour les actions d'API non mutantes est de 40 jetons et le taux de recharge est de 10 jetons par seconde. Si vous faites 40 DescribeLoadBalancers
demandes en une seconde, le bucket est réduit à zéro (0) jeton. Nous ajoutons 10 jetons de recharge au seau chaque seconde, jusqu'à ce qu'il atteigne sa capacité maximale de 40 jetons. Cela signifie qu'il faut 4 secondes pour qu'un compartiment vide atteigne sa capacité maximale, si aucune demande n'est faite pendant cette période.
Il n'est pas nécessaire d'attendre qu'un bucket soit complètement plein pour pouvoir effectuer des demandes d'API. Vous pouvez utiliser des jetons lorsqu'ils sont ajoutés à un bucket. Si vous utilisez immédiatement les jetons de recharge, le seau n'atteint pas sa capacité maximale.
Il existe une limite de limitation au niveau du compte qui est partagée entre toutes les actions de l'API Elastic Load Balancing. La capacité du bucket au niveau du compte est de 40 jetons et le taux de recharge est de 10 jetons de demande par seconde.
Demandez la taille des seaux de jetons et les taux de recharge
Pour limiter le taux de demandes, les actions de l'API sont regroupées en catégories. Chaque catégorie a ses propres limites.
Catégories
-
Actions de mutation : actions d'API qui créent, modifient ou suppriment des ressources. Cette catégorie inclut généralement toutes les actions d'API qui ne sont pas considérées comme des actions non mutantes. La limite de régulation de ces actions est inférieure à celle des actions d'API non mutantes.
-
Actions non mutantes : actions d'API qui récupèrent des données sur les ressources. Ces actions d'API présentent généralement les limites de limitation d'API les plus élevées.
-
Actions gourmandes en ressources : actions d'API dont l'exécution prend le plus de temps et consomme le plus de ressources. Ces actions ont une limite d'étranglement encore plus faible que les actions mutantes. Ces actions sont limitées séparément des autres actions de mutation.
-
Actions d'enregistrement : actions d'API qui enregistrent ou désenregistrent des cibles. Ces actions d'API sont limitées séparément des autres actions de mutation.
-
Actions non classées : ces actions d'API reçoivent leur propre taille de bucket de jetons et leur propre taux de recharge, même si elles appartiennent à l'une des autres catégories.
Le tableau suivant indique la capacité et les taux de recharge par défaut pour les compartiments de jetons de demande classés par catégories.
Catégorie | ELBv2 actions | ELBv1 actions | Capacité du godet | Taux de recharge (par seconde) |
---|---|---|---|---|
Nécessite beaucoup de ressources | CreateLoadBalancer , SetSubnets |
CreateLoadBalancer ,
AttachLoadBalancerToSubnets ,
DetachLoadBalancerFromSubnets ,
EnableAvailabilityZonesForLoadBalancer ,
DisableAvailabilityZonesForLoadBalancer |
10 | 0,2 † |
Inscription | RegisterTargets , DeregisterTargets |
RegisterInstancesWithLoadBalancer ,
DeregisterInstancesFromLoadBalancer |
20 | 4 |
Non mutant | DescribeAccountLimits ,
DescribeListenerCertificates ,
DescribeListeners ,
DescribeLoadBalancerAttributes ,
DescribeLoadBalancers , DescribeRules ,
DescribeSSLPolicies , DescribeTags ,
DescribeTargetGroupAttributes ,
DescribeTargetGroups ,
DescribeTargetHealth |
Describe* |
40 | 10 |
Mutant | 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 |
Le tableau suivant indique la capacité et les taux de recharge par défaut pour les compartiments de jetons de demande non classés pour. ELBv2
ELBv2 actions | Capacité du godet | Taux de recharge (par seconde) |
---|---|---|
CreateTrustStore |
10 | 0,2 † |
AddTrustStoreRevocations ,
DeleteSharedTrustStoreAssociation ,
DeleteTrustStore , ModifyTrustStore ,
RemoveTrustStoreRevocations |
10 | 0,2 † |
GetTrustStoreCaCertificatesBundle ,
GetTrustStoreRevocationContent |
20 | 4 |
DescribeTrustStoreAssociations ,
DescribeTrustStoreRevocations ,
DescribeTrustStores |
40 | 10 |
† Les taux de recharge fractionnés nécessitent plusieurs secondes pour générer un jeton complet.
Surveillance des demandes d'API
Vous pouvez l'utiliser AWS CloudTrail pour surveiller vos demandes d'API Elastic Load Balancing. Pour de plus amples informations, veuillez consulter Consignez les appels d'API pour Elastic Load Balancing en utilisant AWS CloudTrail.