En esta página, se analizan las opciones que tienes para controlar cómo se almacenan en caché tus objetos de Cloud Storage. Esta página se centra en la caché integrada de Cloud Storage y en Cloud CDN, pero Cloud Storage también es compatible con CDN de terceros.
Descripción general
Cuando un objeto de Cloud Storage se almacena en caché, las copias del objeto se almacenan en una caché de Google o de Internet para que tu objeto se pueda entregar más rápido en solicitudes futuras. Aunque el almacenamiento en caché puede mejorar el rendimiento, también corres el riesgo de entregar contenido inactivo si realizas actualizaciones en tu objeto, pero la caché continúa entregando la versión anterior de este.
Almacenamiento en caché integrado para Cloud Storage
Cloud Storage puede comportarse como una red de distribución de contenido (CDN) sin que debas realizar ninguna acción, ya que los datos de un objeto se almacenan en caché en la red de Cloud Storage si sus metadatos Cache-Control
están configurados para permitir el almacenamiento en caché y se cumplen los siguientes criterios:
- El objeto es de acceso público.
- El objeto no se almacena en un bucket que tenga habilitada la opción Pago del solicitante y no reside dentro de un perímetro de servicio de nube privada virtual.
- El objeto no se encripta con claves de encriptación administradas por el cliente ni con claves de encriptación proporcionadas por el cliente.
Cloud Storage respeta los valores estándar para Cache-Control
, como los siguientes:
public
: El objeto se puede almacenar en caché.private
: Cloud Storage no almacenará en caché el objeto, pero se puede almacenar en caché en la caché local del solicitante.no-cache
: El objeto se puede almacenar en caché, pero no se puede usar para satisfacer solicitudes futuras, a menos que primero se valide mediante Cloud Storage.no-store
: El objeto no se puede almacenar en caché.max-age=TIME_IN_SECONDS
: La cantidad de tiempo que un objeto puede almacenarse en caché antes de que se considere inactivo. Puedes configurarmax-age
en cualquier período. Los objetos inactivos no se entregan desde memorias caché, excepto en circunstancias especiales.
Para configurar los metadatos Cache-Control
de un objeto, consulta Edita los metadatos de objetos.
Comportamiento de almacenamiento en caché integrado con políticas de denegación de IAM
Cuando hay una política de denegación de IAM a nivel de la organización con la que se restringe el acceso de lectura de un objeto del identificador principal allUsers
, el almacenamiento en caché integrado está inhabilitado para el objeto, incluso si hay una política de IAM a nivel de bucket con la que se otorga acceso de lectura al objeto a allUsers
.
Sin embargo, si la política de denegación de IAM solo restringe a los usuarios individuales, el almacenamiento en caché integrado permanece habilitado para el objeto.
Consideraciones de rendimiento
El rendimiento puede ser mucho mejor en el caso de los objetos que pueden almacenarse en caché de forma pública. Si tienes un objeto que se usa para controlar muchos clientes y quieres inhabilitar el almacenamiento en caché a fin de que siempre se recuperen los datos más actualizados, sigue estas recomendaciones:
Tal vez sea mejor que configures los metadatos
Cache-Control
del objeto comopublic
, con un valor demax-age
de 15 a 60 segundos. La mayoría de las aplicaciones tolera que el objeto esté desactualizado por unos segundos a cambio de las mejoras de rendimiento.Usa
Cache-Control: no-store
a fin de indicar que el objeto no debe almacenarse en caché para solicitudes posteriores en ninguna caché.
Cloud Storage con Cloud CDN
Para obtener el mejor rendimiento cuando entregas contenido a los usuarios, recomendamos usar Cloud Storage con Cloud CDN.
Para usar Cloud CDN, debes usar un balanceador de cargas de aplicaciones externo con tus buckets de Cloud Storage como backend. Si deseas ver un instructivo sobre cómo configurar un balanceador de cargas HTTP(S) con un bucket de Cloud Storage, consulta Aloja un sitio web estático.
Los modos de caché de Cloud CDN te permiten aplicar una configuración de almacenamiento en caché unificada a través de todos tus objetos. Cloud CDN usa los metadatos Cache-Control
configurados en tus objetos para determinar cómo se deben almacenar en caché, a menos que anules los metadatos Cache-Control
con un modo de caché o límite de TTL.
Cuando elijas entre el almacenamiento en caché integrado de Cloud Storage y Cloud CDN, ten en cuenta lo siguiente:
Atributo | Cloud Storage | Cloud CDN |
---|---|---|
Tamaño máximo de archivo que se puede almacenar en caché | 10 MiB | 100 GiB 1 |
Vencimiento predeterminado de la caché | 1 hora | 1 hora (configurable) |
Compatibilidad con dominios personalizados a través de HTTPS | No | Sí |
Invalidación de caché | No | Sí |
1El tamaño máximo de archivo almacenable en caché de Cloud CDN es de 100 GiB si el servidor de origen admite solicitudes de rango de bytes. Si el servidor de origen no admite solicitudes de rango de bytes, el tamaño máximo del archivo almacenable en caché para Cloud CDN es de 10 MiB.
Consideraciones sobre el precio
En cuanto a los precios, la elección entre el almacenamiento en caché integrado de Cloud Storage y Cloud CDN depende de la cantidad de datos que entregues cada mes, ya que esto determina la cantidad de costos de red que se te cobran.
Si entregas menos de unos cuantos GiB de datos que se pueden almacenar en caché por mes, puede que sea más económico usar el almacenamiento en caché integrado de Cloud Storage. El almacenamiento en caché de Cloud Storage puede generar costos de red más altos que los de Cloud CDN, ya que los objetos que están almacenados en caché y los que no, se cobran al mismo costo de transferencias de datos salientes (lo que significa que pagas el precio completo por los aciertos de caché). Sin embargo, solo pagas por los costos de uso de operaciones y almacenamiento de datos asociados con Cloud Storage, en lugar de la combinación de Cloud Storage, Cloud CDN y Cloud Load Balancing.
Si entregas de forma regular 100 GiB de datos o más que se puedan almacenar en caché por mes, o necesitas usar registros por solicitud y encabezados personalizados, puede ser más barato usar Cloud CDN. Incurres en costos de transferencia de datos salientes de Cloud Storage y de llenado de caché de Cloud CDN para el llenado de la caché, y los precios de red de Cloud CDN se aplican una vez que la caché está llena. Es posible que el ahorro en costos de red que obtengas de Cloud CDN amerite los costos operativos más altos asociados con el mantenimiento del balanceador de cargas de aplicaciones externo y Cloud CDN junto con Cloud Storage.
¿Qué sigue?
- Obtén más información sobre los metadatos
Cache-Control
. - Obtén más información sobre las directivas de RFC
Cache-Control
. - Lee la descripción general del almacenamiento en caché para Cloud CDN.
- Obtén más información sobre cómo crear un balanceador de cargas HTTP(S) externo para entregar solicitudes desde tu bucket de Cloud Storage.
- Lee los detalles de precios de los balanceadores de cargas de aplicaciones externos y Cloud CDN.