En esta página se describen 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 CDNs de terceros.
Información general
Cuando se almacena en caché un objeto de Cloud Storage, se guardan copias de los datos del objeto en una caché de Google o de Internet para que el objeto se pueda servir más rápido en futuras solicitudes. Aunque el almacenamiento en caché puede mejorar el rendimiento, también corres el riesgo de servir contenido obsoleto si actualizas un objeto, pero una caché sigue sirviendo la versión anterior del objeto.
Almacenamiento en caché integrado para Cloud Storage
Cloud Storage puede comportarse como una red de distribución de contenido (CDN) sin que tengas que hacer nada, ya que los datos de un objeto se almacenan en caché en la red de Cloud Storage si los Cache-Control
metadatos se han configurado para permitir el almacenamiento en caché y se cumplen los siguientes criterios:
- El objeto es de acceso público.
- El objeto no está almacenado en un segmento que tenga habilitada la opción Paga el solicitante y no se encuentra dentro de un perímetro de servicio de nube privada virtual.
- El objeto no está encriptado con claves de encriptado gestionadas por el cliente ni con claves de encriptado proporcionadas por el cliente.
Cloud Storage respeta los valores estándar de
Cache-Control
, como los siguientes:
public
: el objeto se puede almacenar en caché.private
: Cloud Storage no almacenará en caché el objeto, pero se podrá almacenar en la caché local de un solicitante.no-cache
: el objeto se puede almacenar en caché, pero no se puede usar para satisfacer futuras solicitudes a menos que Cloud Storage lo valide primero.no-store
: el objeto no se puede almacenar en caché.max-age=TIME_IN_SECONDS
: el tiempo que puede almacenarse en caché un objeto antes de que se considere obsoleto. Puedes configurarmax-age
para cualquier periodo. Los objetos obsoletos no se sirven desde las cachés, excepto en circunstancias especiales.
Para definir los metadatos Cache-Control
de un objeto, consulta Editar metadatos de objetos.
Comportamiento de almacenamiento en caché integrado con las políticas de gestión de identidades y accesos de denegación
Cuando hay una política de denegación de IAM a nivel de organización que restringe el acceso de lectura a un objeto desde el identificador principal allUsers
, la caché integrada se inhabilita para el objeto, aunque haya una política de IAM a nivel de segmento que conceda acceso de lectura al objeto a allUsers
.
Sin embargo, si la política de denegación de gestión de identidades y accesos solo restringe a usuarios concretos, el almacenamiento en caché integrado seguirá habilitado para el objeto.
Consideraciones sobre el rendimiento.
El rendimiento de los objetos es mucho mejor cuando se pueden almacenar en caché de forma pública. Si utilizas un objeto para controlar a muchos clientes y te gustaría inhabilitar el almacenamiento en caché para proporcionar los datos más recientes, haz lo siguiente:
Prueba a configurar los metadatos
Cache-Control
del objeto comopublic
con un valormax-age
entre 15 y 60 segundos. La mayoría de las aplicaciones pueden tolerar que un objeto esté obsoleto durante unos segundos a cambio de mejorar el rendimiento.Utiliza
Cache-Control: no-store
en un objeto para que, a partir de ese momento, no se guarde en caché cuando se realicen solicitudes de almacenamiento en caché.
Usar Anywhere Cache con tus segmentos
Anywhere Cache es una función de Cloud Storage totalmente gestionada y siempre coherente que te permite crear cachés en la misma zona que tus cargas de trabajo. Las cachés se pueden usar para completar solicitudes de lectura de datos en lugar de tu cubo multirregional, lo que te ayuda a controlar los costes de almacenamiento al ejecutar cargas de trabajo grandes y con muchos datos que, de lo contrario, incurrirían en tarifas de transferencia de datos multirregionales y afectarían al rendimiento. Para obtener más información sobre Anywhere Cache, sus ventajas y cuándo deberías usar esta función, consulta el artículo sobre Anywhere Cache.
Cloud Storage con Cloud CDN
Para obtener el mejor rendimiento al distribuir contenido a los usuarios, te recomendamos que uses Cloud Storage con Cloud CDN.
Para usar Cloud CDN, debes usar un balanceador de carga de aplicaciones externo con tus segmentos de Cloud Storage como backend. Para ver un tutorial sobre cómo configurar un balanceador de carga HTTP(S) con un segmento de Cloud Storage, consulta Alojar un sitio web estático.
Los modos de caché de Cloud CDN te permiten aplicar una configuración de almacenamiento en caché unificada a todos tus objetos. Cloud CDN usa los metadatos Cache-Control
definidos 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 un límite de TTL.
Cuando tengas que elegir 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 | 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í |
1 El tamaño máximo de archivo que se puede almacenar en caché en Cloud CDN es de 100 GiB si el servidor de origen admite solicitudes de intervalo de bytes. Si el servidor de origen no admite solicitudes de intervalo de bytes, el tamaño máximo de archivo que se puede almacenar en caché en Cloud CDN es de 10 MiB.
Consideraciones sobre los precios
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 sirvas cada mes, lo que determina el importe de los costes de red que incurras.
Si sirves menos de unos pocos GiB de datos almacenables en caché al mes, puede que te resulte más económico usar el almacenamiento en caché integrado de Cloud Storage. El almacenamiento en caché de Cloud Storage puede generar costes de red más elevados que Cloud CDN, ya que los objetos almacenados en caché y los que no se almacenan en caché se cobran con el mismo coste de transferencia de datos saliente (lo que significa que pagas el precio completo por los aciertos de caché). Sin embargo, solo pagas los costes de uso del almacenamiento de datos y las operaciones asociadas a Cloud Storage, en lugar de la combinación de Cloud Storage, Cloud CDN y Cloud Load Balancing.
Si sueles servir 100 GiB o más de datos almacenables en caché al mes, o necesitas usar el registro por solicitud y encabezados personalizados, puede que te resulte más económico usar Cloud CDN. Se aplican cargos por transferencia de datos saliente de Cloud Storage y por entrada en caché de Cloud CDN, y los precios de la red de Cloud CDN se aplican cuando la caché está llena. El ahorro en costes de red que obtienes al usar Cloud CDN puede compensar los costes operativos más altos asociados al mantenimiento del balanceador de carga de aplicaciones externo y Cloud CDN junto con Cloud Storage.
Siguientes pasos
- Consulta más información sobre los metadatos
Cache-Control
. - Consulta más información sobre las directivas
Cache-Control
RFC. - Consulta la información general sobre el almacenamiento en caché de Cloud CDN.
- Consulta cómo crear un balanceador de carga HTTP(S) externo para atender solicitudes de tu bucket de Cloud Storage.
- Consulta los detalles de los precios de los balanceadores de carga de aplicación externos y de Cloud CDN.