¿Cómo puedo resolver los errores de limitación de la API o de «velocidad superada» en Elastic Beanstalk?

5 minutos de lectura
0

¿Cómo puedo resolver los errores de limitación de la API o de «velocidad superada» cuando utilizo AWS Elastic Beanstalk?

Descripción breve

Las llamadas a la API a ningún servicio de AWS no pueden superar la velocidad máxima permitida de solicitudes de API por segundo. El límite se comparte entre todos los recursos por cuenta y por región de AWS.

No importa si las llamadas provienen de una aplicación, de la interfaz de línea de comandos de AWS (AWS CLI) o de la consola de administración de AWS. Si las solicitudes a la API superan la velocidad máxima por segundo, aparecerá el mensaje de error «Velocidad superada» y, a continuación, se restringirán las llamadas a la API. Algunas llamadas a la API se pueden realizar docenas de veces por segundo, mientras que otras están limitadas a unas pocas llamadas permitidas por segundo.

Nota: Si recibe errores al ejecutar los comandos de la CLI de AWS, asegúrese de utilizar la versión más reciente de la CLI de AWS.

Puede recibir errores de las llamadas a la API que se realizan directamente a Elastic Beanstalk, así como de otros servicios de AWS gestionados por Elastic Beanstalk, como AWS CloudFormation, Amazon Elastic Compute Cloud (Amazon EC2), Auto Scaling y Load Balancing. El riesgo de que se produzcan restricciones aumenta a medida que aumenta el uso de la cuenta o a medida que se añaden más recursos a la misma cuenta.

**Nota:**El límite de llamadas puede variar según la hora del día, ya que nuestros servicios se ajustan en respuesta a la carga. Se recomienda ajustar dinámicamente la tasa de uso de la API para ajustarse al comportamiento de los límites dinámicos.

Resolución

Para evitar o resolver los errores de «velocidad superada» y las restricciones, pruebe estas soluciones:

Encuentra el origen de las llamadas a la API con alto contenido

1.En su flujo de eventos de Elastic Beanstalk, identifique el error de limitación. Tenga en cuenta el período en el que recibió el error. O bien, si las llamadas a la API provienen de una aplicación o un script, busque el período de tiempo en los registros de la aplicación.

2.Para las solicitudes que haya encontrado en el período de tiempo con errores RequestLimitExceeded, utilice AWS CloudTrail para ver los eventos y validar eventName, eventSource (el servicio) y userAge. Haga coincidir la marca de tiempo del error en los eventos de Elastic Beanstalk o en sus registros con los errores encontrados en CloudTrail. Esto te ayudará a saber qué fuente de tu cuenta consume la mayor cantidad de llamadas a la API.

Nota: Contar manualmente los registros de CloudTrail puede resultar difícil. También puede utilizar las consultas de Athena a través de CloudTrail.

Las métricas de uso de Amazon CloudWatch pueden ayudarle a supervisar el uso de la API a lo largo del tiempo. Tenga en cuenta que, por el momento, no todos los servicios y las llamadas a la API son compatibles con las métricas de uso.

Las aplicaciones de terceros pueden realizar llamadas continuas a Elastic Beanstalk u otros servicios de AWS gestionados por Elastic Beanstalk. Si concede a una aplicación de terceros el derecho a realizar llamadas a la API en tu cuenta, asegúrese de supervisarlas también.

Utilice las mejores prácticas para reducir el uso de la API

Utilice los reintentos con errores, los retrocesos exponenciales y la fluctuación para ayudar a limitar la tasa de llamadas a la API. Si bien cada AWS SDK implementa una lógica de reintento automático y algoritmos de retroceso exponencial, es posible que tenga que ajustar la configuración del SDK para que se ajuste a sus necesidades si la lógica de reintento predeterminada no es suficiente.

Nota: La configuración del SDK es solo una parte a tener en cuenta. Su propio código también debe utilizar la lógica de retroceso, reintento y fluctuación al llamar al SDK.

Si tiene un script personalizado que realiza llamadas a la API cada segundo, considere si es necesario. Para casos de uso avanzados, considere la posibilidad de crear una capa de almacenamiento en caché para reducir el consumo de API. También puede considerar una estrategia de cuentas múltiples. Se recomienda evitar que una sola cuenta de AWS crezca demasiado. Separar los recursos de desarrollo o pruebas de los recursos de producción puede evitar que los recursos de desarrollo eliminen el uso de la API de los recursos de producción.

Solicite un aumento del límite de velocidad de llamadas de su API

Si es necesario, puede solicitar un aumento del límite de velocidad de llamadas a la API. Estos límites son más difíciles de aumentar que los límites típicos basados en recursos y requieren una justificación sólida en función de los casos de uso. Nuestros equipos revisarán sus API y se asegurarán de que se sigan las mejores prácticas. Las solicitudes deben hacerse con suficiente antelación a cualquier necesidad.

Cuando solicite un aumento, incluya la siguiente información:

  • Su región de AWS y el plazo relacionado con los problemas de limitación
  • La llamada a la API que usa y la velocidad de llamadas que necesita
  • Una justificación detallada del caso de uso, como la necesidad empresarial y la necesidad técnica del aumento

Asegúrese de intentar utilizar retiros de errores, retrocesos exponenciales y fluctuaciones antes de enviar la solicitud. Incluya los resultados de estos intentos en la solicitud y cualquier información relacionada con los intentos.


Información relacionada

Reintentos de error y retraso exponencial en AWS

Retroceso exponencial y fluctuación

Registro de llamadas a la API de Elastic Beanstalk con AWS CloudTrail

Métricas de uso de CloudWatch

Ventajas de usar varias cuentas de AWS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años