Mise en cache

Cette page décrit les options dont vous disposez pour contrôler la mise en cache de vos objets Cloud Storage. Cette page se concentre sur le cache intégré Cloud Storage et sur Cloud CDN, mais Cloud Storage est également compatible avec les CDN tiers.

Présentation

Lorsqu'un objet Cloud Storage est mis en cache, les copies de l'objet sont stockées dans un cache Google ou Internet, ce qui permet de diffuser votre objet plus rapidement dans les futures requêtes. Bien que la mise en cache puisse améliorer les performances, vous risquez également de diffuser du contenu obsolète si vous mettez à jour votre objet, mais qu'un cache continue à diffuser l'ancienne version de l'objet.

Mise en cache intégrée pour Cloud Storage

Cloud Storage se comporte comme un réseau de diffusion de contenu (CDN) sans intervention de votre part, car les objets lisibles publiquement sont généralement mis en cache dans le réseau Cloud Storage par défaut.

Les métadonnées Cache-Control d'un objet déterminent la durée pendant laquelle les caches de navigateur et Internet sont autorisés à mettre en cache votre objet. Le réseau Cloud Storage ne met en cache que les objets lisibles publiquement ; les proxys ou les navigateurs peuvent cependant mettre en cache des objets sur la base des métadonnées Cache-Control, même pour les objets qui ne sont pas lisibles publiquement. En outre, si vous révoquez l'accès public à un objet, cet objet peut toujours être diffusé à partir d'un cache, en fonction de la date de son dernier accès et de son paramètre Cache-Control. Par exemple, si votre objet a été diffusé avec les métadonnées Cache-Control définies sur public, max-age=3600, il peut être conservé dans un cache pendant une heure.

Pour définir les métadonnées Cache-Control, consultez la section Modifier des métadonnées d'objets.

Comportement de la mise en cache intégrée avec les stratégies de refus IAM

Lorsqu'une stratégie de refus IAM au niveau de l'organisation limite l'accès en lecture à un objet à partir de l'identifiant principal allUsers, la mise en cache intégrée est désactivée pour l'objet, même s'il existe une stratégie IAM au niveau du bucket qui accorde un accès en lecture à l'objet pour allUsers. Toutefois, si la stratégie de refus IAM ne limite que des utilisateurs individuels, la mise en cache intégrée reste activée pour l'objet.

Considérations sur les performances

Les performances peuvent être bien meilleures pour les objets pouvant être mis en cache en mode public. Pour désactiver la mise en cache d'un objet permettant de contrôler de nombreux clients, et ainsi fournir les données les plus récentes :

  • Envisagez plutôt de définir les métadonnées Cache-Control de l'objet sur public avec la valeur max-age comprise entre 15 et 60 secondes. La plupart des applications peuvent tolérer la présence d'un objet obsolète pendant quelques secondes, en échange d'améliorations de performances.

  • Servez-vous de la valeur Cache-Control: no-store afin d'indiquer que l'objet ne doit pas être mis en cache pour les requêtes ultérieures dans n'importe quel cache.

Cloud Storage avec Cloud CDN

Pour obtenir des performances optimales lors de la diffusion de contenu aux utilisateurs, nous vous recommandons d'utiliser Cloud Storage avec Cloud CDN.

Pour utiliser Cloud CDN, vous devez utiliser un équilibreur de charge d'application externe avec vos buckets Cloud Storage en tant que backend. Pour accéder au tutoriel sur la configuration d'un équilibreur de charge HTTP(S) avec un bucket Cloud Storage, consultez la page Héberger un site Web statique.

Les modes de cache Cloud CDN vous permettent d'appliquer une configuration de mise en cache unifiée à tous vos objets. Cloud CDN utilise les métadonnées Cache-Control définies sur vos objets pour déterminer comment les mettre en cache, sauf si vous remplacez les métadonnées Cache-Control à l'aide d'un mode de cache ou d'une limite de valeur TTL.

Lorsque vous choisissez entre la mise en cache intégrée Cloud Storage et Cloud CDN, tenez compte des points suivants :

Caractéristique Cloud Storage Cloud CDN
Taille maximale de fichier pouvant être mis en cache 10 Mio 5 Tio
Expiration du cache par défaut 1 heure 1 heure (configurable)
Compatibilité avec les domaines personnalisés via HTTPS Non Oui
Invalidation de cache Non Oui

Remarques sur les tarifs

En termes de tarification, le choix entre la mise en cache intégrée Cloud Storage et Cloud CDN dépend de la quantité de données que vous diffusez chaque mois, laquelle détermine le montant des coûts de mise en réseau.

  • Si vous diffusez moins de quelques Gio de données pouvant être mises en cache par mois, le coût global de l'ensemble de vos opérations peut s'avérer moindre si vous vous appuyez sur la mise en cache intégrée Cloud Storage. La mise en cache Cloud Storage peut entraîner des coûts de mise en réseau plus élevés que Cloud CDN, car les objets mis en cache et non mis en cache sont facturés au même tarif que le transfert de données sortantes (vous payez donc le prix fort pour les succès de cache). Toutefois, vous ne payez que les coûts liés à l'utilisation des opérations et au stockage des données associés à Cloud Storage, et non l'utilisation combinée de Cloud Storage, de Cloud CDN et de l'équilibrage de charge Cloud.

  • Si vous diffusez régulièrement 100 Gio ou plus de données pouvant être mises en cache par mois, ou si vous avez besoin d'utiliser la journalisation par requête et des en-têtes personnalisés, le coût global peut s'avérer moindre avec Cloud CDN. Des frais de transfert de données sortantes Cloud Storage et de remplissage de cache Cloud CDN vous sont facturés pour le remplissage du cache. Les tarifs de la mise en réseau Cloud CDN s'appliquent une fois le cache saturé. Les économies réalisées sur les coûts de mise en réseau liées à l'utilisation de Cloud CDN peuvent être plus importantes que la hausse des coûts d'exploitation liés au maintien de l'équilibreur de charge d'application externe et de Cloud CDN avec Cloud Storage.

Étapes suivantes