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à.
Request throttling per Amazon EC2 API
Amazon EC2 limita le EC2 API richieste per ogni AWS account in base alla regione. Lo facciamo per migliorare le prestazioni del servizio e garantire un utilizzo equo per tutti i EC2 clienti Amazon. La limitazione garantisce che le richieste ad Amazon EC2 API non superino i limiti di API richieste massimi consentiti. APIle richieste sono soggette ai limiti di richiesta indipendentemente dal fatto che provengano da:
-
Un'applicazione di terze parti
-
Uno strumento da riga di comando
-
La EC2 console Amazon
Se superi un limite di API limitazione, viene visualizzato il codice di RequestLimitExceeded
errore.
Indice
Come viene applicata la limitazione
Amazon EC2 utilizza l'algoritmo token bucket
Amazon EC2 implementa due tipi di API throttling:
APItipi di limitazione
Limitazione del tasso di richiesta
Con la limitazione della frequenza delle richieste, ogni richiesta API viene valutata singolarmente e il numero di richieste effettuate su base individuale è limitato. API Ogni richiesta effettuata rimuove un token dal bucket. API Ad esempio, la dimensione del bucket di token per DescribeHosts
un'APIazione non mutante è di 100 token. Puoi effettuare fino a 100 DescribeHosts
richieste in un secondo. Se superi le 100 richieste in un secondo, la velocità di risposta è limitata API e le richieste rimanenti entro quel secondo hanno esito negativo, tuttavia, le richieste relative ad altre richieste non API 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'APIazione 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 vengono effettuate richieste durante tale periodo.
Non è necessario attendere che il bucket sia completamente pieno prima di poter effettuare API richieste. È possibile 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'APIazione non mutante è di 100 token e la frequenza di ricarica è di 20 token al secondo. Se esaurisci il bucket effettuando 100 API richieste al secondo, puoi continuare a fare 20 API richieste 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 si effettuano meno di 20 richieste al secondo. API
Limitazione della frequenza delle risorse
Alcune API azioni, ad esempio RunInstances
eTerminateInstances
, come descritto nella tabella che segue, utilizzano la limitazione della frequenza delle risorse oltre alla limitazione della frequenza delle richieste. Queste API azioni 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 esplodere e una frequenza di ricarica che consente di mantenere una frequenza costante di richieste per tutto il tempo necessario. Se superi un limite specifico per un bucketAPI, incluso quando un bucket non è stato ancora riempito per supportare la API richiesta successiva, l'azione del bucket API è limitata anche se non hai raggiunto il limite totale di accelerazione. 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 API richieste, 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 dei Resource Token Bucket e tassi di ricarica.
Limiti di limitazione
Le sezioni seguenti descrivono le dimensioni del bucket di token di richiesta e del bucket di token di risorse e le frequenze di ricarica.
Richiedi le dimensioni dei bucket di token e le tariffe di ricarica
Ai fini della limitazione della frequenza delle richieste, API le azioni sono raggruppate nelle seguenti categorie:
-
Azioni non mutanti: API azioni che recuperano dati sulle risorse. Questa categoria include in genere tutte
Describe*
Get*
API le azioni,, e.List*
Search*
DescribeRouteTables
SearchTransitGatewayRoutes
GetIpamPoolCidrs
Queste API azioni hanno in genere i limiti di API limitazione più elevati. -
Azioni non mutanti non filtrate e non impaginate: un sottoinsieme specifico di azioni non mutanti che, quando richieste senza specificare né l'APIimpaginazione 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: API azioni che creano, modificano o eliminano risorse. Questa categoria include in genere tutte API le azioni che non sono classificate come azioni non mutanti, ad esempio, e.
AllocateHosts
ModifyHosts
CreateCapacityReservation
Queste azioni hanno un limite di limitazione inferiore rispetto alle azioni non mutanti. API -
Azioni che richiedono molte risorse: azioni mutanti API 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 mutanti API richieste dalla console Amazon. EC2 Queste API azioni vengono limitate separatamente dalle altre azioni non mutanti. API
-
Azioni non categorizzate: si tratta di API azioni che ricevono le proprie dimensioni e frequenze di ricarica, anche se per definizione rientrano in una delle altre categorie.
La tabella seguente mostra le dimensioni dei bucket di token di richiesta e le frequenze di ricarica per tutte le regioni. AWS
APIcategoria di azione | Azioni | Capacità massima bucket | Frequenza di ricarica del secchio |
---|---|---|---|
Azioni non mutanti |
Tutte |
100 | 20 |
Azioni non mutanti non filtrate e non impaginate |
|
50 | 10 |
Azioni mutanti | Tutte le azioni mutanti che non sono API azioni che richiedono un uso intensivo di risorse o azioni non categorizzate. |
50 | 5 |
Azioni che richiedono molte risorse |
|
50 | 5 |
Azioni non mutanti della console |
|
100 | 10 |
Azioni non categorizzate | AcceptVpcEndpointConnections |
10 | 1 |
AdvertiseByoipCidr |
1 | 0.1 | |
AssignIpv6Addresses |
100 | 5 | |
AssignPrivateIpAddresses |
100 | 5 | |
AssignPrivateNatGatewayAddress |
10 | 1 | |
AssociateEnclaveCertificateIamRole |
10 | 1 | |
AssociateIamInstanceProfile |
100 | 5 | |
AssociateNatGatewayAddress |
10 | 1 | |
AttachVerifiedAccessTrustProvider |
10 | 2 | |
CreateDefaultSubnet |
1 | 1 | |
CreateDefaultVpc |
1 | 1 | |
CopyImage |
100 | 1 | |
CreateLaunchTemplateVersion |
100 | 5 | |
CreateNatGateway |
10 | 1 | |
CreateNetworkInterface |
100 | 5 | |
CreateRestoreImageTask |
50 | 0.1 | |
CreateSnapshot |
100 | 5 | |
CreateSnapshots |
100 | 5 | |
CreateStoreImageTask |
50 | 0.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 | |
DeleteNatGateway |
10 | 1 | |
DeleteNetworkInterface |
100 | 5 | |
DeleteSnapshot |
100 | 5 | |
DeleteTags |
100 | 10 | |
DeleteQueuedReservedInstances |
5 | 5 | |
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 | |
DetachVerifiedAccessTrustProvider |
10 | 2 | |
DescribeByoipCidrs |
1 | 0,5 | |
DescribeCapacityBlockOfferings |
10 | 0,15 | |
DescribeInstanceTopology |
1 | 1 | |
DescribeMovingAddresses |
1 | 1 | |
DescribeReservedInstancesOfferings |
10 | 10 | |
DescribeSpotFleetRequestHistory |
100 | 5 | |
DescribeSpotFleetInstances |
100 | 5 | |
DescribeSpotFleetRequests |
50 | 3 | |
DescribeStoreImageTasks |
50 | 0,5 | |
DescribeVerifiedAccessInstanceLoggingConfigurations |
10 | 2 | |
DisableFastLaunch |
5 | 2 | |
DisableImageBlockPublicAccess |
1 | 0.1 | |
DisableSnapshotBlockPublicAccess |
1 | 0.1 | |
DisassociateEnclaveCertificateIamRole |
10 | 1 | |
DisassociateIamInstanceProfile |
100 | 5 | |
DisassociateNatGatewayAddress |
10 | 1 | |
EnableFastLaunch |
5 | 2 | |
EnableImageBlockPublicAccess |
1 | 0.1 | |
EnableSnapshotBlockPublicAccess |
1 | 0.1 | |
GetAssociatedEnclaveCertificateIamRoles |
10 | 1 | |
ModifyImageAttribute |
100 | 5 | |
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 | |
PurchaseReservedInstancesOffering |
5 | 5 | |
RejectVpcEndpointConnections |
10 | 1 | |
RestoreAddressToClassic |
1 | 1 | |
RunInstances |
5 | 2 | |
StartInstances |
5 | 2 | |
TerminateInstances |
100 | 5 | |
UnassignPrivateIpAddresses |
100 | 5 | |
UnassignPrivateNatGatewayAddress |
10 | 1 | |
WithdrawByoipCidr |
1 | 0.1 |
Dimensioni dei Resource Token Bucket e tassi di ricarica
La tabella seguente elenca le dimensioni dei bucket di risorse e le frequenze di ricarica per API le azioni che utilizzano la limitazione della frequenza delle risorse.
APIazione | Capacità massima bucket | velocità di ricarica del secchio |
---|---|---|
RunInstances |
1000 | 2 |
TerminateInstances |
1000 | 20 |
StartInstances |
1000 | 2 |
StopInstances |
1000 | 20 |
Monitora la limitazione API
Puoi utilizzare Amazon CloudWatch per monitorare le tue EC2 API richieste Amazon e raccogliere e tenere traccia delle metriche relative al API throttling. Puoi anche creare un allarme per avvisarti quando stai per raggiungere i limiti di limitazione. API Per ulteriori informazioni, consulta Monitora le richieste EC2 API Amazon utilizzando Amazon CloudWatch.
Tentativi e backoff esponenziale
L'applicazione potrebbe dover riprovare una richiesta. API Per esempio:
-
Per verificare la presenza di un aggiornamento nello 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 sonno appropriato tra le richieste successive per ridurre la frequenza delle API richieste. 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 EC2Instance State-change Notification per notificarti una modifica dello stato di un'istanza. Per ulteriori informazioni, consulta Automatizza l'EC2utilizzo EventBridge di Amazon.
Tentativi
Quando devi interrogare o riprovare una API richiesta, ti consigliamo di utilizzare un algoritmo di backoff esponenziale per calcolare l'intervallo di sonno 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 ulteriori informazioni, consulta Timeout, nuovi tentativi e backoff con jitter
Ciascuno implementa AWS SDK la logica di ripetizione automatica. Per ulteriori informazioni, consulta Retry behavior nella AWS SDKsand Tools Reference Guide.
Richiedere un aumento del limite della
Puoi richiedere un aumento dei limiti di API limitazione per il tuo. Account AWS
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, inserisci
Please increase the API throttling limits for my account. Related page: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html
. Includi inoltre le seguenti informazioni:Descrizione del caso d'uso.
Le regioni in cui è necessario un aumento.
La finestra di un'oraUTC, in cui si è verificato il picco di limitazione o di utilizzo (per calcolare il nuovo limite di limitazione).
-
Scegli Passaggio successivo: risolvi ora o contattaci.
-
Nella scheda Contattaci, scegli la lingua e il metodo di contatto preferiti.
-
Scegli Invia.