View a markdown version of this page

Richiedi la limitazione per l'API Amazon EC2 - Amazon Elastic Compute Cloud

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à.

Richiedi la limitazione per l'API Amazon EC2

Amazon EC2 limita le richieste API EC2 per ogni account in base alla regione. AWS 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 di richieste API consentiti. Le richieste API sono soggette ai limiti di richiesta indipendentemente dal fatto che provengano da:

  • Un'applicazione di terze parti

  • Uno strumento a riga di comando

  • La console Amazon EC2

Se superi il limite di limitazione delle API, viene visualizzato il RequestLimitExceeded codice di errore.

Come viene applicata la limitazione

Amazon EC2 utilizza l'algoritmo token bucket per implementare la limitazione delle API. Con questo algoritmo, il tuo account dispone di un bucket che contiene un numero specifico di token. Il numero di token nel bucket rappresenta il tuo limite di limitazione in un dato secondo.

Amazon EC2 implementa due tipi di limitazione delle API:

Limitazione del tasso di richiesta

Grazie alla limitazione della frequenza delle richieste, ogni API viene valutata individualmente e viene limitato il numero di richieste effettuate per ciascuna API. 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, l'utilizzo di tale API viene limitato e le richieste rimanenti entro quel secondo hanno esito negativo. Tuttavia, le richieste per altre API non sono interessate.

I bucket si riempiono 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 sua capacità massima. Se il bucket è pieno quando arrivano i gettoni di ricarica, 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 effettui 100 DescribeHosts richieste in un secondo, il bucket viene ridotto a zero (0) token. Il bucket viene quindi riempito di 20 token ogni secondo, fino a raggiungere la sua 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 tale 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 utilizzi 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ò riempirsi fino alla capacità massima solo se effettui meno di 20 richieste API al secondo.

Per ulteriori informazioni, consulta Dimensioni del bucket di token e tassi di ricarica.

Limitazione della velocità 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 frequenza 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 il burst e una frequenza di ricarica che consente di mantenere un tasso costante di richieste per tutto il tempo necessario. Se superi un limite di bucket specifico per un'API, incluso quando un bucket non è ancora stato riempito per supportare la successiva richiesta API, l'azione dell'API è limitata anche se non hai raggiunto il limite totale di accelerazione dell'API.

Ad esempio, la dimensione del bucket dei token di risorse RunInstances è di 1000 token e la frequenza di ricarica è di due token al secondo. Pertanto, puoi 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 del 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 bucket dei token di risorse e tassi di ricarica.

Dimensioni del bucket di token e tassi di ricarica

Ai fini della limitazione del tasso di richiesta, le azioni API sono raggruppate nelle seguenti categorie:

  • Non-mutating azioni: azioni API che recuperano dati sulle risorse. Questa categoria include generalmente tutte le azioni Describe* List*Search*,, e Get* API, come DescribeRouteTablesSearchTransitGatewayRoutes, eGetIpamPoolCidrs. Queste azioni API hanno in genere i limiti di limitazione delle API più elevati.

  • Azioni non mutanti non filtrate e non paginate: un sottoinsieme specifico di azioni API non mutanti che, se richieste senza specificare la https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html paginazione o un filtro, utilizzano i token di un bucket di token più piccolo. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html#Filtering_Resources_CLI Si consiglia di utilizzare la paginazione e il filtro 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 generalmente tutte le azioni API che non sono classificate come azioni non mutanti, comeAllocateHosts, e. ModifyHosts CreateCapacityReservation Queste azioni hanno un limite di limitazione inferiore rispetto alle azioni API non mutanti.

  • Resource-intensive azioni: azioni API mutanti che richiedono più tempo e consumano più risorse per essere completate. Queste azioni hanno un limite di limitazione ancora più basso rispetto alle azioni mutanti. Sono limitate separatamente dalle altre azioni mutanti.

  • Azioni non mutanti sulla 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 a cui vengono assegnate le dimensioni dei bucket e le relative percentuali di ricarica, anche se per definizione rientrano in una delle altre categorie.

Categoria di azione API Azioni Capacità massima bucket Percentuale di ricarica del secchio
Non-mutating azioni

Le azioni Describe*List*,Search*, e Get* API che non sono incluse in un'altra categoria.

100 20
Azioni non mutanti non filtrate e non impaginate
  • DescribeInstances

  • DescribeInstanceStatus

  • DescribeNetworkInterfaces

  • DescribeSecurityGroups

  • DescribeSnapshots

  • DescribeSpotInstanceRequests

  • DescribeVolumes

50 10
Azioni mutanti

Tutte le azioni API mutanti che non sono azioni o Resource-intensive azioni non categorizzate.

50 5
Resource-intensive azioni
  • AcceptVpcPeeringConnection

  • AuthorizeSecurityGroupIngress

  • CancelSpotInstanceRequests

  • CreateKeyPair

  • CreateVpcPeeringConnection

  • DeleteVpcPeeringConnection

  • RejectVpcPeeringConnection

  • RevokeSecurityGroupIngress

  • RequestSpotInstances

50 5
Azioni non mutanti della console

Le azioni Describe*List*,Search*, e Get* API, richiamate dalla console Amazon EC2, ma non incluse in un'altra categoria.

100 10
Azioni non categorizzate Capacità massima bucket Percentuale 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 dei bucket dei token di risorse e tassi di ricarica

La tabella seguente elenca le dimensioni dei bucket dei token di risorse e le percentuali di ricarica per le azioni API che utilizzano la limitazione della frequenza delle risorse.

Azione API Capacità massima bucket Percentuale di ricarica del bucket
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 tenere traccia delle metriche relative 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 ritentare una richiesta API. Ad esempio:

  • Per verificare la presenza di un aggiornamento dello stato di una risorsa

  • Per enumerare un numero elevato di risorse (ad esempio, tutti i volumi)

  • Riprovare una richiesta dopo che non è riuscita con un errore del server (5xx) o un errore di limitazione

Tuttavia, in caso di errore del client (4xx), è necessario rivedere la richiesta per correggere il problema prima di riprovare la richiesta.

Modifiche allo stato delle risorse

Prima di iniziare il polling per verificare la presenza di aggiornamenti di stato, concedi il tempo necessario per il completamento della 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 notificarti 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 Automatizzare l'utilizzo di Amazon EC2. EventBridge

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 utilizzare il jitter (ritardo randomizzato) per evitare collisioni successive. Per maggiori informazioni, consulta Timeout, nuovi tentativi e backoff con jitter.

Ogni AWS SDK implementa una logica di riprova automatica. Per ulteriori informazioni, consulta il comportamento dei tentativi nella Guida di riferimento di AWS SDK and Tools.

Visualizza i tuoi attuali limiti API

Puoi visualizzare i limiti attuali e predefiniti per ogni azione dell'API Amazon EC2 che Account AWS usi utilizzando la console Service Quotas.

In che modo le quote si riferiscono al limite di accelerazione

Ogni limite di limitazione delle API è composto da due quote che interagiscono per definire la frequenza di richiesta a raffica e quella sostenuta:

  • Capacità massima del bucket: determina il numero massimo di richieste che puoi effettuare in sequenza. 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 RunInstances dell'acceleratore

Per visualizzare il limite dell'RunInstancesacceleratore, cerca. RunInstances La console mostra:

  • RunInstancesrichiedi la capacità massima del bucket, ad esempio 5 (burst)

  • RunInstancesrichiedi una velocità di ricarica del bucket, ad esempio 2 al secondo (sostenuta)

Queste due quote definiscono insieme il limite di accelerazione completo. RunInstances

Comprensione dei valori delle quote

  • Il valore della quota a livello di account applicato indica l'eventuale sostituzione della quota applicata al tuo account. Questa è la tua quota effettiva attuale.

  • Il valore della quota AWS predefinito indica la quota di limitazione predefinita dell'API.

Nota

Attendi fino a 24 ore affinché qualsiasi modifica delle quote si rifletta nella console Service Quotas.

Per visualizzare le quote attuali
  1. Apri la console Service Quotas all'indirizzo https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/.

  2. Cerca il nome dell'azione API (ad esempioRunInstances) e il modello del nome della quota per trovare le voci di quota corrispondenti.

La tabella seguente descrive i modelli di denominazione delle quote.

Schema di denominazione delle quote Description
{API_NAME}capacità massima del secchio di richiesta Burst rate: il numero massimo di token disponibili
{API_NAME}richiedi la tariffa di ricarica del bucket Velocità sostenuta: token aggiunti al secondo
{API_NAME}capacità massima del bucket di richieste non filtrato Burst rate: il numero massimo di token disponibili per le richieste non filtrate (non impaginate)
{API_NAME}percentuale di riempimento 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 al massimo tre volte il limite esistente in un'unica richiesta.

  • Dai la priorità all'aumento delle percentuali di ricarica della benna prima di aumentare la capacità massima della benna.

  • Se la velocità di riempimento 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 per la frequenza delle richieste che per la 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à
  1. Supporto AWS Centro aperto.

  2. Scegli Crea caso.

  3. Scegli Account e fatturazione.

  4. Per Assistenza, scegli Informazioni generali e Guida introduttiva.

  5. Per Categoria, scegli Utilizzo AWS e servizi.

  6. Scegli Fase successiva: informazioni aggiuntive.

  7. Per Subject (Oggetto), immettere Request an increase in my Amazon EC2 API throttling limits.

  8. 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_1 request rate increases: action: new_bucket_maximum_capacity action: new_bucket_refill_rate action: new_bucket_maximum_capacity|new_bucket_refill_rate region_1 resource rate increases: action: new_bucket_maximum_capacity action: new_bucket_refill_rate action: new_bucket_maximum_capacity|new_bucket_refill_rate region_2 request rate increases: action: new_bucket_maximum_capacity action: new_bucket_refill_rate action: new_bucket_maximum_capacity|new_bucket_refill_rate region_2 resource rate increases: action: new_bucket_maximum_capacity action: new_bucket_refill_rate action: new_bucket_maximum_capacity|new_bucket_refill_rate
  9. Scegli Passaggio successivo: risolvi ora o contattaci.

  10. Nella scheda Contattaci, scegli la lingua e il metodo di contatto che preferisci.

  11. Seleziona Invia.