Veo un aumento de la latencia en las respuestas de Amazon CloudFront. Quiero identificar la causa y reducir la latencia.
Descripción corta
Para solucionar problemas de latencia de CloudFront, identifica los eventos que provocaron la latencia. A continuación, sigue estos pasos de solución de problemas para reducir la latencia.
Resolución
Identificación de los eventos que causan latencia
Sigue estos pasos:
- Ejecuta el siguiente comando curl:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com
Nota: Sustituye ejemplo.com por tu nombre de dominio de CloudFront o un nombre de dominio (CNAME) y una ruta URL alternativos.
- Comprueba cuánto dura cada etapa de una solicitud de red en las herramientas de desarrollador de tu navegador web. Por ejemplo, si utilizas Mozilla Firefox, comprueba la pestaña Tiempos. Para obtener más información, consulta la pestaña Tiempos del sitio web de Firefox. Si ha observado latencia en el pasado, comprueba los campos time-taken y time-to-first-byte en los registros de acceso a CloudFront. Los registros de acceso a CloudFront no registran el tiempo que tarda el cliente en el proceso de búsqueda de DNS ni en las negociaciones de TCP y SSL/TLS.
Reducción de la latencia en la resolución de DNS
Sigue estos pasos:
- Aumenta el tiempo de almacenamiento en caché de DNS en el DNS del lado del cliente.
- Aumenta el tiempo de vida (TTL) de la caché en el servidor DNS local.
- Aumenta el TTL en el registro de DNS de tu registrador de DNS.
- Si el servidor DNS del solucionador de tu proveedor de servicios de Internet provoca latencia, utiliza servidores DNS públicos.
Reducción de la latencia en el tiempo de negociación de TCP y SSL/TLS
Sigue estos pasos:
Nota: Sustituye ejemplo.com por tu nombre de dominio.
Reducción de la latencia en TTFB, TTL y RTT
Sigue estos pasos para reducir la latencia en el tiempo empleado para el primer byte (TTFB), el tiempo total empleado (TTL) y el tiempo de ida y vuelta (RTT).
CloudFront devuelve un valor de respuesta «X-Cache: Hit from cloudfront»
CloudFront muestra «X-Cache:Hit from cloudfront» cuando las solicitudes provienen de la ubicación periférica más cercana. Para reducir la latencia, sigue estos pasos:
CloudFront devuelve un valor de respuesta «X-Cache: Miss from cloudfront»
CloudFront muestra "X-Cache:Miss from cloudfront" cuando la solicitud va al origen. Para reducir la latencia, sigue estos pasos:
- Reduce el RTT entre la ubicación periférica de CloudFront y tu ubicación de origen. Si una solicitud de una ubicación periférica de CloudFront va a la ubicación de origen más cercana, el RTT es menor. Sin embargo, el TTFB se ve afectado si la solicitud proviene de una ubicación periférica geográficamente distante del origen. Para optimizar el RTT, replica el servidor de origen en varias regiones de AWS que estén geográficamente más cerca de tus usuarios. Luego, configura el DNS del nombre de dominio de origen para que dirija la solicitud a los servidores de origen en función de la latencia o la geolocalización. Si utilizas Amazon Route 53 como proveedor de DNS, consulta Elección de una política de enrutamiento para obtener más información.
- Activa la compresión automática de CloudFront para comprimir los archivos y reducir la velocidad de descarga. Si el formato de archivo no es compatible con la compresión automática de CloudFront, comprime previamente ese archivo en tu origen y preséntalo con el encabezado Content-Encoding.
- Para comprobar la latencia desde el origen hasta CloudFront, activa la métrica de latencia de origen. Nota: Se aplican las tarifas estándar de CloudWatch.
- Activa CloudFront Origin Shield.
- Agrega políticas de encabezados de respuesta con la característica de encabezado Server-Timing activada. Esta característica puede ayudarte a comprender los eventos que contribuyen a la latencia entre CloudFront y el origen.
Información relacionada
¿Cómo puedo reducir la latencia de las respuestas lentas de CloudFront?
¿Qué información proporciono a AWS Support para diagnosticar los problemas de latencia de la distribución web de CloudFront?