Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazione delle richieste per l'API Amazon EC2
Amazon EC2 limita le richieste API EC2 per ogni AWS account in base alla regione. Lo facciamo per migliorare le prestazioni del servizio e garantire un utilizzo equo per tutti i clienti Amazon EC2. La limitazione garantisce che le richieste all'API Amazon EC2 non superino i limiti massimi consentiti per le richieste API. Le richieste API sono soggette ai limiti di richiesta indipendentemente dal fatto che provengano da:
-
Un'applicazione di terze parti
-
Uno strumento da riga di comando
-
La console Amazon EC2
Se superi un limite di limitazione delle API, ricevi il RequestLimitExceeded codice di errore.
Indice
Come viene applicato il throttling
Amazon EC2 utilizza l'algoritmo token bucket
Amazon EC2 implementa due tipi di limitazione delle API:
tipi di limitazione delle API
Limitazione del tasso di richiesta
Con la limitazione della frequenza delle richieste, ogni API viene valutata singolarmente e il numero di richieste effettuate per ogni API è limitato. Ogni richiesta effettuata rimuove un token dal bucket dell'API. Ad esempio, la dimensione del bucket di token per DescribeHosts un'azione API non mutante è di 100 token. Puoi effettuare fino a 100 DescribeHosts richieste in un secondo. Se superi le 100 richieste in un secondo, vieni limitato da quell'API e le richieste rimanenti entro quel secondo falliscono, tuttavia, le richieste per altre API non ne risentono.
I bucket si ricaricano automaticamente a una velocità prestabilita. Se il bucket è al di sotto della sua capacità massima, gli viene aggiunto un determinato numero di token ogni secondo fino a raggiungere la capacità massima. Se il secchio è pieno quando arrivano i gettoni di ricarica, questi vengono scartati. Il bucket non può contenere più del numero massimo di token. Ad esempio, la dimensione del bucket per DescribeHosts un'azione API non mutante è di 100 token e la frequenza di ricarica è di 20 token al secondo. Se si effettuano 100 DescribeHosts richieste in un secondo, il bucket viene ridotto a zero (0) token. Il bucket viene quindi ricaricato di 20 token ogni secondo, fino a raggiungere la capacità massima di 100 token. Ciò significa che un bucket vuoto raggiunge la sua capacità massima dopo 5 secondi se non viene effettuata alcuna richiesta durante quel periodo.
Non è necessario attendere che il bucket sia completamente pieno prima di poter effettuare richieste API. Puoi utilizzare i token di ricarica man mano che vengono aggiunti al bucket. Se si utilizzano immediatamente i gettoni di ricarica, il secchio non raggiunge la sua capacità massima. Ad esempio, la dimensione del bucket per DescribeHosts un'azione API non mutante è di 100 token e la frequenza di ricarica è di 20 token al secondo. Se esaurisci il bucket effettuando 100 richieste API in un secondo, puoi continuare a fare 20 richieste API al secondo utilizzando i token di ricarica man mano che vengono aggiunti al bucket. Il bucket può essere ricaricato fino alla capacità massima solo se effettui meno di 20 richieste API al secondo.
Per ulteriori informazioni, consulta Richiedi le dimensioni dei bucket di token e le tariffe di ricarica.
Limitazione del tasso di utilizzo delle risorse
Alcune azioni API, come RunInstances eTerminateInstances, come descritto nella tabella che segue, utilizzano la limitazione della velocità delle risorse oltre alla limitazione della velocità delle richieste. Queste azioni API hanno un bucket di token di risorse separato che si esaurisce in base al numero di risorse interessate dalla richiesta. Analogamente ai bucket di token di richiesta, i bucket di token di risorse hanno un numero massimo di bucket che consente di eseguire il burst e una frequenza di ricarica che consente di mantenere una frequenza costante di richieste per tutto il tempo necessario. Se superi un limite di bucket specifico per un'API, incluso quando un bucket non è stato ancora riempito per supportare la successiva richiesta API, l'azione dell'API è limitata anche se non hai raggiunto il limite totale di limitazione dell'API.
Ad esempio, la dimensione del bucket di token di risorse RunInstances è di 1000 token e la frequenza di ricarica è di due token al secondo. Pertanto, è possibile avviare immediatamente 1000 istanze, utilizzando un numero qualsiasi di richieste API, ad esempio una richiesta per 1000 istanze o quattro richieste per 250 istanze. Dopo che il bucket di token di risorse è vuoto, puoi avviare fino a due istanze al secondo, utilizzando una richiesta per due istanze o due richieste per un'istanza.
Per ulteriori informazioni, consulta Dimensioni e tassi di ricarica dei Resource Token.
Richiedi le dimensioni dei bucket di token e le tariffe di ricarica
Ai fini della limitazione della frequenza delle richieste, le azioni API sono raggruppate nelle seguenti categorie:
-
Non-mutating azioni: azioni API che recuperano dati sulle risorse. Questa categoria include in genere tutte le azioni
Describe*List*Search*, eGet*API, ad esempioDescribeRouteTablesSearchTransitGatewayRoutes, eGetIpamPoolCidrs. Queste azioni API in genere hanno i limiti di limitazione delle API più elevati. -
Azioni non mutanti non filtrate e non impaginate: un sottoinsieme specifico di azioni API non mutanti che, quando richieste senza specificare né l'impaginazione né un filtro, utilizzano i token di un bucket di token più piccolo. Si consiglia di utilizzare l'impaginazione e il filtraggio in modo che i token vengano detratti dal bucket di token standard (più grande).
-
Azioni mutanti: azioni API che creano, modificano o eliminano risorse. Questa categoria include in genere tutte le azioni API che non sono classificate come azioni non mutanti, ad esempio, e.
AllocateHostsModifyHostsCreateCapacityReservationQueste azioni hanno un limite di limitazione inferiore rispetto alle azioni API non mutanti. -
Resource-intensive azioni: azioni API mutanti che richiedono più tempo e più risorse per essere completate. Queste azioni hanno un limite di limitazione ancora più basso rispetto alle azioni di mutazione. Vengono limitate separatamente dalle altre azioni mutanti.
-
Azioni non mutanti della console: azioni Non-mutating API richieste dalla console Amazon EC2. Queste azioni API vengono limitate separatamente dalle altre azioni API non mutanti.
-
Azioni non categorizzate: si tratta di azioni API che ricevono le proprie dimensioni di token e frequenze di ricarica, anche se per definizione rientrano in una delle altre categorie.
| Categoria di azioni API | Azioni | Capacità massima bucket | Frequenza di ricarica del secchio |
|---|---|---|---|
| Non-mutating azioni |
Le azioni |
100 | 20 |
| Azioni non mutanti non filtrate e non impaginate |
|
50 | 10 |
| Azioni mutanti | Tutte le azioni API mutanti che non sono azioni o Resource-intensive azioni non categorizzate. |
50 | 5 |
| Resource-intensive azioni |
|
50 | 5 |
| Azioni non mutanti della console |
Le azioni |
100 | 10 |
| Azioni non categorizzate | Capacità massima bucket | Frequenza di ricarica del secchio |
|---|---|---|
AcceptVpcEndpointConnections |
10 | 1 |
AdvertiseByoipCidr |
1 | 0.1 |
AssignIpv6Addresses |
100 | 5 |
AssignPrivateIpAddresses |
100 | 5 |
AssignPrivateNatGatewayAddress |
10 | 1 |
AssociateCapacityReservationBillingOwner |
1 | 0,5 |
AssociateEnclaveCertificateIamRole |
10 | 1 |
AssociateIamInstanceProfile |
100 | 5 |
AssociateNatGatewayAddress |
10 | 1 |
AttachVerifiedAccessTrustProvider |
10 | 2 |
AuthorizeClientVpnIngress |
5 | 2 |
CancelDeclarativePoliciesReport |
1 | 1 |
CopyImage |
100 | 1 |
CreateClientVpnRoute |
5 | 2 |
CreateCoipCidr |
5 | 1 |
CreateCoipPool |
5 | 1 |
CreateDefaultSubnet |
1 | 1 |
CreateDefaultVpc |
1 | 1 |
CreateLaunchTemplateVersion |
100 | 5 |
CreateNatGateway |
10 | 1 |
CreateNetworkInterface |
100 | 5 |
CreateRestoreImageTask |
50 | 0.1 |
CreateSnapshot |
100 | 5 |
CreateSnapshots |
100 | 5 |
CreateSpotDatafeedSubscription |
50 | 3 |
CreateStoreImageTask |
50 | 0.1 |
CreateSubnetCidrReservation |
5 | 1 |
CreateTags |
100 | 10 |
CreateVerifiedAccessEndpoint |
20 | 4 |
CreateVerifiedAccessGroup |
10 | 2 |
CreateVerifiedAccessInstance |
10 | 2 |
CreateVerifiedAccessTrustProvider |
10 | 2 |
CreateVolume |
100 | 5 |
CreateVpcEndpoint |
4 | 0.3 |
CreateVpcEndpointServiceConfiguration |
10 | 1 |
DeleteClientVpnRoute |
5 | 2 |
DeleteCoipCidr |
5 | 1 |
DeleteCoipPool |
5 | 1 |
DeleteCoipPoolPermission |
5 | 1 |
DeleteNatGateway |
10 | 1 |
DeleteNetworkInterface |
100 | 5 |
DeleteSnapshot |
100 | 5 |
DeleteSpotDatafeedSubscription |
50 | 3 |
DeleteSubnetCidrReservation |
5 | 1 |
DeleteQueuedReservedInstances |
5 | 5 |
DeleteTags |
100 | 10 |
DeleteVerifiedAccessEndpoint |
20 | 4 |
DeleteVerifiedAccessGroup |
10 | 2 |
DeleteVerifiedAccessInstance |
10 | 2 |
DeleteVerifiedAccessTrustProvider |
10 | 2 |
DeleteVolume |
100 | 5 |
DeleteVpcEndpoints |
4 | 0.3 |
DeleteVpcEndpointServiceConfigurations |
10 | 1 |
DeprovisionByoipCidr |
1 | 0.1 |
DeregisterImage |
100 | 5 |
DescribeAggregateIdFormat |
10 | 10 |
DescribeByoipCidrs |
1 | 0,5 |
DescribeCapacityBlockExtensionOfferings |
10 | 0,15 |
DescribeCapacityBlockOfferings |
10 | 0,15 |
DescribeDeclarativePoliciesReports |
5 | 5 |
DescribeHostReservations |
5 | 2 |
DescribeHostReservationOfferings |
5 | 2 |
DescribeIdentityIdFormat |
10 | 10 |
DescribeIdFormat |
10 | 10 |
DescribeInstanceTopology |
1 | 1 |
DescribeMovingAddresses |
1 | 1 |
DescribePrincipalIdFormat |
10 | 10 |
DescribeReservedInstancesOfferings |
10 | 10 |
DescribeSecurityGroupReferences |
20 | 5 |
DescribeSpotDatafeedSubscription |
100 | 13 |
DescribeSpotFleetInstances |
100 | 5 |
DescribeSpotFleetRequestHistory |
100 | 5 |
DescribeSpotFleetRequests |
50 | 3 |
DescribeStaleSecurityGroups |
20 | 5 |
DescribeStoreImageTasks |
50 | 0,5 |
DescribeVerifiedAccessInstanceLoggingConfigurations |
10 | 2 |
DetachVerifiedAccessTrustProvider |
10 | 2 |
DisableFastLaunch |
5 | 2 |
DisableImageBlockPublicAccess |
1 | 0.1 |
DisableSnapshotBlockPublicAccess |
1 | 0.1 |
DisassociateCapacityReservationBillingOwner |
1 | 0,5 |
DisassociateEnclaveCertificateIamRole |
10 | 1 |
DisassociateIamInstanceProfile |
100 | 5 |
DisassociateNatGatewayAddress |
10 | 1 |
EnableFastLaunch |
5 | 2 |
EnableImageBlockPublicAccess |
1 | 0.1 |
EnableSnapshotBlockPublicAccess |
1 | 0.1 |
GetAssociatedEnclaveCertificateIamRoles |
10 | 1 |
GetDeclarativePoliciesReportSummary |
5 | 5 |
GetHostReservationPurchasePreview |
5 | 2 |
ModifyImageAttribute |
100 | 5 |
ModifyInstanceMetadataDefaults |
2 | 2 |
ModifyInstanceMetadataOptions |
100 | 5 |
ModifyLaunchTemplate |
100 | 5 |
ModifyNetworkInterfaceAttribute |
100 | 5 |
ModifySnapshotAttribute |
100 | 5 |
ModifyVerifiedAccessEndpoint |
20 | 4 |
ModifyVerifiedAccessEndpointPolicy |
20 | 4 |
ModifyVerifiedAccessGroup |
10 | 2 |
ModifyVerifiedAccessGroupPolicy |
20 | 4 |
ModifyVerifiedAccessInstance |
10 | 2 |
ModifyVerifiedAccessInstanceLoggingConfiguration |
10 | 2 |
ModifyVerifiedAccessTrustProvider |
10 | 2 |
ModifyVpcEndpoint |
4 | 0.3 |
ModifyVpcEndpointServiceConfiguration |
10 | 1 |
MoveAddressToVpc |
1 | 1 |
ProvisionByoipCidr |
1 | 0.1 |
PurchaseCapacityBlock |
10 | 0,15 |
PurchaseCapacityBlockExtension |
10 | 0,15 |
PurchaseHostReservation |
5 | 2 |
PurchaseReservedInstancesOffering |
5 | 5 |
RejectVpcEndpointConnections |
10 | 1 |
RestoreAddressToClassic |
1 | 1 |
RevokeClientVpnIngress |
5 | 2 |
RunInstances |
5 | 2 |
StartDeclarativePoliciesReport |
1 | 1 |
StartInstances |
5 | 2 |
TerminateInstances |
100 | 5 |
UnassignPrivateIpAddresses |
100 | 5 |
UnassignPrivateNatGatewayAddress |
10 | 1 |
WithdrawByoipCidr |
1 | 0.1 |
Dimensioni e tassi di ricarica dei Resource Token
La tabella seguente elenca le dimensioni dei bucket di risorse e le frequenze di ricarica per le azioni API che utilizzano la limitazione della velocità delle risorse.
| Azione API | Capacità massima bucket | Frequenza di ricarica del secchio |
|---|---|---|
RunInstances |
1000 | 2 |
TerminateInstances |
1000 | 20 |
StartInstances |
1000 | 2 |
StopInstances |
1000 | 20 |
Monitora la limitazione delle API
Puoi usare Amazon CloudWatch per monitorare le tue richieste API Amazon EC2 e per raccogliere e tracciare i parametri relativi alla limitazione delle API. Puoi anche creare un allarme per avvisarti quando stai per raggiungere i limiti di limitazione delle API. Per ulteriori informazioni, consulta Monitora le richieste EC2 API Amazon utilizzando Amazon CloudWatch.
Tentativi e backoff esponenziale
L'applicazione potrebbe dover ripetere una richiesta API. Esempio:
-
Per verificare la presenza di un aggiornamento dello stato di una risorsa
-
Per enumerare un gran numero di risorse (ad esempio, tutti i volumi)
-
Riprovare una richiesta dopo che ha avuto esito negativo con un errore del server (5xx) o un errore di limitazione
Tuttavia, per un errore del client (4xx), è necessario modificare la richiesta per correggere il problema prima di riprovare la richiesta.
Modifiche allo stato delle risorse
Prima di iniziare i sondaggi per verificare la presenza di aggiornamenti sullo stato, attendi il tempo necessario per completare la richiesta. Ad esempio, attendi qualche minuto prima di verificare se l'istanza è attiva. Quando inizi il polling, utilizza un intervallo di sospensione appropriato tra le richieste successive per ridurre la frequenza delle richieste API. Per ottimizzare i risultati, utilizzare un intervallo di attesa incrementale o variabile.
In alternativa, puoi utilizzare Amazon EventBridge per informarti sullo stato di alcune risorse. Ad esempio, puoi utilizzare l'evento EC2 Instance State-change Notification per notificarti una modifica dello stato di un'istanza. Per ulteriori informazioni, consulta Automatizza l'utilizzo di Amazon EventBridge EC2.
Tentativi
Quando devi eseguire il polling o riprovare una richiesta API, ti consigliamo di utilizzare un algoritmo di backoff esponenziale per calcolare l'intervallo di sospensione tra le richieste API. L'idea che sottende al backoff esponenziale è di utilizzare attese progressivamente più lunghe tra i tentativi per le risposte di errore consecutive. È consigliabile implementare un intervallo di ritardo massimo, nonché un numero massimo di tentativi. Puoi anche usare il jitter (ritardo casuale) per prevenire collisioni successive. Per maggiori informazioni, consulta Timeout, nuovi tentativi e backoff con jitter
Ogni AWS SDK implementa la logica di ripetizione automatica. Per ulteriori informazioni, consulta Retry behavior nella Guida di riferimento agli AWS SDK and Tools.
Visualizza i limiti attuali delle API
Puoi visualizzare i limiti attuali e predefiniti per ogni azione dell'API Amazon EC2 effettuata Account AWS utilizzando la console Service Quotas.
In che modo le quote si relazionano al limite di accelerazione
Ogni limite di limitazione delle API è composto da due quote che interagiscono per definire la frequenza di richieste burst e sostenute:
-
Capacità massima del bucket: determina il numero massimo di richieste che è possibile effettuare in una raffica. Questa è la tua frequenza di burst.
-
Frequenza di ricarica del bucket: determina il numero di token aggiunti al bucket al secondo. Questa è la tua tariffa sostenuta.
Esempio: Visualizza il limite dell' RunInstances acceleratore
Per visualizzare il limite di RunInstances accelerazione, cercate. RunInstances La console mostra:
-
RunInstancesrichiedi la capacità massima del bucket, ad esempio 5 (burst) -
RunInstancesrichiedi la frequenza di ricarica del secchio, ad esempio 2 al secondo (sostenuta)
Queste due quote insieme definiscono il limite completo dell'acceleratore. RunInstances
Comprensione dei valori delle quote
-
Il valore della quota applicata a livello di account indica qualsiasi eccezione alla quota applicata al tuo account. Questa è la tua quota effettiva attuale.
-
Il valore di quota AWS predefinito indica la quota di limitazione dell'API predefinita.
Nota
Attendi fino a 24 ore prima che eventuali aggiustamenti delle quote si riflettano nella console Service Quotas.
Per visualizzare le quote attuali
-
Apri la console Service Quotas all'indirizzo https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/
. -
Cerca il nome dell'azione API (ad esempio
RunInstances) e lo schema del nome della quota per trovare le voci di quota corrispondenti.
La tabella seguente descrive i modelli di denominazione delle quote.
| Modello di denominazione delle quote | Description |
|---|---|
{API_NAME}capacità massima del bucket di richiesta |
Burst rate: il numero massimo di token disponibili |
{API_NAME}richiedi la tariffa di ricarica del secchio |
Frequenza sostenuta: token aggiunti al secondo |
{API_NAME}capacità massima del bucket di richiesta non filtrato |
Burst rate: il numero massimo di token disponibili per le richieste non filtrate (non impaginate) |
{API_NAME}frequenza di ricarica del bucket di richieste non filtrate |
Frequenza sostenuta: token aggiunti al secondo per richieste non filtrate (non impaginate) |
Richiedere un aumento del limite della
Puoi richiedere un aumento dei limiti di limitazione delle API per il tuo. Account AWS
Raccomandazioni
-
Richiedi un massimo di tre volte il limite esistente in un'unica richiesta.
-
Dai la priorità all'aumento della velocità di ricarica delle benne prima di aumentare la capacità massima delle benne.
-
Se la velocità di ricarica della benna richiesta supera la capacità massima della benna, aumenta contemporaneamente la capacità massima della benna.
-
Fornisci tutte le azioni API che richiedono un aumento. I limiti vengono applicati alle singole azioni API, non alle categorie di azioni API.
-
Esistono limiti sia alla frequenza delle richieste che alla frequenza delle risorse per le seguenti azioni API:
RunInstancesStartInstances,StopInstances, eTerminateInstances. Assicurati di indicare quale limite deve essere aumentato
Per richiedere l'accesso a questa funzionalità
-
Open Supporto AWS Center
. -
Scegli Crea caso.
-
Scegli Account e fatturazione.
-
Per Assistenza, scegli Informazioni generali e Guida introduttiva.
-
Per Categoria, scegli Uso AWS e servizi.
-
Scegli Fase successiva: informazioni aggiuntive.
-
Per Subject (Oggetto), immettere
Request an increase in my Amazon EC2 API throttling limits. -
Per Descrizione, copia il seguente modello e fornisci le informazioni richieste.
Please increase the API throttling limits for my account. Related page: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-throttling.html Description:Brief notes about your use case. If available, include the IDs of a few Amazon EC2 requests that were throttled.Time window:One-hour window when peak throttling or usage occurred.region_1request rate increases:action:new_bucket_maximum_capacityaction:new_bucket_refill_rateaction:new_bucket_maximum_capacity|new_bucket_refill_rateregion_1resource rate increases:action:new_bucket_maximum_capacityaction:new_bucket_refill_rateaction:new_bucket_maximum_capacity|new_bucket_refill_rateregion_2request rate increases:action:new_bucket_maximum_capacityaction:new_bucket_refill_rateaction:new_bucket_maximum_capacity|new_bucket_refill_rateregion_2resource rate increases:action:new_bucket_maximum_capacityaction:new_bucket_refill_rateaction:new_bucket_maximum_capacity|new_bucket_refill_rate -
Scegli Passaggio successivo: risolvi ora o contattaci.
-
Nella scheda Contattaci, scegli la lingua e il metodo di contatto preferiti.
-
Seleziona Invia.