Cloud CDN utilise les ressources de votre choix, c'est-à-dire soit l'équilibreur de charge d'application externe global, soit l'équilibreur de charge d'application classique, pour assurer le routage, la vérification de l'état et la compatibilité avec les adresses IP Anycast. Comme les équilibreurs de charge d'application externes globaux peuvent avoir plusieurs types d'instances backend (instances de VM Compute Engine, pods Google Kubernetes Engine, buckets Cloud Storage ou backends externes, en dehors de Google Cloud), vous pouvez choisir les backends (origines) pour lesquels activer Cloud CDN.
Ce guide de configuration explique comment créer un équilibreur de charge d'application externe lorsque Cloud CDN est activé. L'exemple fait appel aux ressources suivantes :
- Le réseau cloud privé virtuel (VPC) par défaut
- Un mappage d'URL par défaut
- Une adresse IP externe réservée
- Un bucket Cloud Storage en tant que backend
- Un unique bucket backend d'équilibreur de charge, qui agit comme un wrapper autour du bucket Cloud Storage
Un bucket backend est compatible avec les éléments suivants :
- Buckets Cloud Storage de n'importe quelle classe de stockage, y compris des buckets multirégionaux
- Stratégies Cloud CDN pour la mise en cache de contenu à la périphérie mondiale de Google
Pour découvrir le fonctionnement de Cloud CDN, consultez la présentation de Cloud CDN.
Par défaut, Cloud Storage utilise le même cache que Cloud CDN. Si vous activez Cloud CDN sur le bucket backend, vous pouvez utiliser les contrôles Cloud CDN sur votre contenu.
Les contrôles Cloud CDN incluent, par exemple, les modes de cache, les URL signées et l'invalidation. Cloud CDN vous permet également de mettre en cache du contenu volumineux (> 10 Mo). Si vous n'activez pas Cloud CDN sur votre bucket backend, vous ne pouvez utiliser que les en-têtes Cache-Control d'origine pour contrôler la mise en cache du contenu plus petit, tel que défini par les métadonnées Cloud Storage.
Backends de l'équilibreur de charge
Un équilibreur de charge d'application externe utilise un mappage d'URL pour diriger le trafic provenant d'URL spécifiées vers des services spécifiés. Le tableau suivant récapitule les types de backends dans lesquels vous pouvez héberger du contenu et des services.
| Configuration du backend d'équilibreur de charge | Type de contenu standard | Types de backends |
|---|---|---|
| Service de backend | Dynamique (par exemple, données) |
|
| Bucket backend | Statique (par exemple, images) |
|
Avant de commencer
- Si vous utilisez HTTPS pour l'interface, créez un certificat SSL, autogéré ou géré par Google. Nous vous recommandons d'utiliser un certificat géré par Google.
- Si vous utilisez la Google Cloud CLI, consultez Découvrir le stockage d'objets avec l'outil gcloud pour l'installer.
Console
- Dans la console Google Cloud , accédez à la page Accueil.
- À droite de Google Cloud, sélectionnez un projet dans le menu déroulant.
gcloud
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID du projet Google Cloud.
Terraform
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Créer un bucket Cloud Storage
Si vous disposez d'un bucket Cloud Storage existant qui n'est pas déjà attribué à un équilibreur de charge, vous pouvez passer à l'étape suivante.
Lorsque vous créez un bucket Cloud Storage à utiliser comme backend pour un équilibreur de charge d'application externe avec Cloud CDN, nous vous recommandons de choisir un bucket multirégional, qui réplique automatiquement les objets sur plusieurs régions Google Cloud . Cela peut améliorer la disponibilité de votre contenu et augmenter la tolérance aux pannes au sein de votre application.
Console
- Dans la console Google Cloud , ouvrez la page Buckets Cloud Storage.
- Cliquez sur Créer un bucket.
Spécifiez les valeurs des champs du tableau suivant, en conservant toutes les autres valeurs par défaut.
Propriété Valeur (saisissez une valeur ou sélectionnez une option spécifiée) Nom Saisissez un nom unique pour chaque bucket. Si le nom que vous saisissez n'est pas unique, un message vous invite à en renseigner un autre. Type d'emplacement Multirégional Emplacement Sélectionnez une région, telle que us (plusieurs régions aux États-Unis). Classe de stockage par défaut Standard Contrôle des accès Uniforme Cliquez sur Créer.
Notez le nom du bucket Cloud Storage que vous venez de créer en vue de l'étape suivante.
gcloud
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=standard --location=us-east1 --uniform-bucket-level-access
Terraform
Pour créer un bucket, utilisez la ressource google_storage_bucket.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Copier un fichier graphique dans votre bucket Cloud Storage
Pour pouvoir tester la configuration, vous allez copier un fichier graphique depuis un bucket Cloud Storage public vers votre propre bucket Cloud Storage.
gcloud
Exécutez la commande suivante dans Cloud Shell. Remplacez BUCKET_NAME par le nom unique de votre bucket Cloud Storage :
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/never-fetch/
Terraform
Pour copier l'objet, utilisez local-exec
Provisioner avec la commande gcloud storage cp.
resource "null_resource" "upload_image" {
provisioner "local-exec" {
command = "gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://${google_storage_bucket.default.name}/never-fetch/ --recursive"
}
}
Pour importer un objet, vous pouvez également utiliser la ressource google_storage_bucket_object.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Dans la console Google Cloud , cliquez sur Actualiser pour vérifier que le fichier graphique a bien été copié.
Rendre votre bucket Cloud Storage public
Cet exemple rend votre bucket Cloud Storage lisible publiquement. Il s'agit de l'approche recommandée pour du contenu public. Avec ce paramètre, tous les internautes peuvent afficher et répertorier vos objets et leurs métadonnées, à l'exception des LCA. Pour réduire le risque d'exposition involontaire des données, vous devez généralement dédier des buckets Cloud Storage spécifiques aux objets publics.
Voici des alternatives à l'opération effectuée pour rendre un bucket Cloud Storage entier public :
Utilisez des dossiers gérés pour rendre une partie de votre bucket lisible publiquement.
Rendez des objets individuels lisibles publiquement. Nous ne recommandons pas cette approche, car elle utilise un ancien système d'autorisation spécifique à Cloud Storage.
Utilisez des URL signées.