Drosselung von Anfragen für die Elastic Load Balancing API - Elastic Load Balancing

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Drosselung von Anfragen für die Elastic Load Balancing API

Elastic Load Balancing drosselt seine API-Anfragen für jedes AWS Konto pro Region. Wir tun dies, um die Leistung und Verfügbarkeit des Dienstes zu verbessern. Durch die Drosselung wird sichergestellt, dass Anfragen an die Elastic Load Balancing API die maximal zulässigen API-Anforderungslimits nicht überschreiten. API-Anfragen unterliegen den Anforderungslimits, unabhängig davon, ob Sie sie aufrufen oder ob sie in Ihrem Namen aufgerufen werden (z. B. von der Anwendung AWS Management Console oder einer Drittanbieteranwendung).

Wenn Sie ein Drosselungslimit für die Elastic Load Balancing API überschreiten, erhalten Sie den ThrottlingException Fehlercode und eine Rate exceeded Fehlermeldung.

Wir empfehlen Ihnen, sich darauf vorzubereiten, vorsichtig mit der Drosselung umzugehen. Weitere Informationen finden Sie unter Timeouts, Wiederholungen und Backoff mit Jitter. Wenn Sie ein hohes Maß an Drosselung feststellen, können Sie sich an uns wenden, um Ihnen bei der Bewertung Ihrer API-Nutzung und möglicher Lösungen AWS -Support zu helfen. Jeder Fall wird einzeln bewertet. Support kann Ihre Grenzwerte innerhalb der Sicherheitsgrenzen des Systems erhöhen, um eine hohe Verfügbarkeit und vorhersehbare Leistung aufrechtzuerhalten.

Wie wird die Drosselung angewendet

Elastic Load Balancing verwendet den Token-Bucket-Algorithmus, um API-Drosselung zu implementieren. Mit diesem Algorithmus verfügt Ihr Konto über einen Bucket, der eine bestimmte Anzahl von Token enthält. Die Anzahl der Token im Bucket entspricht Ihrem Drosselungslimit für eine bestimmte Sekunde.

Elastic Load Balancing bietet zwei Gruppen von API-Aktionen. ELB API Version 2 unterstützt die folgenden Typen von Load Balancers: Application Load Balancer, Network Load Balancer und Gateway Load Balancer. ELB API-Version 1 unterstützt Classic Load Balancers. Jede ELB-API-Version hat ihre eigenen Buckets und Tokens.

Services, die die Elastic Load Balancing API in Ihrem Namen aufrufen, wie Amazon EC2, Amazon ECS, Amazon EC2 Auto Scaling, und die ihre eigenen Buckets auf Kontoebene AWS CloudFormation haben. Diese Dienste verbrauchen keine Token aus Ihren Buckets.

Anforderungsratenbegrenzung

Durch die Begrenzung der Anforderungsrate wird die Anzahl der API-Anfragen, die Sie stellen, eingeschränkt. Jede Anforderung, die Sie stellen, entfernt ein Token aus dem Bucket. Beispielsweise beträgt die Token-Bucket-Größe für API-Aktionen, die nicht mutieren, 40 Token. Sie können in einer Sekunde bis zu 40 Describe* Anfragen stellen. Wenn Sie in einer Sekunde mehr als 40 Describe* Anfragen haben, werden Sie gedrosselt und die verbleibenden Anfragen innerhalb dieser Sekunde schlagen fehl.

Eimer werden automatisch mit einer festgelegten Geschwindigkeit wieder aufgefüllt. Wenn ein Bucket seine maximale Kapazität unterschreitet, wird jede Sekunde eine festgelegte Anzahl von Tokens hinzugefügt, bis der Bucket seine maximale Kapazität erreicht hat. Wenn ein Eimer voll ist, wenn Nachfüll-Token eintreffen, werden sie verworfen. Ein Bucket kann nicht mehr als die maximale Anzahl an Tokens aufnehmen. Beispielsweise beträgt die Bucket-Größe für API-Aktionen, die nicht mutieren, 40 Token und die Nachfüllrate beträgt 10 Token pro Sekunde. Wenn Sie 40 DescribeLoadBalancers Anfragen in einer Sekunde stellen, wird der Bucket auf null (0) Token reduziert. Wir fügen dem Bucket jede Sekunde 10 Refill-Token hinzu, bis er seine maximale Kapazität von 40 Tokens erreicht hat. Das bedeutet, dass es 4 Sekunden dauert, bis ein leerer Bucket seine maximale Kapazität erreicht hat, wenn während dieser Zeit keine Anfragen gestellt werden.

Sie müssen nicht warten, bis ein Bucket vollständig gefüllt ist, bevor Sie API-Anfragen stellen können. Sie können Tokens verwenden, wenn sie einem Bucket hinzugefügt werden. Wenn Sie die Nachfüll-Token sofort verwenden, erreicht der Eimer nicht seine maximale Kapazität.

Es gibt ein Drosselungslimit auf Kontoebene, das für alle Elastic Load Balancing API-Aktionen gilt. Die Kapazität des Buckets auf Kontoebene beträgt 40 Token und die Nachfüllrate beträgt 10 Anforderungstoken pro Sekunde.

Größen und Nachfüllraten für Token-Buckets anfragen

Zur Begrenzung der Anforderungsrate sind API-Aktionen in Kategorien unterteilt. Jede Kategorie hat ihre eigenen Grenzen.

Kategorien
  • Mutierende Aktionen — API-Aktionen, die Ressourcen erstellen, ändern oder löschen. Diese Kategorie umfasst im Allgemeinen alle API-Aktionen, die nicht als nicht mutierende Aktionen eingestuft werden. Für diese Aktionen gilt eine niedrigere Drosselungsgrenze als für nicht mutierende API-Aktionen.

  • Nicht mutierende Aktionen — API-Aktionen, die Daten über Ressourcen abrufen. Für diese API-Aktionen gelten in der Regel die höchsten API-Drosselungsgrenzen.

  • Ressourcenintensive Aktionen — API-Aktionen, deren Ausführung am meisten Zeit in Anspruch nimmt und die meisten Ressourcen beansprucht. Für diese Aktionen gilt eine noch niedrigere Drosselungsgrenze als für mutierende Aktionen. Diese Aktionen werden getrennt von anderen mutierenden Aktionen gedrosselt.

  • Registrierungsaktionen — API-Aktionen, die Ziele registrieren oder deregistrieren. Diese API-Aktionen werden getrennt von anderen mutierenden Aktionen gedrosselt.

  • Nicht kategorisierte Aktionen — Diese API-Aktionen erhalten ihre eigenen Token-Bucket-Größen und Wiederauffüllraten, obwohl sie unter eine der anderen Kategorien fallen.

Die folgende Tabelle zeigt die Standardkapazität und die Nachfüllraten für die kategorisierten Request-Token-Buckets.

Kategorie ELBv2 Aktionen ELBv1 Aktionen Kapazität des Eimers Nachfüllrate (pro Sekunde)
Ressourcenintensiv CreateLoadBalancer, SetSubnets CreateLoadBalancer, AttachLoadBalancerToSubnets, DetachLoadBalancerFromSubnets, EnableAvailabilityZonesForLoadBalancer, DisableAvailabilityZonesForLoadBalancer 10 0,2 †
Registrierung RegisterTargets, DeregisterTargets RegisterInstancesWithLoadBalancer, DeregisterInstancesFromLoadBalancer 20 4
Nicht mutierend DescribeAccountLimits, DescribeListenerCertificates, DescribeListeners, DescribeLoadBalancerAttributes, DescribeLoadBalancers, DescribeRules, DescribeSSLPolicies, DescribeTags, DescribeTargetGroupAttributes, DescribeTargetGroups, DescribeTargetHealth Describe* 40 10
Mutierend 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

Die folgende Tabelle zeigt die Standardkapazität und die Nachfüllraten für die Token-Buckets mit unkategorisierten Anforderungen für. ELBv2

ELBv2 Aktionen Kapazität des Eimers Nachfüllrate (pro Sekunde)
CreateTrustStore 10 0,2 †
AddTrustStoreRevocations, DeleteSharedTrustStoreAssociation, DeleteTrustStore, ModifyTrustStore, RemoveTrustStoreRevocations 10 0,2
GetTrustStoreCaCertificatesBundle, GetTrustStoreRevocationContent 20 4
DescribeTrustStoreAssociations, DescribeTrustStoreRevocations, DescribeTrustStores 40 10

Bei teilweisen Nachfüllraten dauert es mehrere Sekunden, bis ein vollständiger Token generiert ist.

Überwachung von API-Anfragen

Sie können AWS CloudTrail es verwenden, um Ihre Elastic Load Balancing API-Anfragen zu überwachen. Weitere Informationen finden Sie unter API-Aufrufe für Elastic Load Balancing protokollieren mit AWS CloudTrail.