En esta página, se proporcionan recomendaciones para optimizar y acelerar la publicación de contenido con Cloud CDN. Las secciones se dividen en varias áreas clave.
Cloud CDN usa un balanceador de cargas de aplicaciones externo como el origen del contenido que se puede almacenar en caché. Un balanceador de cargas de aplicaciones externo puede entregar una combinación de contenido creado de forma estática y dinámica a los usuarios a través de una dirección IP global de los siguientes tipos de backends:
- Grupos de instancias
- Grupos de extremos de red (NEG) zonales
- NEG sin servidores: Uno o más recursos de App Engine, Cloud Run, o servicios de Cloud Run Functions
- NEG de Internet para backends externos
- Buckets en Cloud Storage
Debido a la integración continua con Google Cloud, tienes varias formas de implementar Cloud CDN y administrar contenido. Usa las prácticas recomendadas que se enumeran a continuación para planificar y definir mejor la implementación. Para obtener más información, consulta Configura Cloud CDN.
Optimiza la tasa de aciertos de caché
Las siguientes prácticas recomendadas ayudan a optimizar la tasa de aciertos de caché.
Almacena en caché el contenido estático
Como práctica recomendada para mejorar el rendimiento, cuando habilitas Cloud CDN, debes elegir el modo de almacenamiento en caché correcto para la aplicación.
El método más flexible y, por lo general, preferido para administrar las reglas de caché es el uso del encabezado de control de caché. Si no estás familiarizado con el uso de encabezados de control de caché de origen, la práctica recomendada es permitir que Cloud CDN almacene en caché el contenido estático de forma automática.
Para almacenar en caché de forma automática las respuestas estáticas del origen, puedes usar la configuración --cache-mode=CACHE_ALL_STATIC
(valor predeterminado). Esta configuración permite que Cloud CDN almacene en caché los tipos de contenido estático comunes cuando el origen no especifica ninguna directiva de almacenamiento en caché en los encabezados de respuesta. Asegúrate de que el contenido coincida con las categorías descritas anteriormente; de lo contrario, el contenido no se almacena en caché.
No almacenes en caché el contenido específico del usuario
En algunos casos, los navegadores pueden almacenar en caché contenido específico del usuario. No uses Cloud CDN para almacenar en caché contenido específico del usuario.
Usa claves de caché personalizadas para mejorar la tasa de aciertos de caché
Para el rendimiento y la escalabilidad, es importante optimizar la tasa de aciertos de caché. Según la configuración predeterminada, Cloud CDN usa la URL de solicitud completa para compilar la clave de caché. Para ayudar a optimizar la tasa de aciertos de caché, puedes usar las claves de caché personalizadas de modo que Cloud CDN no fragmente la caché de forma innecesaria.
Las claves de caché personalizadas te permiten omitir o incluir cualquier combinación de protocolo, host y string de consulta. A continuación, se muestran algunos ejemplos de cuándo puedes usar claves de caché personalizadas:
Tienes dos hosts que se resuelven en la misma dirección IP y van al mismo servicio. En este ejemplo, todo el sitio web es el mismo en ambos hosts. De forma predeterminada, Cloud CDN almacena en caché dos copias debido al diferente encabezado
Host:
en las solicitudes HTTP. Con una clave de caché personalizada, puedes hacer que Cloud CDN ignore la parte del host de la solicitud y comparta las entradas de la caché.En un ejemplo más específico, puedes tener dos sitios web en dominios diferentes que usen el mismo logotipo. El contenido del sitio web es diferente, pero puedes usar el mismo logotipo de la empresa en ambos dominios y tienes un servicio de backend dedicado que tiene contenido compartido. Cuando habilites Cloud CDN y personalices las claves de caché para el servicio de backend que contiene el logotipo, anula la selección de la casilla de verificación Host para que la caché ignore el dominio, pero almacene en caché el logotipo.
El logotipo debe almacenarse en caché, ya sea que se muestre a través de HTTP o HTTPS. Cuando personalices las claves de caché para el servicio de backend que contiene el logotipo, borra la selección de la casilla de verificación Protocolo para que las solicitudes a través de HTTP y HTTPS cuenten como coincidencias para la entrada de caché del logotipo.
Para aprender a personalizar las claves de caché, consulta Usa claves de caché.
Optimiza el rendimiento
Las siguientes prácticas recomendadas ayudan a optimizar el rendimiento.
Asegúrate de que la compatibilidad con el protocolo HTTP/3 y QUIC esté habilitada.
HTTP/3 es un protocolo de Internet de última generación. Se basa en QUIC, un protocolo desarrollado a partir del protocolo Google QUIC (gQUIC) original. HTTP/3 es compatible entre el balanceador de cargas HTTP(S) externo, Cloud CDN y los clientes.
Para aumentar el rendimiento con Cloud CDN, asegúrate de que HTTP/3 esté habilitado.
Usa el almacenamiento en caché negativo
El almacenamiento en caché negativo proporciona un control detallado sobre el almacenamiento en caché para errores o redireccionamientos comunes. Cuando Cloud CDN encuentra códigos de respuesta específicos, retiene esa respuesta en caché para un TTL configurado. Esto puede reducir la carga en los orígenes y mejorar la experiencia del usuario final mediante la reducción de la latencia de respuesta.
Optimiza la seguridad
Las siguientes prácticas recomendadas ayudan a optimizar la seguridad.
Usa Google Cloud Armor
Google Cloud Armor se integra en Cloud CDN para el contenido almacenado en caché y no almacenado en caché o con errores de caché. Una recomendación es usar Google Cloud Armor junto con Cloud CDN siempre que sea posible para aumentar la seguridad de las aplicaciones web.
Usa URL firmadas
Si usas URLs firmadas, ten en cuenta lo siguiente:
Mantén el contenido público y privado en buckets de Cloud Storage independientes.
Sigue las prácticas recomendadas de seguridad.
Autentica orígenes privados
La autenticación de origen ofrece una garantía sólida de que la solicitud proviene solo de tu propio servicio de backend configurado. También ofrece protección de datos en tránsito para la solicitud y protege contra la reutilización de la parte firmada del para cada solicitud.
Te recomendamos que uses la autenticación de origen privado para los buckets de Amazon S3 o los almacenes de objetos compatibles. La autenticación de origen privado ayuda a garantizar que solo las conexiones de confianza accedan al contenido de tus orígenes privados y que los usuarios no accedan a ellos directamente.
Además, si los firewalls de origen impiden el acceso al origen, usa la lista de entidades permitidas de IP para asegurarte de que una solicitud provenga de Cloud CDN o del balanceador de cargas de aplicaciones externo. Sin embargo, esto no impide que otros que los clientes intenten acceder a tu contenido especificando tu origen en su configuración.
Optimiza la caché
Las siguientes prácticas recomendadas ayudan a optimizar la caché.
Optimiza los TTL para el almacenamiento en caché
Puedes configurar o anular los TTL para ajustar por cuánto tiempo Cloud CDN almacenará en caché tus respuestas y cuándo Cloud CDN volverá a validarlas.
También puedes definir un TTL orientado al cliente para aprovechar al máximo las memorias caché del navegador.
Para obtener más información, consulta Usa la configuración y las anulaciones de TTL.
Establece el vencimiento del contenido urgente
Cada fragmento de contenido en una caché de Cloud CDN tiene un plazo de vencimiento asociado, y es importante establecer un vencimiento que sea adecuado para el caso de uso. Debido a que los servidores de origen deben reenviar el contenido que vence en los servidores de caché, debes elegir el vencimiento con cuidado.
Un método para elegir el vencimiento es clasificar el contenido según la frecuencia con la que lo actualizas, por ejemplo:
- Actualizaciones casi en tiempo real, como los feeds en vivo de eventos deportivos o el tráfico
- Actualizaciones frecuentes, como información meteorológica semanal, diaria o por hora, o imágenes de noticias de primera plana
- Actualizaciones poco frecuentes, como un logotipo de sitio web, CSS o archivos de JavaScript
A continuación, elige el vencimiento por categoría de contenido. Por ejemplo, un vencimiento de cinco segundos podría ser adecuado para las puntuaciones deportivas casi en tiempo real, y un vencimiento de una hora podría usarse para actualizaciones meteorológicas. Para el contenido almacenado en Cloud Storage, configura los plazos de vencimiento mediante los metadatos de Cache-Control
.
Cuando Compute Engine entrega el contenido, puedes controlar los plazos de vencimiento mediante la configuración del software del servidor web.
Los valores max-age
y s-maxage
especifican la hora de vencimiento en el encabezado de Cache-Control
. La especificación HTTP define este encabezado.
Por ejemplo, el siguiente encabezado de Cache-Control
hace que el contenido asociado pueda leerse de forma pública y pueda almacenarse en caché con un vencimiento de la caché de 72 horas (259,200 segundos):
Cache-Control: public, max-age=259200
Para maximizar el almacenamiento en caché, sigue los lineamientos de la Descripción general del almacenamiento en caché. Recuerda que los valores max-age
y s-maxage
del campo de metadatos de Cache-Control
funcionan juntos de las siguientes maneras:
- Los valores
max-age
ys-maxage
se miden en segundos. - El valor
s-maxage
solo se aplica a las memorias caché compartidas, no a las memorias caché del navegador. - El valor
max-age
se aplica a todas las memorias caché, a menos ques-maxage
lo anule.
En el caso del contenido que cambia con poca frecuencia o que debe cambiar junto con el contenido relacionado, a menudo resulta apropiado usar un plazo de vencimiento prolongado junto con las URL con versiones.
Usa URL con versiones para actualizar el contenido
El contenido del control de versiones entrega una versión diferente del mismo contenido. Para ello, lo quita de manera efectiva y muestra a los usuarios el contenido nuevo antes de que venza la entrada de la caché. Debido a que el control de versiones es gratuito, te recomendamos que uses el control de versiones como enfoque predeterminado para actualizar el contenido que puede almacenarse en caché.
Para establecer la versión del contenido, agrega un parámetro a la URL como un número de versión. Existen varias formas de incluir parámetros en las URL, como las que se enumeran a continuación:
Agrega una string de consulta:
file.ext?v=100
.En el caso de los bucket s de backend, cualquier string de consulta que se usa para el control de versiones debe especificarse en la configuración del bucket de backend. Si deseas obtener más información, consulta la Lista de inclusiones de string de consulta para las claves de caché de Cloud Storage.
Cambia el nombre del archivo:
file.1.0.0.ext
ofile_v100.ext
.Cambia la ruta:
/v100/file.ext
.
Cuando agregas el parámetro, cambias el nombre del archivo y la URL. Este cambio obliga a la caché a ignorar cualquier entrada de caché existente.
Usa la invalidación con moderación para quitar el contenido
La invalidación quita el contenido de los servidores de caché distribuidos en Cloud CDN antes de que se produzca el vencimiento de la entrada de caché. La invalidación tiene coherencia eventual.
Te recomendamos utilizar la invalidación con moderación y solo como último recurso. Por ejemplo, la invalidación es útil cuando debes quitar el contenido por razones legales o debido a una carga accidental. De lo contrario, te recomendamos utilizar el control de versiones siempre que sea posible, o espera hasta que el contenido venza normalmente. Los servidores de caché de Cloud CDN expulsan de manera habitual el contenido al que se accede con poca frecuencia a fin de dejar lugar para el contenido nuevo. El contenido al que no se accede durante 30 días se quita de forma incondicional.
Las invalidaciones de caché tienen una tasa limitada.
Para obtener más información sobre la invalidación, consulta Descripción general de la invalidación de caché.
Optimiza la coherencia de los archivos subidos
Las siguientes prácticas recomendadas ayudan a optimizar la coherencia de las cargas de archivos.
Evita actualizar archivos existentes
En lugar de actualizar los archivos existentes, sube versiones nuevas.
En el caso de los archivos nuevos, usa nombres únicos que pueden incluir fechas o números de versión.
Agrega un número de versión (por ejemplo, file_v2.css
) o una fecha (por ejemplo,
file_20230806.js
) al nombre del archivo ayuda a garantizar que Cloud CDN
recupera la versión correcta y actualizada. Agregar un parámetro a la URL del archivo (por ejemplo,
file.css?v=2
) para forzar la recuperación de una nueva versión, ya que
este enfoque no aborda el riesgo de almacenar en caché un archivo de origen no atómico
actualización, en la que los archivos parciales o incompletos aún se pueden almacenar en caché.
Es fundamental subir versiones nuevas de las dependencias antes de subir los archivos que hacen referencia a ellas. Esta práctica ayuda a garantizar que todas las referencias sean archivos completos y actualizados, lo que reduce el riesgo de entregar archivos actualizados o parcialmente truncados.
Realiza actualizaciones atómicas en los archivos
Cuando sea necesario actualizar los archivos existentes, hazlo de forma atómica.
Si se accede a un archivo y se almacena en caché antes de que se complete una carga, es posible que se almacene en caché como un archivo incompleto o truncado. Por ejemplo, un archivo como
/index.html
, no puede tener un nombre único, pero puede apuntar a otros archivos que tengan
con nombres únicos.
Si subes un archivo con su nombre de destino, es posible que se devuelvan se almacenan en caché cuando se accede a ellas durante la carga. En su lugar, sube el archivo bajo un nombre temporal y cámbiale el nombre al de destino solo después de que se termine que se completó. Esta práctica ayuda a garantizar que el archivo esté completo e inmediatamente que están disponibles cuando se hace referencia.
Cuando se actualizan los archivos existentes, el almacenamiento en caché de rango de bytes
puede hacer que Cloud CDN retenga los rangos del archivo anterior después del nuevo
se cargó el archivo. Si Cloud CDN tiene rangos almacenados en caché del archivo anterior, las solicitudes de fragmentos faltantes pueden generar respuestas parciales. Esto sucede
porque Cloud CDN detecta que el archivo de origen cambió
(porque cambia etag
o last-modified
), borra el contenido inactivo
desconecta las descargas en curso y se genera un error que solicita
que el cliente vuelva a intentarlo. Para mitigar este problema, emite invalidaciones para los archivos almacenados en caché de rango de bytes que se están actualizando.
Optimiza Monitoring y Logging
Las siguientes prácticas recomendadas ayudan a optimizar Monitoring y Logging.
Asegúrate de que los registros estén habilitados para Cloud CDN
Una práctica recomendada para administrar Cloud CDN es asegurarse de que el registro esté habilitado para todos los backends habilitados de Cloud CDN.
Usa el panel de supervisión personalizado para Cloud CDN
Para garantizar una mayor confiabilidad y un mayor rendimiento, se recomienda revisar con regularidad las métricas de supervisión relacionadas con Cloud CDN. Recomendamos comenzar con el panel de supervisión personalizado de Cloud CDN.
Revisa las pruebas de rendimiento de terceros
Revisa los informes de proveedores de terceros, como los informes de disponibilidad, latencia y capacidad de procesamiento que proporciona Citrix Radar.