Ce document explique comment créer un équilibreur de charge d'application externe global avec un service de backend et un bucket backend situés dans un projet différent de celui où se trouvent l'interface de l'équilibreur de charge et le mappage d'URL. Ce modèle de déploiement est appelé référence de services inter-projets.
L'exemple utilisé dans ce document n'utilise pas d'environnement VPC partagé pour configurer la référence de service inter-projets. Pour en savoir plus sur la configuration du référencement de services inter-projets dans un environnement VPC partagé, consultez la page Configurer un équilibreur de charge d'application externe mondial avec un VPC partagé.
Avant de commencer
Assurez-vous que votre configuration remplit les conditions préalables suivantes.
Rôles et autorisations IAM requis
Pour suivre ce guide, vous devez disposer des rôles IAM suivants:
Tâche | Rôle requis |
---|---|
Créer un projet | Rôle Créateur de projet (roles/resourcemanager.projectCreator )
|
Créer des ressources de calcul | Rôle d'administrateur de réseaux Compute (roles/compute.networkAdmin )
|
Créer des buckets Cloud Storage | Rôle d'administrateur des objets de l'espace de stockage (roles/storage.objectAdmin )
|
Utiliser une ressource d'un autre projet (Dans cet exemple, le projet A référence le service de backend et le bucket backend situés dans le projet B.) |
Dans cet exemple, un administrateur du projet B doit attribuer le rôle d'utilisateur des services d'équilibreur de charge Compute ( Pour savoir comment attribuer ce rôle, consultez Accorder des autorisations à l'administrateur de l'équilibreur de charge Compute pour utiliser le service de backend. |
Créer des projets Google Cloud
Pour l'exemple de ce document, suivez les instructions deux fois pour créer deux projets Google Cloud .
Console
Pour créer un projet, procédez comme suit :
-
Accédez à la page Gérer les ressources dans la console Google Cloud .
Accéder à la page Gérer les ressources
Les étapes restantes s'affichent dans la console Google Cloud .
- Dans la liste déroulante Sélectionner une organisation en haut de la page, sélectionnez la ressource d'organisation dans laquelle vous souhaitez créer un projet. Si vous êtes un utilisateur de la version d'essai sans frais, vous pouvez ignorer cette étape. Cette liste n'apparaîtra pas.
- Cliquez sur Créer un projet.
- Dans la fenêtre Nouveau projet qui s'affiche, saisissez un nom de projet, puis sélectionnez un compte de facturation si nécessaire. Le nom du projet ne peut contenir que des lettres, des chiffres, des guillemets simples, des traits d'union, des espaces ou des points d'exclamation. Il doit comporter entre 4 et 30 caractères.
- Indiquez l'organisation ou le dossier parent dans la zone Emplacement. Cette ressource sera le parent hiérarchique du nouveau projet. Si l'option Aucune organisation est proposée, vous pouvez la sélectionner pour créer votre projet en tant que niveau supérieur de sa propre hiérarchie de ressources.
- Une fois les détails du nouveau projet renseignés, cliquez sur Créer.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Pour créer un projet, utilisez la commande
gcloud projects create
:gcloud projects create PROJECT_ID
PROJECT_ID correspond à l'ID du projet que vous souhaitez créer. L'ID du projet doit commencer par une lettre en minuscule et ne peut contenir que des lettres ASCII, des chiffres et des tirets. Il doit comporter entre 6 et 30 caractères.
Vue d'ensemble de la configuration
Comme illustré dans le diagramme suivant, l'interface et le mappage d'URL d'un équilibreur de charge d'application externe global sont créés dans un projet différent du service de backend et du bucket backend de l'équilibreur de charge. Ce type de déploiement inter-projets n'utilise pas d'environnement VPC partagé.
Dans cette configuration, le mappage d'URL achemine les requêtes de contenu statique (/images/*
) vers un bucket backend, tandis que toutes les autres requêtes sont acheminées vers le service de backend par défaut.
Le tableau suivant présente les ressources créées dans les projets A et B. L'interface et le mappage d'URL de l'équilibreur de charge sont créés dans le projet A, tandis que les composants de backend sont créés dans le projet B.
Ressources créées dans le projet A | Ressources créées dans le projet B |
---|---|
|
|
Dans les sections suivantes, nous allons configurer les différentes ressources listées dans le tableau précédent, en commençant par configurer un réseau VPC et un sous-réseau pour les VM backend de l'équilibreur de charge dans le projet B.
Configurer un réseau et un sous-réseau pour les VM de backend de l'équilibreur de charge dans le projet B
Pour les besoins de cet exemple, les VM de backend sont créées dans le réseau et le sous-réseau suivants:
Réseau Le réseau est un réseau VPC en mode personnalisé nommé
lb-network
.Sous-réseau pour les VM de backend de l'équilibreur de charge : un sous-réseau nommé
lb-backend-subnet
dans la régionus-west1
utilise10.1.2.0/24
pour sa plage d'adresses IP principale. Les plages d'adresses IPv4 principale et secondaire d'un sous-réseau sont des adresses IPv4 internes régionales. Pour en savoir plus, consultez la section Plages d'adresses IPv4 valides.
Console
Dans la console Google Cloud , accédez à la page Réseaux VPC.
Cliquez sur Créer un réseau VPC.
Dans le champ Nom, saisissez
lb-network
.Dans la section Sous-réseaux, définissez le Mode de création du sous-réseau sur Personnalisé.
Dans la section Nouveau sous-réseau, saisissez les informations suivantes :
- Nom :
lb-backend-subnet
- Sélectionnez une région :
us-west1
. - Plage d'adresses IP :
10.1.2.0/24
- Nom :
Cliquez sur OK.
Cliquez sur Créer.
gcloud
Créez un réseau VPC personnalisé, nommé
lb-network
, à l'aide de la commandegcloud compute networks create
.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_ID
Créez un sous-réseau dans le réseau VPC
lb-network
de la régionus-west1
à l'aide de la commandegcloud compute networks subnets create
.gcloud compute networks subnets create lb-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --project=PROJECT_B_ID
Configurer un service de backend dans le projet B
Pour configurer un service de backend, procédez comme suit:
- Créez un modèle d'instance.
- Créer un groupe d'instances
- Créez une vérification d'état.
- Créez une règle de pare-feu.
- Créez un service de backend.
Créer un modèle d'instance
Le précurseur de la création d'un groupe d'instances géré est la création d'un modèle d'instance, qui est une ressource utilisable pour créer des instances de machine virtuelle (VM). Le trafic des clients fait l'objet d'un équilibrage de charge par rapport aux VM d'un groupe d'instances. Le groupe d'instances géré fournit des VM qui exécutent les serveurs backend d'un équilibreur de charge d'application externe. Dans cet exemple, les backends diffusent leurs propres noms d'hôte.
Console
Dans la console Google Cloud , accédez à la page Modèles d'instances de Compute Engine.
Cliquez sur Create instance template (Créer un modèle d'instance).
Dans le champ Nom, saisissez
backend-template
.Dans la section Disque de démarrage, assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 12 (bookworm). Cliquez sur Modifier pour modifier l'image si nécessaire.
Développez la section Options avancées.
Développez Mise en réseau et configurez les champs suivants :
- Pour Tags réseau, saisissez
load-balanced-backend
. - Dans la section Interfaces réseau, configurez les champs suivants :
- Réseau :
lb-network
- Sous-réseau :
lb-backend-subnet
- Type de pile IP: IPv4
- Réseau :
- Cliquez sur Terminé.
- Pour Tags réseau, saisissez
Développez Gestion. Dans le champ Script de démarrage, saisissez le script suivant :
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \
Cliquez sur Créer.
gcloud
Créez un modèle d'instance.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=us-west1 \ --network=projects/PROJECT_B_ID/global/networks/lb-network \ --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \ --project=PROJECT_B_ID
Créer un groupe d'instances géré
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances de Compute Engine.
Cliquez sur Créer un groupe d'instances.
Dans les options, sélectionnez Nouveau groupe d'instances géré (sans état).
Pour le nom du groupe d'instances, saisissez
lb-backend
.Dans la liste Modèle d'instance, sélectionnez le modèle d'instance
backend-template
que vous avez créé à l'étape précédente.Dans la section Emplacement, sélectionnez Zone unique, puis saisissez les valeurs suivantes :
Pour Région, sélectionnez
us-west1
.Pour Zone, sélectionnez
us-west1-a
.
Dans la section Autoscaling, saisissez les valeurs suivantes :
Dans le champ Mode autoscaling, sélectionnez Activé : ajouter et supprimer des instances dans le groupe.
Dans le champ Nombre minimal d'instances, sélectionnez
2
.Dans le champ Nombre maximal d'instances, sélectionnez
3
.
Dans la section Mappage de port, cliquez sur Ajouter un port, puis saisissez les valeurs suivantes :
Pour nom du port, saisissez
http
.Pour Numéro de port, saisissez
80
.
Cliquez sur Créer.
gcloud
Créez un groupe d'instances géré, puis sélectionnez le modèle d'instance que vous avez créé à l'étape précédente :
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --zone=us-west1-a \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME \ --project=PROJECT_B_ID
Ajouter un port nommé au groupe d'instances :
gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \ --named-ports=http:80 \ --zone=us-west1-a \ --project=PROJECT_B_ID
Créer une vérification d'état
Les vérifications d'état sont des tests qui confirment la disponibilité des backends. Créez une vérification de l'état qui utilise le protocole HTTP et des vérifications sur le port 80. Vous associerez ensuite cette vérification d'état au service de backend référencé par l'équilibreur de charge.
Console
Dans la console Google Cloud , accédez à la page Vérifications d'état de Compute Engine :
Pour le nom de la vérification d'état, saisissez
lb-health-check
.Définissez le protocole sur HTTP.
Cliquez sur Créer.
gcloud
Créez une vérification d'état HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=PROJECT_B_ID
Créer une règle de pare-feu
Pour les vérifications d'état, vous devez créer une règle de pare-feu autorisant le trafic entrant au niveau du réseau, qui est lb-network
dans cet exemple. Cette règle de pare-feu permet aux vérifications d'état d'atteindre vos instances backend. Cet exemple utilise la règle de pare-feu suivante:
fw-allow-health-check
: règle d'entrée, applicable aux instances faisant l'objet d'un équilibrage de charge, qui autorise tout le trafic TCP issu des systèmes de vérification d'état Google Clouddans130.211.0.0/22
et35.191.0.0/16
. Cet exemple utilise le tag cibleload-balanced-backend
pour identifier les instances auxquelles il doit s'appliquer.
Console
Dans la console Google Cloud , accédez à la page Règles de pare-feu.
Cliquez sur Créer une règle de pare-feu pour créer la règle autorisant les connexions SSH entrantes sur la VM cliente:
- Nom :
fw-allow-health-check
- Réseau :
lb-network
- Sens du trafic : entrée
- Action en cas de correspondance : autoriser
- Cibles : Tags cibles spécifiés
- Tags cibles :
load-balanced-backend
- Filtre source : Plages IPv4
- Plages IPv4 sources :
130.211.0.0/22
et35.191.0.0/16
- Protocoles et ports :
- Choisissez Protocoles et ports spécifiés.
- Cochez la case TCP, puis saisissez
80
pour le numéro de port. Nous vous recommandons de limiter cette règle aux seuls protocoles et ports qui correspondent à ceux utilisés par votre vérification de l'état#39;état. Si vous utilisez tcp:80 pour le protocole et le port, Google Cloud peut utiliser HTTP sur le port 80 pour contacter vos VM, mais pas HTTPS sur le port 443.
- Nom :
Cliquez sur Créer.
gcloud
Créez la règle de pare-feu
fw-allow-health-check
pour autoriser les vérifications d'étatGoogle Cloud . Cet exemple autorise tout le trafic TCP provenant des vérificateurs d'état. Toutefois, vous pouvez configurer un ensemble de ports plus restreint en fonction de vos besoins.gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp \ --project=PROJECT_B_ID
Créer un service de backend
Créez un service de backend global pour répartir le trafic entre les backends. Dans le cadre de cette étape, vous devez attribuer la vérification de l'état que vous avez créée au service de backend et ajouter le groupe d'instances en tant que backend au service de backend.
Console
Dans la console Google Cloud , accédez à la page Équilibrage de charge.
Accédez à la section Backends.
Cliquez sur Créer un service de backend.
Dans Service de backend global, cliquez sur le bouton Créer situé à côté.
Pour le nom du service de backend, saisissez
cross-ref-backend-service
.Pour Type de backend, sélectionnez Groupe d'instances.
Définissez Protocole sur HTTP.
Dans le champ Port nommé, saisissez
http
. C'est le même nom de port que vous avez saisi lors de la création du groupe d'instances géré.Pour ajouter des backends au service de backend, procédez comme suit :
Dans la section Backends, définissez le groupe d'instances sur
lb-backend
, qui est le groupe d'instances géré que vous avez créé précédemment.Pour Numéros de ports, saisissez
80
.Pour ajouter le backend, cliquez sur OK.
Pour ajouter une vérification d'état, dans la liste Vérification d'état, sélectionnez
lb-health-check
, qui est la vérification d'état que vous avez créée précédemment.Pour créer le service de backend, cliquez sur Créer.
gcloud
Créez un service de backend global pour répartir le trafic entre les backends :
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=HEALTH_CHECK_NAME \ --global \ --project=PROJECT_B_ID
Ajoutez votre groupe d'instances en tant que backend au service de backend :
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=us-west1-a \ --global \ --project=PROJECT_B_ID
Configurer un bucket backend dans le projet B
Pour créer un bucket backend, procédez comme suit:
- Créez le bucket Cloud Storage.
- Copiez le contenu dans le bucket.
- Rendez le bucket accessible au public.
- Créez un bucket backend et pointez-le vers le bucket Cloud Storage.
Créer un bucket Cloud Storage
Console
- Dans la console Google Cloud , accédez à la page Buckets (Buckets) Cloud Storage.
Cliquez sur
Créer.Dans le champ Nommer votre bucket, saisissez un nom unique qui respecte les consignes de dénomination.
Cliquez sur Choisir où stocker vos données.
Définissez le Type d'emplacement sur Région.
Dans la liste des régions, sélectionnez us-east1.
Cliquez sur Créer.
gcloud
Créez un bucket dans la région
us-east1
à l'aide de la commandegcloud storage buckets create
.gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=PROJECT_B_ID
Remplacez la variable BUCKET_NAME par le nom de votre bucket Cloud Storage.
Copier un fichier graphique dans votre bucket Cloud Storage
Exécutez la commande suivante dans Cloud Shell, en remplaçant les variables de nom de bucket par votre nom de bucket Cloud Storage unique, pour copier le fichier graphique d'un bucket Cloud Storage public dans le dossier images/
de votre propre bucket Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
Rendre votre bucket Cloud Storage lisible publiquement
Pour rendre tous les objets d'un bucket lisibles par tous sur l'Internet public, attribuez au compte principal allUsers
le rôle "Lecteur des objets Storage" (roles/storage.objectViewer
).
Console
Pour autoriser tous les utilisateurs à afficher des objets dans vos buckets, répétez la procédure suivante pour chaque bucket :
- Dans la console Google Cloud , accédez à la page Buckets (Buckets) Cloud Storage.
Dans la liste des buckets, cliquez sur le nom de celui que vous souhaitez rendre public.
Sélectionnez l'onglet Autorisations en haut de la page.
Dans la section Autorisations, cliquez sur le bouton
Accorder l'accès. La boîte de dialogue Accorder l'accès s'affiche.Dans le champ Nouveaux comptes principaux, saisissez
allUsers
.Dans le champ Sélectionner un rôle, saisissez
Storage Object Viewer
dans le champ de filtre, puis sélectionnez Lecteur des objets Storage dans les résultats filtrés.Cliquez sur Enregistrer.
Cliquez sur Autoriser l'accès public.
gcloud
Pour autoriser tous les utilisateurs à afficher les objets de vos buckets, exécutez la commande buckets add-iam-policy-binding
.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Remplacez les variables de nom de bucket par les noms uniques de vos buckets Cloud Storage.
Créer un bucket backend
Les buckets backend servent de wrapper aux buckets Cloud Storage que vous avez créés précédemment. Ils dirigent le trafic entrant vers des buckets Cloud Storage.
Console
Dans la console Google Cloud , accédez à la page Équilibrage de charge.
Accédez à la section Backends.
Cliquez sur Créer un bucket backend.
Saisissez un nom pour votre bucket backend.
Sélectionnez un bucket Cloud Storage vers lequel pointer votre bucket backend.
Cliquez sur Créer.
gcloud
Créez un bucket backend avec la commande gcloud compute backend-buckets create
dans le projet B.
gcloud compute backend-buckets create BACKEND_BUCKET_NAME \ --gcs-bucket-name=BUCKET_NAME \ --project=PROJECT_B_ID
Configurer les composants d'interface de l'équilibreur de charge dans le projet A
Cette section vous explique comment configurer les composants de frontend de l'équilibreur de charge suivants dans le projet A:
- Adresse IP
- Certificat SSL
- Mappage d'URL
- Proxy cible
- Règle de transfert
Réserver l'adresse IP de l'équilibreur de charge
Réservez une adresse IP statique externe globale pouvant être attribuée à la règle de transfert de l'équilibreur de charge.
Console
Dans la console Google Cloud , accédez à la page Adresses IP du VPC.
Cliquez sur Réserver une adresse IP externe statique.
Dans le champ Nom, saisissez
cross-ref-ip-address
.Définissez Niveau de service réseau sur Premium.
Définissez Version IP sur IPv4.
Définissez Type sur Global.
Cliquez sur Réserver.
gcloud
Créez une adresse IP externe statique globale.
gcloud compute addresses create IP_ADDRESS_NAME \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global \ --project=PROJECT_A_ID
Configurer une ressource de certificat SSL
Dans cet exemple, vous pouvez utiliser HTTP ou HTTPS comme protocole de requête et de réponse entre le client et l'équilibreur de charge. Pour créer un équilibreur de charge HTTPS, vous devez ajouter une ressource de certificat SSL au frontal de l'équilibreur de charge.
Créez une ressource de certificat SSL, comme décrit dans la documentation suivante:
Nous vous recommandons d'utiliser un certificat géré par Google.
Après avoir créé le certificat, vous pouvez l'associer au proxy cible HTTPS.
Configurer les composants d'un équilibreur de charge d'application externe global
Console
Démarrer la configuration
Dans la console Google Cloud , accédez à la page Équilibrage de charge.
- Cliquez sur Créer un équilibreur de charge.
- Dans le champ Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), puis cliquez sur Suivant.
- Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
- Pour Déploiement mondial ou dans une seule région, sélectionnez Recommandé pour les charges de travail à l'échelle mondiale, puis cliquez sur Suivant.
- Pour Génération de l'équilibreur de charge, sélectionnez Équilibreur de charge d'application externe global, puis cliquez sur Suivant.
- Cliquez sur Configurer.
Configuration de base
- Saisissez un nom pour votre équilibreur de charge.
- Laissez la page ouverte pour continuer.
Configurer l'interface
Pour HTTP :
- Cliquez sur Configuration de l'interface.
- Saisissez un nom pour la règle de transfert.
- Définissez le paramètre Protocole sur
HTTP
. - Sélectionnez l'adresse IP que vous avez créée dans la section Réserver l'adresse IP de l'équilibreur de charge.
- Définissez le paramètre Port sur
80
. - Cliquez sur OK.
Pour HTTPS :
Si vous utilisez HTTPS entre le client et l'équilibreur de charge, vous devez disposer d'une ou de plusieurs ressources de certificat SSL pour configurer le proxy. Pour en savoir plus sur la création de ressources de certificat SSL, consultez la page Certificats SSL.
- Cliquez sur Configuration de l'interface.
- Saisissez un nom pour la règle de transfert.
- Dans le champ Protocole, sélectionnez
HTTPS (includes HTTP/2)
. - Sélectionnez l'adresse IP que vous avez créée dans la section Réserver l'adresse IP de l'équilibreur de charge.
- Assurez-vous que le port est défini sur la valeur
443
pour autoriser le trafic HTTPS. - Cliquez sur la liste Certificat.
- Sélectionnez le nom du certificat SSL que vous avez créé précédemment.
- Cliquez sur OK.
Configurer le backend
- Cliquez sur Configuration du backend.
- Cliquez sur Services de backend multiprojets.
- Dans le champ ID du projet, saisissez l'ID du projet du projet B.
- Dans la liste Sélectionner des services backend, sélectionnez le service de backend du projet B que vous souhaitez utiliser.
- Cliquez sur OK.
Configurer les règles de routage
Cliquez sur Règles de routage.
Pour le mode, sélectionnez Règle d'hôte et de chemin d'accès avancée.
Sélectionnez Ajouter une règle d'hôte et de chemin d'accès.
Dans le champ Hosts (Hôtes), saisissez
*
pour faire correspondre tous les noms d'hôte.Dans la section Outil de mise en correspondance des correctifs, saisissez la configuration YAML suivante.
defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME name: PATH_MATCHER_NAME pathRules: - paths: - /images/* service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Dans cet exemple, l'outil de mise en correspondance des chemins d'accès se compose d'une règle de chemin d'accès et d'un service par défaut. La règle de chemin achemine toutes les requêtes envoyées à
/images/*
vers un bucket backend. Toutes les autres requêtes sont acheminées vers le service de backend par défaut.Cliquez sur OK.
Pour en savoir plus sur la gestion du trafic, consultez la section Présentation de la gestion du trafic.
Vérifier et finaliser la configuration
Examinez les différents composants de l'équilibreur de charge que vous avez configurés dans les étapes précédentes. Vous remarquerez que la section Backends fait référence à la fois au service de backend et au bucket backend.
Cliquez sur Créer.
gcloud
Pour créer les composants d'équilibrage de charge mentionnés ci-dessus à l'aide de la gcloud CLI, procédez comme suit:
Créez un mappage d'URL à l'aide de la commande
gcloud compute url-maps create
.gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --global \ --project=PROJECT_A_ID
Ajoutez un outil de mise en correspondance des chemins d'accès pour le mappage d'URL. Dans cet exemple, l'outil de mise en correspondance des chemins d'accès se compose d'une règle de chemin d'accès et d'un service par défaut. La règle de chemin d'accès achemine toutes les requêtes envoyées à
/images/*
vers un bucket backend. Toutes les autres requêtes sont acheminées vers le service de backend par défaut.gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Créez un proxy cible à l'aide de la commande
gcloud compute target-http-proxies create
.Pour le trafic HTTP, créez un proxy HTTP cible qui va acheminer les requêtes vers le mappage d'URL :
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global \ --project=PROJECT_A_ID
Pour le trafic HTTPS, créez un proxy HTTPS cible pour acheminer les requêtes vers le mappage d'URL. Le proxy est la partie de l'équilibreur de charge qui contient le certificat SSL pour un équilibreur de charge HTTPS. Après avoir créé le certificat, vous pouvez l'associer au proxy cible HTTPS.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE_NAME \ --global \ --project=PROJECT_A_ID
Remplacez
CERTIFICATE_NAME
par le nom du certificat SSL.Créez une règle de transfert globale à l'aide de la commande
gcloud compute forwarding-rules create
.Pour le trafic HTTP, créez les règles de transfert globales pour acheminer les requêtes entrantes vers le proxy cible HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --ports=80 \ --project=PROJECT_A_ID
Pour le trafic HTTPS, créez les règles de transfert globales pour acheminer les requêtes entrantes vers le proxy cible HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --ports=443 \ --project=PROJECT_A_ID
Tester l'équilibreur de charge
La configuration de votre équilibreur de charge peut prendre quelques minutes, après quoi vous pourrez lui envoyer une requête. Dans cet exemple, la requête est envoyée à la règle de transfert HTTP de l'équilibreur de charge.
Obtenez l'adresse IP de la règle de transfert HTTP de l'équilibreur de charge.
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \ --global
Si vous pointez votre navigateur vers http://IP_ADDRESS, la requête est acheminée vers le service de backend, qui renvoie une page contenant des informations minimales sur l'instance de backend.
Toutefois, si vous pointez votre navigateur vers http://IP_ADDRESS/images/three-cats.jpg, la requête envoyée à /images/*
est acheminée vers le bucket backend, qui renvoie le fichier graphique.
Étape suivante
- Présentation de l'équilibreur de charge d'application externe
- Certificats SSL
- Nettoyer une configuration d'équilibrage de charge