Información general

Las cargas de trabajo, como las API dinámicas o las páginas web muy personalizadas, son poco o nada almacenables en caché. Sin embargo, se benefician de la seguridad y aceleración que proporcionan los servicios de periferia de AWS, como CloudFront y Global Accelerator. Los servicios de periferia de AWS operan a través de cientos de puntos de presencia (PoP) distribuidos por todo el mundo a una distancia media de 20 a 30 milisegundos de los usuarios. El tráfico hacia el origen se devuelve a través de la red global de AWS en lugar de ir por la Internet pública. La infraestructura global de AWS es una infraestructura privada, personalizada, de alta disponibilidad y con baja latencia que se basa en una red de fibra metropolitana global y totalmente redundante que está conectada mediante cables terrestres y transoceánicos por todo el mundo.

Aceleración dinámica con CloudFront

Además de terminar la conexión TCP/TLS más cerca de los usuarios, CloudFront acelera el contenido dinámico de la siguiente manera:

  • Servicio de contenido a través de protocolos de Internet modernos como QUIC o TLS1.3, incluso si el origen no lo admite.
  • Persistencia de las conexiones con el origen. A veces, la solicitud debe reenviarse al origen, como cuando el contenido no está presente en la caché local o cuando es meramente dinámico, como las API. Las solicitudes reenviadas a través de conexiones persistentes desde PoP no necesitan establecer una nueva conexión TCP/TLS al origen, lo que elimina la latencia de múltiples viajes de ida y vuelta, y mantiene las ventanas TCP escaladas. Para mejorar aún más la reutilización de conexiones, aumente el tiempo de espera de TCP Keep-alive en el origen y en la configuración de CloudFront y, posiblemente, habilite Origin Shield. Además, la menor tasa de establecimiento de conexiones en el origen reduce su costo en términos de escalado. Más en particular para los orígenes basados en EC2 y ALB, se traduce en menores cargos por transferencia de datos (DTO), ya que se reducirá la sobrecarga de DTO del envío de certificados TLS desde el origen. Tenga en cuenta que CloudFront no mide la sobrecarga de TLS en los cálculos de DTO. Puede mejorar la reutilización de la conexión en CloudFront si habilita Origin Shield.
    En los siguientes videos de testimonios, Tinder y Slack explican cómo CloudFront les ayuda a reducir significativamente el tiempo de respuesta de su API.

En los siguientes videos de testimonios, Tinder y Slack explican cómo CloudFront les ayuda a reducir significativamente el tiempo de respuesta de su API.

Slack habla sobre la aceleración segura de API con Amazon CloudFront
Optimizing for performance in CloudFront: Every millisecond counts!

Para obtener más información detallada sobre cómo CloudFront optimiza el tráfico dinámico HTTP, lea esta publicación del blog. Además, en esta publicación del blog se explica cómo utilizar un script de Python que permite comprender mejor cómo mejora CloudFront el rendimiento de las solicitudes dinámicas HTTP.

Para utilizar CloudFront como proxy inverso, debe configurar la política de almacenamiento en caché administrado deshabilitado en su distribución, en el comportamiento de almacenamiento en caché correspondiente. Esto indicará a CloudFront que reenvíe las solicitudes recibidas de PoP directamente a su origen. De forma predeterminada, si no configura explícitamente una política de solicitud de origen, CloudFront elimina las cookies, los parámetros de consulta y la mayoría de los encabezados antes de reenviar la solicitud a su origen. De manera excepcional, CloudFront envía el encabezado Host con el valor del nombre de dominio de su origen, agrega el encabezado X-Forwarded-For incrementado por la IP del solicitante y anula el encabezado User-Agent con el valor de Amazon CloudFront. Tenga en cuenta que, cuando CloudFront está configurado como proxy inverso, no comprime las respuestas mediante Gzip o Brotli.

Si necesita que determinados atributos de solicitud se reenvíen a CloudFront, debe configurarlo explícitamente en la política de solicitud de origen. Por ejemplo, para reenviar todos los atributos de solicitud recibidos por el usuario, puede configurar la política de solicitud de origen administrada de AllViewer. Tenga en cuenta que, cuando lo hace, CloudFront envía el encabezado Host tal y como lo recibe el usuario, en lugar de enviar el valor del nombre de dominio de su origen. Cuando su origen de API espera su nombre de dominio de origen en el encabezado Host, como con API Gateway, configure en su lugar la política de solicitud de origen administrada AllViewerExceptHostHeader.

Para enriquecer la solicitud reenviada con metadatos de CloudFront, como el país del usuario o información sobre su dispositivo, configure los encabezados de CloudFront relevantes en la Política de solicitud de origen. Para encabezados dinámicos personalizados, como True-Client-IP, utilice una función de CloudFront en el evento de solicitud del espectador para agregarlos en sentido ascendente.

Para probar la mejora del rendimiento del contenido dinámico con CloudFront, consulte este taller.

Aceleración dinámica con Global Accelerator

Global Accelerator dirige el tráfico del usuario al PoP más cercano mediante BGP Anycast. Desde allí, Global Accelerator lleva el tráfico de usuario a su origen a través de la red troncal de Amazon. Global Accelerator mejora aún más el rendimiento mediante las siguientes técnicas:

  • Compatibilidad con marcos Jumbo. Al habilitar marcos Jumbo entre la ubicación periférica de AWS y el punto de conexión de la aplicación en la región de AWS, Global Accelerator puede enviar y recibir hasta 6 veces más datos (carga útil) en cada paquete. La compatibilidad con marcos Jumbo reduce el tiempo total necesario para transmitir datos entre los usuarios y la aplicación.
  • Terminación TCP en la periferia. Al establecer una conexión TCP entre el cliente y el PoP de AWS más cercano al cliente, Global Accelerator reduce el tiempo de configuración inicial de TCP. Casi simultáneamente, se establece una segunda conexión TCP entre el PoP y el punto de conexión de la aplicación en la región de AWS.
  • Ventana lateral de recepción grande, búferes TCP y ventana de congestión. Para el tráfico con terminación TCP, Global Accelerator es capaz de recibir y almacenar en el búfer mayores cantidades de datos de su aplicación en un periodo de tiempo más corto mediante el ajuste de la ventana lateral de recepción y la configuración del búfer TCP en la infraestructura de periferia de AWS. Esto proporciona descargas más rápidas a los clientes, que ahora obtienen los datos en menos tiempo directamente desde la periferia de AWS. Al transmitir datos a través de la red global de AWS, Global Accelerator puede escalar verticalmente la ventana de congestión TCP para enviar mayores cantidades de datos de lo que normalmente es posible a través de la Internet pública.
Improve performance and availability with AWS Global Accelerator

Recursos

¿Le resultó útil esta página?