Incrementar la proporción de solicitudes que se atienden directamente desde las cachés de CloudFront (tasa de aciertos de caché) - Amazon CloudFront

Incrementar la proporción de solicitudes que se atienden directamente desde las cachés de CloudFront (tasa de aciertos de caché)

Puede mejorar el rendimiento aumentando la proporción de las solicitudes de lector que se atienden directamente desde la caché de CloudFront en lugar de acceder a los servidores de origen para obtener contenido. Esto se conoce como mejora de la tasa de aciertos de caché.

En las secciones siguientes se explica cómo mejorar la tasa de aciertos de la caché.

Especificar cuánto tiempo CloudFront almacena en caché los objetos

Para incrementar la tasa de aciertos de caché, puede configurar su origen para agregar una directiva Cache-Control max-age a sus objetos y especificar el mayor valor práctico de max-age. Cuanto más corta sea la duración de la caché, más frecuentemente reenvía CloudFront las solicitudes al origen para determinar si un objeto ha cambiado y para obtener la versión más reciente. Puede complementar max-age con las directivas stale-while-revalidate y stale-if-error para mejorar aún más la proporción de aciertos de la caché en determinadas condiciones. Para obtener más información, consulte Administración de cuánto tiempo se mantiene el contenido en una caché (vencimiento).

Uso del escudo de origen

CloudFront Origin Shield puede contribuir a mejorar la tasa de aciertos de caché de la distribución de CloudFront, porque proporciona una capa adicional de almacenamiento en caché frente al origen. Cuando utiliza Origin Shield, todas las solicitudes de todas las capas de almacenamiento en caché de CloudFront en el origen provienen de una sola ubicación. CloudFront puede recuperar cada objeto mediante una sola solicitud de origen de Origin Shield y todas las demás capas de la caché de CloudFront (ubicaciones periférica y cachés regionales de borde) pueden recuperar el objeto desde Origin Shield.

Para obtener más información, consulte Uso de Amazon CloudFront Origin Shield.

Almacenamiento en caché en función de parámetros de cadenas de consulta

Si configura CloudFront para almacenar en caché en función de los parámetros de cadenas de consulta, puede mejorar el almacenamiento en la caché si hace lo siguiente:

  • Configure CloudFront para reenviar solo los parámetros de cadenas de consulta para los que el origen devolverá objetos únicos.

  • Utilice el mismo tipo de letra (mayúscula o minúscula) para todas las instancias del mismo parámetro. Por ejemplo, si una solicitud contiene parameter1=A y otra contiene parameter1=a, CloudFront reenvía solicitudes independientes al origen cuando una solicitud contiene parameter1=A y otra contiene parameter1=a. A continuación, CloudFront almacena en caché de forma independiente los objetos correspondientes devueltos por el origen por separado incluso si los objetos son idénticos. Si utiliza solo A o a, CloudFront reenvía menos solicitudes al origen.

  • Enumere los parámetros en el mismo orden. Al igual que con las diferencias de mayúsculas y minúsculas, si una solicitud de un objeto contiene la cadena de consulta parameter1=a&parameter2=b y otra solicitud del mismo objeto contiene parameter2=b&parameter1=a, CloudFront reenvía ambas solicitudes al origen y almacena en caché los objetos correspondientes de forma independiente aunque sean idénticos. Si ordena los parámetros siempre de la misma manera, CloudFront reenvía menos solicitudes al origen.

Para obtener más información, consulte Almacenamiento en caché de contenido en función de parámetros de cadenas de consulta. Si desea revisar las cadenas de consulta que CloudFront reenvía al origen, consulte los valores en la columna cs-uri-query de los archivos de registro de CloudFront. Para obtener más información, consulte Configuración y uso de registros estándar (registros de acceso).

Almacenamiento en caché en función de valores de cookies

Si configura CloudFront para almacenar en caché en función de los valores de las cookies, puede mejorar el almacenamiento en la caché si hace lo siguiente:

  • Configure CloudFront para reenviar solo las cookies especificadas en lugar de todas. Para las cookies que configura que CloudFront reenvíe al origen, CloudFront reenvía cada combinación de nombre y valor de las cookies. A continuación, almacena en caché por separado los objetos que devuelve su origen, incluso si todos son idénticos.

    Supongamos que los espectadores incluyen dos cookies en cada solicitud, que cada cookie tiene tres valores posibles y que todas las combinaciones de valores de cookie son posibles. CloudFront reenvía hasta seis solicitudes diferentes al origen para cada uno de los objetos. Si el origen devuelve distintas versiones de un objeto en función de solo una de las cookies, CloudFront reenvía más solicitudes al origen de lo necesario y almacena en caché varias versiones idénticas del objeto innecesariamente.

  • Cree diferentes comportamientos de la caché para contenido estático y dinámico y configure CloudFront para reenviar las cookies al origen solo para contenido dinámico.

    Por ejemplo, supongamos que tiene un comportamiento de la caché para la distribución y que utiliza la distribución para contenido dinámico, como archivos .js y para archivos .css que raramente cambian. CloudFront almacena en caché versiones independientes de los archivos .css en función de los valores de cookies, de modo que cada ubicación periférica de CloudFront reenvía una solicitud al origen por cada nuevo valor de cookie o por cada combinación de valores de cookies.

    Si crea un comportamiento de la caché cuyo patrón de ruta es *.css y para el que CloudFront no almacena en caché en función de los valores de las cookies, CloudFront reenviará las solicitudes de archivos .css al origen solo para la primera solicitud que reciba desde una ubicación periférica de un archivo .css determinado y para la primera solicitud después de que un archivo .css venza.

  • Si es posible, cree diferentes comportamientos de la caché para contenido dinámico cuyos valores de cookie sean exclusivos para cada usuario (como un ID de usuario) y para contenido dinámico que varíe en función de una cantidad más reducida de valores únicos.

Para obtener más información, consulte Almacenamiento en caché de contenido en función de cookies. Si desea revisar las cookies que CloudFront reenvía al origen, consulte los valores en la columna cs(Cookie) de los archivos de registro de CloudFront. Para obtener más información, consulte Configuración y uso de registros estándar (registros de acceso).

Almacenamiento en caché en función de encabezados de solicitud

Si configura CloudFront para almacenar en caché en función de encabezados de solicitud, puede mejorar el almacenamiento en la caché si hace lo siguiente:

  • Configure CloudFront para reenviar y almacenar en caché solo en función de encabezados especificados en lugar de reenviar y almacenar en caché en función de todos los encabezados. Para los encabezados que especifique, CloudFront reenvía todas las combinaciones de nombre y valor de encabezado. A continuación, almacena en caché por separado los objetos que devuelve su origen, incluso si todos son idénticos.

    nota

    CloudFront siempre reenvía al origen los encabezados especificados en los siguientes temas:

    Cuando configura CloudFront para almacenar en caché en función de encabezados de solicitud, no cambia los encabezados que reenvía CloudFront, solo si CloudFront almacena en caché objetos en función de los valores de encabezado.

  • Intente evitar el almacenamiento en caché en función de encabezados de solicitud con un gran número de valores únicos.

    Por ejemplo, si desea enviar diferentes tamaños de una imagen en función del dispositivo del usuario, no configura CloudFront para almacenar en caché en función del encabezado User-Agent, que tiene gran cantidad de valores posibles. En su lugar, configure CloudFront para almacenar en caché en función de los encabezados de tipo de dispositivo de CloudFront CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer, CloudFront-Is-SmartTV-Viewer y CloudFront-Is-Tablet-Viewer. Además, si va a devolver la misma versión de la imagen para tablets y equipos de escritorio, reenvíe solo el encabezado CloudFront-Is-Tablet-Viewer, no el CloudFront-Is-Desktop-Viewer.

Para obtener más información, consulte Almacenamiento en caché de contenido en función de encabezados de solicitud.

Eliminación del encabezado Accept-Encoding cuando no sea necesario comprimir

Si la compresión no está habilitada, porque el origen no la admite, CloudFront no la admite o el contenido no es compresible, puede aumentar la tasa de aciertos de caché asociando un comportamiento de caché en la distribución con un origen que establezca Custom Origin Header como se muestra a continuación:

  • Nombre del encabezado: Accept-Encoding

  • Valor de encabezado: (mantener en blanco)

Cuando utiliza esta configuración, CloudFront elimina el encabezado Accept-Encoding de la clave de caché y no incluye el encabezado en las solicitudes de origen. Esta configuración se aplica a todo el contenido que CloudFront sirve con la distribución desde ese origen.

Ofrecer contenido multimedia a través de HTTP

Para obtener más información acerca de cómo optimizar el contenido de vídeo bajo demanda (VOD) y en streaming, consulte Video bajo demanda y streaming de video en directo con CloudFront.