¿Cómo puedo solucionar los problemas de latencia del punto de conexión de mi API de API Gateway optimizada en la periferia?

6 minutos de lectura
0

Veo una latencia más alta cuando los clientes envían solicitudes a mi API optimizada en la periferia en Amazon API Gateway. ¿Cómo puedo encontrar el origen de la latencia para solucionar problemas?

Descripción breve

Para encontrar el origen de la latencia de un punto de conexión de la API optimizado en la periferia, determine cuánto tarda cada una de las siguientes partes de la ruta de conexión:

Importante: Estos pasos de la ruta de conexión se aplican solo a los puntos de conexión de la API optimizados en la periferia, y no a los puntos de conexión de la API regional. Se accede a las API optimizadas en la periferia a través de una distribución de Amazon CloudFront. No se accede a los puntos de conexión de la API regional a través de CloudFront.

  1. Inicio de la conexión a la resolución de nombres DNS
  2. Inicio de la conexión al protocolo de enlace de Transmission Control Protocol (TCP) para conectarse a CloudFront
  3. Inicio de la conexión al protocolo de enlace de Secure Sockets Layer (SSL) para conectarse a CloudFront
  4. Inicio de la conexión para enviar la solicitud HTTP del cliente a CloudFront
  5. Inicio de la conexión al primer byte transferido desde CloudFront
  6. Tiempo total de solicitud y respuesta a la API
  7. Tiempo en el que API Gateway procesa la solicitud y responde a la ubicación periférica de CloudFront
  8. Tiempo en el que el punto de conexión de integración responde a la solicitud HTTP de API Gateway
  9. Tiempo en el que API Gateway responde a la ubicación periférica de CloudFront y en el que CloudFront responde al cliente

Las partes de la ruta de conexión que tardan más tiempo son el origen de la latencia.

Nota: Puede utilizar AWS X-Ray para rastrear y analizar las solicitudes de los usuarios a medida que viajan a través de sus API REST de Amazon API Gateway hasta servicios subyacentes. API Gateway admite el rastreo de X-Ray para todos los tipos de puntos de conexión de la API REST de API Gateway en las regiones de AWS donde X-Ray está disponible. Para ver todas las regiones en las que X-Ray está disponible, consulte la tabla de regiones de AWS.

Resolución

Ejecutar el script Bash curl_for_latency

Para determinar la duración de los pasos 1 a 6 del proceso de ruta de conexión de su API, ejecute el script Bash curl_for_latency en GitHub.

Importante: Asegúrese de reemplazar la URL, el método HTTP, y los valores de los parámetros para que coincidan con la información de su API.

El script devuelve el período de tiempo que tarda su API en completar los siguientes pasos de la ruta de conexión:

  1. Inicio de la conexión a la resolución de nombres DNS («time_namelookup»)
  2. Inicio de la conexión al protocolo de enlace de TCP para conectarse a CloudFront («time_connect»)
  3. Inicio de la conexión al protocolo de enlace de SSL para conectarse a CloudFront («time_appconnect»)
  4. Inicio de la conexión para enviar la solicitud HTTP del cliente a CloudFront («time_pretransfer»)
  5. Inicio de la conexión al primer byte transferido desde CloudFront («time_starttransfer»)
  6. Tiempo total de solicitud y respuesta a la API («time_total»)

Tras identificar los eventos que contribuyen a la latencia, consulte ¿Cómo puedo solucionar problemas y reducir el aumento de la latencia de CloudFront?

Verificar cuánto tiempo tarda API Gateway en procesar la solicitud y responder a la ubicación periférica de CloudFront

Revise la métrica de latencia de su API en la consola de CloudWatch. A continuación, configure los ajustes del gráfico de métricas de latencia para un intervalo de 1 minuto y máximo para ver el tiempo de procesamiento más largo dentro de un período de tiempo de un minuto.

Para obtener instrucciones, consulte Ver las métricas de API Gateway en la consola de CloudWatch.

Verifique cuánto tiempo tarda el punto de conexión de integración en responder a la solicitud HTTP de API Gateway

Revise la métrica de latencia de integración en la consola de CloudWatch. A continuación, configure los ajustes del gráfico de latencia de integración para un intervalo de 1 minuto y máximo para ver el tiempo de procesamiento más largo dentro de un período de tiempo de un minuto.

-o-

Si tiene activado el registro de CloudWatch para su API, revise los registros de una partida similar a la siguiente:

Received response. Integration latency: 325 ms

También puede añadir $context variables con registro de acceso para solucionar problemas de latencia adicionales.

Para obtener instrucciones, consulte ¿Cómo activo los registros de CloudWatch para solucionar problemas con mi API REST de API Gateway o API de WebSocket?

Solicitudes de API Gateway integradas con Lambda

Si utiliza AWS Lambda con API Gateway y observa una métrica de latencia de integración alta, consulte sus registros de CloudWatch de la función de Lambda. Se debe abordar una alta latencia alta cuando un punto de conexión de la API que está integrado con una función de Lambda tarda demasiado en enviar respuestas a un cliente. Los arranques en frío en las funciones de Lambda no se registran en la métrica de duraciones de la función, por lo que la latencia de integración de su API puede ser superior a la duración de la función. Para ver la duración de su función con un arranque en frío, utilice AWS X-Ray.

Para obtener más información, consulte ¿Cómo soluciono los problemas de latencia alta en mis solicitudes de API Gateway que están integradas con Lambda?

Comprobar cuánto tarda API Gateway en responder a la ubicación periférica de CloudFront y cuánto tarda CloudFront en responder al cliente

Tome el tiempo total de la solicitud y la respuesta a la API («time_total» y), a continuación, reste lo siguiente:

  • Inicio de la conexión para enviar la solicitud HTTP del cliente a CloudFront («time_pretransfer»)
  • Tiempo en el que API Gateway procesa la solicitud y responde a la ubicación periférica de CloudFront (la métrica de latencia de su API)

El resultado es el tiempo que tarda API Gateway en responder a la ubicación periférica de CloudFront y en el que CloudFront responde al cliente.


Información relacionada

Trabajar con métricas para las API HTTP

Dimensiones y métricas de Amazon API Gateway

Supervisión de la ejecución de la API de WebSocket con métricas de CloudWatch

¿Cómo puedo utilizar los registros de Amazon API Gateway para solucionar problemas?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año