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 se comporta como una red de distribución de contenidos (CDN) sin que debas realizar alguna acción porque, de forma predeterminada, los objetos legibles públicamente se almacenan en caché en la red de Cloud Storage.
Los metadatos Cache-Control
de un objeto determinan cuánto tiempo las memorias caché de Internet y del navegador. pueden almacenar en caché tu objeto La red de Cloud Storage solo almacena en caché objetos que se pueden leer de forma pública, pero los proxies o navegadores pueden almacenar objetos en caché en función de los metadatos Cache-Control
, incluso para objetos que no son de lectura pública. Además, si revocas el acceso público a un objeto, este aún se puede entregar desde una caché, según cuándo se accedió por última vez y su configuración de Cache-Control
. Por ejemplo, si tu objeto se entregó con un Cache-Control
de public, max-age=3600
, puede persistir en una caché durante una hora.
Para configurar los metadatos Cache-Control
, 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:
Función | Cloud Storage | Cloud CDN |
---|---|---|
Tamaño máximo de archivo que se puede almacenar en caché | 10 MiB | 5 TiB |
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í |
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 para 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.