Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Limitación de solicitudes para la API de Amazon EC2
Amazon EC2 limita las solicitudes EC2 de API para cada AWS cuenta por región. Hacemos esto para mejorar el rendimiento del servicio y garantizar un uso justo para todos los EC2 clientes de Amazon. La limitación garantiza que las solicitudes a la EC2 API de Amazon no superen los límites máximos de solicitudes de API permitidos. Las solicitudes de API están sujetas a los límites de solicitudes independientemente de si se originan en:
-
Una aplicación de terceros
-
Una herramienta de línea de comandos
-
La EC2 consola Amazon
Si superas el límite de regulación de la API, aparecerá el código de RequestLimitExceeded
error.
Contenido
Cómo se aplica la limitación
Amazon EC2 utiliza el algoritmo de depósito de fichas
Amazon EC2 implementa dos tipos de limitación de API:
Tipos de limitación de API
Limitación de velocidad de solicitudes
Con la limitación de la tasa de solicitudes, cada API se evalúa de forma individual y se limita el número de solicitudes que se realizan por API. Cada solicitud que realices elimina un token del depósito de la API. Por ejemplo, el tamaño del depósito de fichas para DescribeHosts
una acción de API no mutante es de 100 fichas. Puedes realizar hasta 100 DescribeHosts
solicitudes en un segundo. Si superas las 100 solicitudes en un segundo, se limitará el acceso a esa API y las solicitudes restantes dentro de ese segundo fallarán. Sin embargo, las solicitudes de otras API no se verán afectadas.
Los buckets se recargan automáticamente a una tasa fija. Si el bucket está por debajo de la capacidad máxima, se vuelve a agregar un número determinado de tokens cada segundo hasta que alcanza la capacidad máxima. Si el depósito está lleno cuando llegan las fichas de recarga, se descartan. El bucket no puede contener más del número máximo de tokens. Por ejemplo, el tamaño del depósito para DescribeHosts
una acción de API no mutante es de 100 fichas y la tasa de recarga es de 20 fichas por segundo. Si realizas 100 DescribeHosts
solicitudes en un segundo, el depósito se reduce a cero (0) fichas. A continuación, la cubeta se rellena con 20 fichas por segundo, hasta que alcance su capacidad máxima de 100 fichas. Esto significa que una cubeta vacía alcanza su capacidad máxima después de 5 segundos si no se realiza ninguna solicitud durante ese tiempo.
No es necesario esperar a que el depósito esté completamente lleno para poder realizar solicitudes a la API. Puedes usar los tokens de recarga a medida que se vayan añadiendo al depósito. Si utiliza inmediatamente los tokens de relleno, el bucket no alcanza la capacidad máxima. Por ejemplo, el tamaño del depósito para DescribeHosts
una acción de API no mutante es de 100 fichas y la tasa de recarga es de 20 fichas por segundo. Si agotas el depósito realizando 100 solicitudes de API en un segundo, puedes seguir realizando 20 solicitudes de API por segundo utilizando los tokens de recarga a medida que se van añadiendo al depósito. El depósito solo se puede rellenar hasta su capacidad máxima si realizas menos de 20 solicitudes de API por segundo.
Para obtener más información, consulte Solicita los tamaños de los depósitos de fichas y las tasas de recarga.
Límite de velocidad de recursos
Algunas acciones de la API, como RunInstances
yTerminateInstances
, tal como se describe en la tabla siguiente, utilizan la limitación de la tasa de recursos además de la limitación de la tasa de solicitudes. Estas acciones de la API tienen un depósito de fichas de recursos independiente que se agota en función de la cantidad de recursos a los que afecta la solicitud. Al igual que los grupos de fichas de solicitud, los grupos de fichas de recursos tienen un máximo que te permite rebasar y una tasa de recarga que te permite mantener un ritmo constante de solicitudes durante el tiempo que sea necesario. Si superas un límite de cupos específico para una API, por ejemplo, cuando un depósito aún no se ha rellenado para admitir la siguiente solicitud de API, la acción de la API queda limitada aunque no hayas alcanzado el límite máximo total de la API.
Por ejemplo, el tamaño del depósito de fichas de recursos RunInstances
es de 1000 fichas y la tasa de recarga es de dos fichas por segundo. Por lo tanto, puede lanzar 1000 instancias de forma inmediata mediante cualquier número de solicitudes de API, como una solicitud para 1000 instancias o cuatro solicitudes para 250 instancias. Cuando el depósito de fichas de recursos esté vacío, puedes lanzar hasta dos instancias por segundo, utilizando una solicitud para dos instancias o dos solicitudes para una instancia.
Para obtener más información, consulte Tamaños de los cubos de fichas de recursos y tasas de recarga.
Solicita los tamaños de los depósitos de fichas y las tasas de recarga
Para limitar la tasa de solicitudes, las acciones de la API se agrupan en las siguientes categorías:
-
Acciones no mutantes: acciones de la API que recuperan datos sobre los recursos. Esta categoría generalmente incluye todas las acciones
Describe*
List*
Search*
,, y deGet*
API, comoDescribeRouteTables
SearchTransitGatewayRoutes
, y.GetIpamPoolCidrs
Estas acciones de API suelen tener los límites de limitación de API más altos. -
Acciones no mutantes ni filtradas ni paginadas: un subconjunto específico de acciones de la API que no mutan y que, cuando se solicitan sin especificar la paginación ni un filtro, utilizan fichas de un grupo de fichas más pequeño. Se recomienda utilizar la paginación y el filtrado para que los tokens se deduzcan del grupo de fichas estándar (más grande).
-
Acciones mutantes: acciones de la API que crean, modifican o eliminan recursos. Por lo general, esta categoría incluye todas las acciones de la API que no están clasificadas como acciones no mutantes, como
AllocateHosts
, yModifyHosts
.CreateCapacityReservation
Estas acciones tienen un límite de regulación inferior al de las acciones de API que no mutan. -
Acciones que consumen muchos recursos: mutar las acciones de la API que requieren más tiempo y consumen más recursos. Estas acciones tienen un límite de limitación aún más bajo que las acciones mutantes. Se limitan por separado de otras acciones mutantes.
-
Acciones no mutantes de la consola: acciones de la API no mutantes que se solicitan desde la consola de Amazon. EC2 Estas acciones de la API se limitan de forma independiente de otras acciones de la API que no mutan.
-
Acciones sin categoría: se trata de acciones de la API que reciben sus propios tamaños de bloques de fichas y porcentajes de recarga, aunque, por definición, encajan en alguna de las otras categorías.
Categoría de acción de la API | Acciones | Capacidad máxima del bucket | Tasa de recarga de cubos |
---|---|---|---|
Acciones no mutantes |
Las acciones |
100 | 20 |
Acciones no mutantes, sin filtrar ni paginar. |
|
50 | 10 |
Acciones mutantes | Todas las acciones de la API mutantes que no consuman muchos recursos ni sean acciones no categorizadas. |
50 | 5 |
Acciones que consumen muchos recursos |
|
50 | 5 |
Acciones de consola que no mutan |
Las acciones |
100 | 10 |
Acciones sin categoría | Capacidad máxima del bucket | Tasa de recarga de cubos |
---|---|---|
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 |
Tamaños de los cubos de fichas de recursos y tasas de recarga
En la siguiente tabla, se muestran los tamaños de los depósitos de tokens de recursos y las tasas de recarga para las acciones de la API que utilizan la limitación de la tasa de recursos.
Acción de la API | Capacidad máxima del bucket | Tasa de recarga de baldes |
---|---|---|
RunInstances |
1 000 | 2 |
TerminateInstances |
1 000 | 20 |
StartInstances |
1 000 | 2 |
StopInstances |
1 000 | 20 |
Supervise la regulación de las API
Puedes usar Amazon CloudWatch para supervisar tus solicitudes de EC2 API de Amazon y recopilar y realizar un seguimiento de las métricas relacionadas con la limitación de las API. También puedes crear una alarma que te avise cuando estés a punto de alcanzar los límites de limitación de las API. Para obtener más información, consulte Supervisa las solicitudes EC2 de API de Amazon con Amazon CloudWatch.
Reintentos y retrocesos exponenciales
Es posible que tu aplicación deba volver a intentar una solicitud de API. Por ejemplo:
-
Para comprobar si hay alguna actualización en el estado de un recurso
-
Para enumerar una gran cantidad de recursos (por ejemplo, todos los volúmenes)
-
Para volver a intentar una solicitud después de que se haya producido un error de servidor (5xx) o un error de limitación
Sin embargo, en el caso de un error del cliente (4xx), debes revisar la solicitud para corregir el problema antes de volver a intentarlo.
Cambios en el estado de los recursos
Antes de empezar a sondear para comprobar si hay actualizaciones de estado, espere a que la solicitud se complete potencialmente. Por ejemplo, espera unos minutos antes de comprobar si la instancia está activa. Cuando empieces a sondear, utiliza un intervalo de espera adecuado entre las solicitudes sucesivas para reducir la tasa de solicitudes a la API. Para obtener resultados óptimos, utilice un intervalo de suspensión creciente o variable.
Como alternativa, puedes usar Amazon EventBridge para que te notifique el estado de algunos recursos. Por ejemplo, puedes usar el evento de notificación de cambio de estado de la EC2 instancia para notificarte un cambio de estado en una instancia. Para obtener más información, consulta Automatizar el EC2 uso de Amazon EventBridge.
Reintentos
Cuando necesites sondear o volver a intentar una solicitud de API, te recomendamos que utilices un algoritmo de retroceso exponencial para calcular el intervalo de espera entre las solicitudes de API. El retardo exponencial se basa en la idea de utilizar tiempos de espera progresivamente más largos entre reintentos para las respuestas a errores consecutivos. Debe implementar un intervalo de retraso máximo, así como un número máximo de intentos. También puedes usar la fluctuación (retardo aleatorio) para evitar colisiones sucesivas. Para obtener más información, consulte Tiempos de espera, reintentos y retardo con fluctuación
Cada AWS SDK implementa una lógica de reintento automático. Para obtener más información, consulte el comportamiento de los reintentos en la Guía de referencia de herramientas AWS SDKs y herramientas.
Solicitar un aumento de límite de
Puede solicitar un aumento de los límites de limitación de la API para su. Cuenta de AWS
Recomendaciones
-
Solicita como máximo tres veces tu límite actual en una sola solicitud.
-
Priorice el aumento de las tasas de recarga de los cubos antes de aumentar la capacidad máxima del balde.
-
Si la tasa de recarga de la cubeta solicitada supera la capacidad máxima de la cubeta, aumente la capacidad máxima de la cubeta al mismo tiempo.
-
Proporcione todas las acciones de la API que requieran un aumento. Los límites se aplican a las acciones de la API individuales, no a las categorías de acciones de la API.
Para solicitar acceso a esta función
-
AWS Support Centro
abierto. -
Elija Crear caso.
-
Elija Cuenta y facturación.
-
Para el servicio, selecciona Información general y Cómo empezar.
-
En Categoría, selecciona Uso AWS y servicios.
-
Elija Siguiente paso: información adicional.
-
En Subject (Asunto), escriba
Request an increase in my Amazon EC2 API throttling limits
. -
En Descripción, copia la siguiente plantilla y proporciona la información requerida.
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
increases:action
:new_bucket_maximum_capacity
action
:new_bucket_refill_rate
action
:new_bucket_maximum_capacity
|new_bucket_refill_rate
region_2
increases:action
:new_bucket_maximum_capacity
action
:new_bucket_refill_rate
action
:new_bucket_maximum_capacity
|new_bucket_refill_rate
-
Elija Siguiente paso: Resuelva ahora o póngase en contacto con nosotros.
-
En la pestaña Comuníquese con nosotros, elija el idioma y el método de contacto que prefiera.
-
Elija Enviar.