¿Cómo puedo evitar que se limiten mis llamadas a la API de Auto Scaling?

4 minutos de lectura
0

Mi aplicación recibe errores «Rate Exceeded» cuando llama a Amazon EC2 Auto Scaling, AWS Auto Scaling o AWS Application Auto Scaling.

Breve descripción

Las llamadas a la API no pueden superar la tasa máxima de solicitudes de la API permitida por cuenta y región de AWS. Esto incluye las llamadas a la API desde la Interfaz de la línea de comandos de AWS (AWS CLI) y desde la Consola de administración de AWS. Si las solicitudes a la API superan la tasa máxima, se mostrará el mensaje de error «Rate Exceeded» y se limitarán las llamadas adicionales a la API.

Amazon EC2 Auto Scaling, AWS Auto Scaling y AWS Application Auto Scaling tienen sus propios buckets de limitación de la API. Esto significa que todas las llamadas a la API de Amazon EC2 Auto Scaling tienen un único límite de API compartido. Las llamadas a la API de Amazon EC2 Auto Scaling no afectan al límite de las API de AWS Application Auto Scaling.

Para evitar el error «Rate Exceeded» y las limitaciones, compruebe si su aplicación solo realiza las llamadas necesarias.

Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Solución

Comprobación del uso actual de la API de Auto Scaling

Para comprobar el uso actual de la API de Auto Scaling, supervise las estadísticas de uso de AWS en sus métricas de Amazon CloudWatch para el servicio EC2 Auto Scaling. Use las métricas para supervisar las API de Auto Scaling a las que se llama e identificar los momentos en los que se produce un gran número de llamadas a la API o errores «Rate Exceeded». A continuación, utilice esta información para optimizar y reducir el uso de la API.

Validación de las llamadas «describe»

El exceso de llamadas de descripción contribuye al total de solicitudes de API en comparación con la tasa de solicitudes permitida. Compruebe si todas las llamadas de descripción de la aplicación son necesarias y, si es posible, utilice otras soluciones. Por ejemplo, utilice notificaciones push desde Amazon EventBridge para enviar notificaciones cuando las instancias cambien de estado, como cuando inician un enlace de ciclo de vida.

Las aplicaciones que comprueban el estado del ciclo de vida de la instancia no realizan una llamada de descripción. En su lugar, estas aplicaciones consultan los metadatos de la instancia. Obtenga la información de las etiquetas, incluido el nombre del grupo de escalamiento automático, de los metadatos de la instancia. Debe usar la plantilla de iniciación para activar la información de las etiquetas para la instancia.

Comprobación de las llamadas desde aplicaciones de terceros

Las aplicaciones de terceros pueden realizar llamadas continuas a Auto Scaling en AWS. Revise sus aplicaciones de terceros para ver si hay llamadas innecesarias y actualice la configuración de las aplicaciones de terceros.

Implementación de reintentos en caso de error y retrocesos exponenciales

Los reintentos en caso de error y los retrocesos exponenciales pueden ayudar a limitar la tasa de llamadas a la API. Cada AWS SDK implementa una lógica de reintento automático y algoritmos de retroceso exponencial. Para obtener más información, consulte Retry behavior.

Cómo evitar las ampliaciones de la actividad

Evite situaciones que provoquen ampliaciones de las llamadas a la API. Por ejemplo, cuando inicie instancias en un grupo de Amazon EC2 Auto Scaling, no configure las instancias de modo que activen la protección contra el desescalamiento horizontal. Active la opción de forma predeterminada para el grupo de escalamiento automático de modo que todas las instancias tengan protección.

Solicitud de un aumento de la cuota de servicio

Para obtener un aumento de la cuota de servicio, solicite un aumento desde la consola de Support Center. En la sección Aumento del límite de servicio, siga estos pasos:

  1. En Tipo de límite, seleccione Auto Scaling.
  2. En Servicio de Auto Scaling, elija Auto Scaling de EC2.
  3. En Límite, elija Limitación de API.
  4. En Nuevo valor de límite, elija N/D.

Incluya la siguiente información en la solicitud:

  • La validación de la tasa de llamadas a la API y la implementación de métodos de reintento por error o retroceso exponencial
  • La región y el periodo de tiempo relacionados con los problemas de limitación
  • El flujo de trabajo completo de las API de AutoScaling
  • El momento en el que espera que se produzca el pico de uso de la API, por ejemplo, durante una implementación

Para obtener más información, consulte ¿Cómo administro mis cuotas de servicio de AWS?

Información relacionada

Exponential backoff and jitter

AWS service quotas

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año