Configurer un équilibreur de charge d'application externe global avec un VPC partagé

Ce document présente deux exemples de configuration pour la configuration d'un équilibreur de charge d'application externe global avec des backends de groupes d'instances de VM dans un environnement VPC partagé :

  • Dans le premier exemple, les composants d'interface et de backend de l'équilibreur de charge sont créés dans un projet de service.
  • Dans le deuxième exemple, les composants d'interface et le mappage d'URL de l'équilibreur de charge sont créés dans un projet de service, tandis que le service de backend et les backends de l'équilibreur de charge sont créés dans un service différent. Ce type de déploiement, où le mappage d'URL d'un projet fait référence à un service de backend d'un autre projet, est appelé référence de services inter-projets.

Les deux exemples nécessitent la même configuration initiale pour accorder des autorisations, configurer le réseau et le sous-réseau dans le projet hôte et configurer un VPC partagé avant de pouvoir commencer à créer des équilibreurs de charge.

Ce ne sont pas les seules configurations de VPC partagé compatibles avec l'équilibreur de charge d'application externe global. Pour découvrir d'autres architectures de VPC partagé valides, consultez la page Architecture de VPC partagé.

Si vous ne souhaitez pas utiliser de réseau VPC partagé, consultez la page Configurer un équilibreur de charge d'application externe global avec des backends de groupes d'instances de VM.

Avant de commencer

Autorisations requises

La configuration d'un équilibreur de charge sur un réseau VPC partagé nécessite une configuration et un provisionnement initiaux par un administrateur. Une fois la configuration initiale terminée, un propriétaire de projet de service peut effectuer l'une des opérations suivantes :

  • Déployer tous les composants de l'équilibreur de charge et ses backends dans un projet de service.
  • Déployer les composants backend de l'équilibreur de charge (service de backend et backends) dans des projets de service pouvant être référencés par un mappage d'URL dans un autre service ou projet hôte.

Cette section récapitule les autorisations requises pour suivre ce guide afin de configurer un équilibreur de charge sur un réseau VPC partagé.

Configurer un VPC partagé

Les rôles suivants sont requis pour les tâches suivantes :

  1. effectuer des tâches d'administration ponctuelles, telles que la configuration du VPC partagé et l'activation d'un projet hôte ;
  2. effectuer des tâches d'administration qui doivent être répétées chaque fois que vous souhaitez intégrer un nouveau projet de service. Cela inclut le rattachement du projet de service, le provisionnement et la configuration des ressources réseau, ainsi que l'attribution de l'autorisation d'accès à l'administrateur du projet de service.

Ces tâches doivent être effectuées dans le projet hôte du VPC partagé. Il est préférable que l'administrateur du VPC partagé soit également le propriétaire du projet hôte du VPC partagé. Les rôles d'administrateur réseau et d'administrateur de sécurité seront ainsi attribués automatiquement.

Tâche Rôle requis
Configurer le VPC partagé, activer le projet hôte et accorder l'accès aux administrateurs de projet de service Administrateur de VPC partagé
Créer des sous-réseaux dans le projet hôte de VPC partagé et accorder l'accès aux administrateurs de projet de service Administrateur réseau
Ajouter et supprimer des règles de pare-feu Administrateur de sécurité

Une fois les sous-réseaux provisionnés, le propriétaire du projet hôte doit attribuer le rôle d'utilisateur de réseau dans le projet hôte à toute personne (généralement des administrateurs de projet de service, des développeurs ou des comptes de service) ayant besoin d'utiliser ces ressources.

Tâche Rôle requis
Utiliser des réseaux et sous-réseaux VPC appartenant au projet hôte Utilisateur du réseau

Ce rôle peut être attribué au niveau du projet ou pour des sous-réseaux individuels. Nous vous recommandons d'attribuer le rôle pour les sous-réseaux individuels. En effet, l'attribution du rôle au niveau du projet permet d'accéder à tous les sous-réseaux actuels et futurs du réseau VPC du projet hôte.

Déployer un équilibreur de charge et des backends

Les administrateurs de projet de service ont besoin des rôles suivants dans le projet de service pour créer des ressources et des backends d'équilibrage de charge. Ces autorisations sont accordées automatiquement au propriétaire ou à l'éditeur du projet de service.

Rôles attribués dans le projet de service
Tâche Rôle requis
Créer des composants pour l'équilibreur de charge Administrateur réseau
Créer des instances Administrateur d'instances
Créer et modifier des certificats SSL Administrateur de sécurité

Référencer des services de backend multiprojets

Si votre équilibreur de charge doit référencer des services de backend d'autres projets de service, également appelés références de services multiprojets, les administrateurs de l'équilibreur de charge ont besoin du rôle suivant dans le projet de service dans lequel le service de backend est créé.

Rôles attribués dans le projet de service
Tâche Rôle requis
Autorisations permettant d'utiliser des services dans d'autres projets Utilisateur des services d'équilibreur de charge

Ce rôle peut être attribué au niveau du projet ou pour des services de backend individuels. Pour savoir comment attribuer ce rôle, consultez l'exemple de référence de service multiprojet sur cette page.

Pour plus d'informations sur IAM, consultez les guides suivants :

Prérequis

Dans cette section, vous devez effectuer les étapes suivantes :

  1. Configurer le réseau et les sous-réseaux dans le projet hôte.
  2. Configurer un VPC partagé dans le projet hôte.

Il n'est pas nécessaire de suivre les étapes de cette section chaque fois que vous souhaitez créer un équilibreur de charge. Toutefois, vous devez vous assurer que vous avez accès aux ressources décrites ici avant de créer l'équilibreur de charge.

Configurer le réseau et les sous-réseaux dans le projet hôte

Vous avez besoin d'un réseau VPC partagé avec un sous-réseau pour les backends de l'équilibreur de charge.

Cet exemple utilise le réseau, la région et le sous-réseau suivants :

  • Réseau Le réseau est nommé lb-network.

  • Sous-réseau pour les backends de l'équilibreur de charge. Un sous-réseau nommé lb-backend-subnet dans la région us-west1 utilise 10.1.2.0/24 pour sa plage d'adresses IP principale.

Configurer le sous-réseau pour les backends de l'équilibreur de charge

Il n'est pas nécessaire de suivre les étapes de cette section chaque fois que vous souhaitez créer un équilibreur de charge. Vous devez simplement vous assurer que le projet de service a accès à un sous-réseau du réseau VPC partagé.

Toutes les étapes de cette section doivent être effectuées dans le projet hôte.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Cliquez sur Créer un réseau VPC.
  3. Dans le champ Nom, saisissez lb-network.
  4. Dans la section Sous-réseaux :

    1. Définissez Mode de création du sous-réseau sur Personnalisé.
    2. Dans la section Nouveau sous-réseau, saisissez les informations suivantes :

      • Nom : lb-backend-subnet
      • Région : us-west1

      • Plage d'adresses IP : 10.1.2.0/24

    3. Cliquez sur OK.

  5. Cliquez sur Créer.

gcloud

  1. Créez un réseau VPC à l'aide de la commande gcloud compute networks create :

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Créez un sous-réseau sur le réseau lb-network, dans la région us-west1 :

    gcloud compute networks subnets create lb-backend-subnet 
    --network=lb-network
    --range=10.1.2.0/24
    --region=us-west1

Autoriser les administrateurs de projet de service à accéder au sous-réseau backend

Les administrateurs de projet de service ont besoin d'accéder au sous-réseau lb-backend-subnet pour pouvoir provisionner les backends de l'équilibreur de charge.

Un administrateur du VPC partagé doit accorder l'accès au sous-réseau backend aux administrateurs du projet de service (ou aux développeurs qui déploieront des ressources et des backends qui exploitent le sous-réseau). Pour obtenir des instructions, consultez la section Administrateurs de projet de service pour certains sous-réseaux.

Configurer des règles de pare-feu dans le projet hôte

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 Cloud dans 130.211.0.0/22 et 35.191.0.0/16. Cet exemple utilise le tag cible load-balanced-backend pour identifier les instances auxquelles la règle doit s'appliquer.
Sans cette règle de pare-feu, la règle d'entrée interdite par défaut bloque les entrées au trafic vers les instances backend.

Toutes les étapes de cette section doivent être effectuées dans le projet hôte.

Console

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page "Stratégies de pare-feu"

  2. Cliquez sur Créer une règle de pare-feu pour créer la règle autorisant les vérifications d'état Google Cloud :
    • 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 et 35.191.0.0/16
    • Protocols and ports (Protocoles et ports) :
      • Choisissez Protocoles et ports spécifiés.
      • Vérifiez TCP et 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. Si vous utilisez tcp:80 pour le protocole et le port, Google Cloud peut contacter vos VM via HTTP sur le port 80, mais pas via HTTPS sur le port 443.

  3. Cliquez sur Créer.

gcloud

  1. Créez la règle de pare-feu fw-allow-health-check pour autoriser les vérifications d'état Google 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 fw-allow-health-check \
       --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
    

Configurer un VPC partagé dans le projet hôte

Cette étape consiste à activer un projet hôte de VPC partagé, à partager des sous-réseaux du projet hôte et à associer des projets de service au projet hôte afin que ces derniers puissent utiliser le réseau VPC partagé. Pour configurer un VPC partagé dans le projet hôte, consultez les pages suivantes :

Le reste de ces instructions suppose que vous avez déjà configuré un VPC partagé. Cela inclut de configurer des stratégies IAM pour votre organisation et de désigner les projets hôtes et de service.

Ne poursuivez pas tant que vous n'avez pas configuré le VPC partagé et activé les projets hôte et de service.

Après avoir suivi les étapes décrites dans cette section, vous pouvez effectuer l'une des configurations suivantes :

Configurer un équilibreur de charge dans un projet de service

Une fois que vous avez configuré le réseau VPC dans le projet hôte et configuré le VPC partagé, vous pouvez passer au projet de service dans lequel vous devez créer tous les composants d'équilibrage de charge (service de backend, mappage d'URL, proxy cible et règle de transfert) et les backends.

Dans cette section, nous partons du principe que vous avez effectué les étapes préalables décrites dans la section précédente du projet hôte. Dans cette section, les composants d'interface et de backend de l'équilibreur de charge, ainsi que les backends, sont créés dans un projet de service.

La figure suivante décrit les composants d'un équilibreur de charge d'application externe global dans un projet de service, qui est associé au projet hôte dans un réseau VPC partagé.

Les composants d'interface et backend de l'équilibreur de charge dans un projet de service
Figure 1. Les composants d'interface et backend de l'équilibreur de charge dans un seul projet de service

Ces étapes doivent être effectuées par l'administrateur du projet de service (ou un développeur opérant dans le projet de service) et ne nécessitent aucune intervention de l'administrateur du projet hôte. Les étapes de cette section sont semblables aux étapes standards de configuration d'un équilibreur de charge d'application externe global.

L'exemple de cette page définit explicitement une adresse IP réservée pour la règle de transfert de l'équilibreur de charge d'application externe global au lieu d'autoriser l'allocation d'une adresse IP éphémère. Nous vous recommandons de réserver les adresses IP pour les règles de transfert.

Créer un backend de groupe d'instances géré

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

Créer un modèle d'instance

  1. Dans la console Google Cloud, accédez à la page Modèles d'instances de Compute Engine.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Create instance template (Créer un modèle d'instance).

  3. Dans le champ Nom, saisissez backend-template.

  4. 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.

  5. Développez la section Options avancées.

  6. Développez la section Mise en réseau et, dans le champ Tags réseau, saisissez load-balanced-backend.

  7. Pour les Interfaces réseau, sélectionnez Réseaux partagés avec moi (depuis le projet hôte : HOST_PROJECT_ID).

  8. Dans la liste Sous-réseau partagé, sélectionnez le sous-réseau lb-backend-subnet du réseau lb-network.

  9. Développez la section Gestion, puis spécifiez le script de démarrage suivant dans le champ Automatisation :

     #! /bin/bash
     apt-get update
     apt-get install apache2 -y
     a2ensite default-ssl
     a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://metadata.google.internal/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2
    
  10. Cliquez sur Créer.

Créer un groupe d'instances géré

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances de Compute Engine.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur Créer un groupe d'instances.

  3. Dans les options, sélectionnez Nouveau groupe d'instances géré (sans état).

  4. Pour le nom du groupe d'instances, saisissez lb-backend.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. Cliquez sur Créer.

gcloud

  1. Créez un modèle d'instance :

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_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
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_ID
    
  2. 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 lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_ID
    
  3. Ajouter un port nommé au groupe d'instances :

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_PROJECT_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 d'é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

  1. Dans la console Google Cloud, accédez à la page Vérifications d'état de Compute Engine.

    Accéder à la page "Vérifications d'état"

  2. Pour le nom de la vérification d'état, saisissez lb-health-check.

  3. Définissez le protocole sur HTTP.

  4. 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=SERVICE_PROJECT_ID

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

  1. Dans la console Google Cloud, accédez à la page Adresses IP du VPC.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Réserver une adresse IP externe statique.

  3. Dans le champ Nom, saisissez lb-ipv4-1.

  4. Définissez Niveau de service réseau sur Premium.

  5. Définissez Version IP sur IPv4.

  6. Définissez Type sur Global.

  7. Cliquez sur Réserver.

gcloud

Créez une adresse IP externe statique globale.

gcloud compute addresses create lb-ipv4-1 \
  --ip-version=IPV4 \
  --network-tier=PREMIUM \
  --global
  --project=SERVICE_PROJECT_ID

Configurer une ressource de certificat SSL

Pour un équilibreur de charge qui utilise HTTPS comme protocole de requête et de réponse, créez une ressource de certificat SSL, comme décrit dans les ressources suivantes :

Nous vous recommandons d'utiliser un certificat géré par Google.

Cet exemple suppose que vous avez créé un certificat SSL nommé lb-ssl-cert. Le certificat SSL est associé au proxy cible que vous allez créer dans l'une des étapes suivantes.

Configurer l'équilibreur de charge

Cette section vous explique comment créer les ressources suivantes pour un équilibreur de charge d'application externe global :

  • Un service de backend avec un groupe d'instances géré en tant que backend
  • Mappage d'URL
  • Un certificat SSL (requis uniquement pour le trafic HTTPS)
  • Proxy cible
  • Règle de transfert

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 HTTPS, vous devez disposer d'une ressource de certificat SSL pour configurer le proxy. Nous vous recommandons d'utiliser un certificat géré par Google.

Console

Démarrer la configuration

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur Créer un équilibreur de charge.
  3. Dans le champ Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), puis cliquez sur Suivant.
  4. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
  5. 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.
  6. Pour Génération de l'équilibreur de charge, sélectionnez Équilibreur de charge d'application externe global, puis cliquez sur Suivant.
  7. Cliquez sur Configurer.

Configuration de base

  1. Attribuez le nom l7-xlb-shared-vpc à l'équilibreur de charge.

Configurer l'interface de l'équilibreur de charge

Pour le trafic HTTP :

  1. Cliquez sur Configuration de l'interface.

  2. Pour le nom de l'équilibreur de charge, saisissez http-fw-rule.

  3. Pour Protocole, sélectionnez HTTP.

  4. Définissez Version IP sur IPv4.

  5. Dans le champ Adresse IP, sélectionnez lb-ipv4-1, qui est l'adresse IP que vous avez réservée précédemment.

  6. Définissez le port sur 80 pour autoriser le trafic HTTP.

  7. Pour terminer la configuration de l'interface, cliquez sur OK.

  8. Vérifiez qu'une coche bleue apparaît à côté de Configuration de l'interface avant de continuer.

Pour le trafic HTTPS :

  1. Cliquez sur Configuration de l'interface.

  2. Pour le nom de l'équilibreur de charge, saisissez https-fw-rule.

  3. Dans le champ Protocole, sélectionnez HTTPS.

  4. Définissez Version IP sur IPv4.

  5. Dans le champ Adresse IP, sélectionnez lb-ipv4-1, qui est l'adresse IP que vous avez réservée précédemment.

  6. Définissez le port sur 443 pour autoriser le trafic HTTPS.

  7. Dans la liste Certificat, sélectionnez le Certificat SSL que vous avez créé.

  8. Pour terminer la configuration de l'interface, cliquez sur OK.

  9. Vérifiez qu'une coche bleue apparaît à côté de Configuration de l'interface avant de continuer.

Configurer le backend

  1. Cliquez sur Configuration du backend.

  2. Dans le menu Services de backend et buckets de backend, cliquez sur Créer un service de backend.

  3. Pour le nom du service de backend, saisissez lb-backend-service.

  4. Pour Type de backend, sélectionnez Groupe d'instances.

  5. Définissez Protocole sur HTTP.

  6. 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é.

  7. Pour ajouter des backends au service de backend, procédez comme suit :

    1. 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.

    2. Pour Numéros de ports, saisissez 80.

    3. Pour ajouter le backend, cliquez sur OK.

  8. 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.

  9. Pour créer le service de backend, cliquez sur Créer.

  10. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Configurer les règles de routage

  • Cliquez sur Règles de routage. Assurez-vous que lb-backend-service est le service de backend par défaut pour tous les hôtes et chemins sans correspondance.

Pour en savoir plus sur la gestion du trafic, consultez la page Configurer la gestion du trafic.

Vérifier et finaliser la configuration

  1. Cliquez sur Vérifier et finaliser.

  2. Vérifiez que les options Interface et Backend associées à l'équilibreur de charge sont configurées comme vous le souhaitez.

  3. Cliquez sur Créer, puis attendez que l'équilibreur de charge soit créé.

gcloud

  1. Créez un service de backend pour répartir le trafic entre les backends :

    gcloud compute backend-services create lb-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Ajoutez votre groupe d'instances en tant que backend au service de backend :

    gcloud compute backend-services add-backend lb-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_ID
    
  3. Créez un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend :

    gcloud compute url-maps create lb-map \
        --default-service=lb-backend-service \
        --global \
        --project=SERVICE_PROJECT_ID
    
  4. Créez un proxy cible.

    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 http-proxy \
        --url-map=lb-map \
        --global \
        --project=SERVICE_PROJECT_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 l'équilibrage de charge HTTPS. Vous chargez donc également votre certificat SSL à cette étape :

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --ssl-certificates=lb-ssl-cert
        --global \
        --project=SERVICE_PROJECT_ID
    
  5. Créez une règle de transfert.

    Pour le trafic HTTP, créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy cible :

    gcloud compute forwarding-rules create http-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-http-proxy=http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_ID
    

    Pour le trafic HTTPS, créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy cible :

    gcloud compute forwarding-rules create https-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_ID
    

Tester l'équilibreur de charge

Une fois que le service d'équilibrage de charge est en cours d'exécution, vous pouvez envoyer le trafic vers la règle de transfert et observer la répartition du trafic entre les différentes instances.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur l'équilibreur de charge que vous venez de créer.

  3. Notez l'adresse IP de l'équilibreur de charge. Dans les étapes suivantes, cette adresse IP est appelée LB_IP_ADDRESS.

  4. Dans la section Backend, vérifiez que les VM sont opérationnelles.

    La colonne Opérationnelles doit indiquer que les VM sont opérationnelles. Par exemple, si deux instances sont créées, vous devriez voir un message indiquant 2 of 2 avec une coche verte située à côté. Si ce n'est pas le cas, commencez par actualiser la page. Il peut s'écouler quelques minutes avant que la console Google Cloud n'indique que les VM sont opérationnelles. Si les backends ne semblent toujours pas opérationnels au bout de quelques minutes, vérifiez la configuration du pare-feu et le tag réseau attribué à vos VM de backend.

  5. Une fois que la console Google Cloud indique que les instances backend sont opérationnelles, vous pouvez tester votre équilibreur de charge en pointant votre navigateur Web vers https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Remplacez LB_IP_ADDRESS par l'adresse IP de l'équilibreur de charge.

  6. Si vous avez utilisé un certificat autosigné pour les tests HTTPS, votre navigateur affiche un avertissement. Vous devez explicitement lui indiquer d'accepter un certificat autosigné.

  7. Votre navigateur doit afficher une page dont le contenu indique le nom de l'instance ayant diffusé la page (par exemple, Page served from: lb-backend-example-xxxx). Si votre navigateur n'affiche pas cette page, vérifiez les paramètres de configuration dans ce guide.

gcloud

Notez l'adresse IP réservée :

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global

Vous pouvez tester votre équilibreur de charge en pointant votre navigateur Web vers https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Remplacez LB_IP_ADDRESS par l'adresse IP de l'équilibreur de charge.

Si vous avez utilisé un certificat autosigné pour les tests HTTPS, votre navigateur affiche un avertissement. Vous devez explicitement lui indiquer d'accepter un certificat autosigné.

Votre navigateur doit afficher une page contenant un minimum d'informations sur l'instance backend. Si votre navigateur n'affiche pas cette page, examinez les paramètres de configuration de ce guide.

Configurer un équilibreur de charge avec un service de backend multiprojet

Cette section explique comment configurer un équilibreur de charge avec un service de backend inter-projet dans un environnement VPC partagé.

Avant de commencer

L'exemple précédent de cette page vous explique comment configurer un déploiement de VPC partagé dans lequel tous les composants de l'équilibreur de charge et ses backends sont créés dans un projet de service. Les équilibreurs de charge d'application externes globaux vous permettent également de configurer des déploiements de VPC partagé dans lesquels un mappage d'URL d'un projet hôte ou de service fait référence à des services de backend (et à des backends) situés sur plusieurs projets de service dans l'environnement VPC partagé.

Vous pouvez utiliser les étapes de cette section comme référence pour configurer l'une des combinaisons compatibles répertoriées ici :

  • Règle de transfert, proxy cible et mappage d'URL dans le projet hôte, et service de backend dans un projet de service
  • Règle de transfert, proxy cible et mappage d'URL dans un projet de service, et service de backend dans un autre projet de service

Bien que cette section utilise un environnement VPC partagé pour configurer un déploiement multiprojet, un tel environnement n'est pas obligatoire. Pour les équilibreurs de charge d'application externes globaux, l'interface de votre équilibreur de charge peut référencer des services de backend ou des buckets de backend de n'importe quel projet de la même organisation.

Configuration requise

Si vous ne l'avez pas déjà fait, vous devez suivre toutes les étapes préalables pour configurer le VPC partagé ainsi que les réseaux, les sous-réseaux et les règles de pare-feu requis pour cet exemple. Pour obtenir des instructions, consultez les sections suivantes au début de cette page :

Dans cette configuration, la règle de transfert, le proxy cible et le mappage d'URL se trouvent dans un projet de service, et le service de backend et les backends sont situés dans un autre projet de service.

  1. Dans le projet de service B, vous allez configurer les ressources backend suivantes :
    • Backend de groupe d'instances géré
    • Vérification de l'état
    • Service de backend global
  2. Dans le projet de service A, vous allez configurer les ressources d'interface suivantes :
    • Adresse IP
    • Certificat SSL
    • Mappage d'URL
    • Proxy cible
    • Règle de transfert

La figure suivante illustre un équilibreur de charge d'application externe global dans lequel le service de backend de l'équilibreur de charge d'un projet de service est référencé par un mappage d'URL dans un autre projet de service.

Les composants d'interface et backend de l'équilibreur de charge dans différents projets de service
Figure 2. Interface et backend de l'équilibreur de charge dans différents projets de service

Le référencement de services inter-projets avec un équilibreur de charge d'application externe global ne nécessite pas que les instances backend fassent partie du même réseau VPC ou d'un réseau VPC partagé.

Dans cet exemple, les VM de backend du projet de service font partie du réseau VPC partagé créé dans le projet hôte. Toutefois, vous pouvez également configurer un réseau VPC autonome (c'est-à-dire un réseau VPC non partagé) avec les règles de pare-feu requises, dans un projet de service. Vous pouvez ensuite créer des instances backend (par exemple, un groupe d'instances) faisant partie de ce réseau VPC autonome. Après avoir créé les instances backend, vous pouvez suivre les étapes restantes, comme illustré dans cet exemple, pour créer un service de backend dans le projet de service et le connecter à un mappage d'URL dans un autre projet de service à l'aide du référencement de services inter-projets.

Configurer les composants backend de l'équilibreur de charge dans le projet de service B

Dans cette section, vous devez configurer les ressources backend suivantes dans le projet de service B :

  • Groupe d'instances géré
  • Vérification de l'état
  • Service de backend global

Créer un backend de groupe d'instances géré

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

Créer un modèle d'instance

  1. Dans la console Google Cloud, accédez à la page Modèles d'instances de Compute Engine.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Create instance template (Créer un modèle d'instance).

  3. Dans le champ Nom, saisissez backend-template.

  4. 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.

  5. Développez la section Options avancées.

  6. Développez la section Mise en réseau et, dans le champ Tags réseau, saisissez load-balanced-backend.

  7. Pour les Interfaces réseau, sélectionnez Réseaux partagés avec moi (depuis le projet hôte : HOST_PROJECT_ID)).

  8. Dans la liste Sous-réseau partagé, sélectionnez le sous-réseau lb-backend-subnet du réseau lb-network.

  9. Développez la section Gestion, puis spécifiez le script de démarrage suivant dans le champ Automatisation :

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
    
  10. Cliquez sur Créer.

Créer un groupe d'instances géré

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances de Compute Engine.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur Créer un groupe d'instances.

  3. Dans les options, sélectionnez Nouveau groupe d'instances géré (sans état).

  4. Pour le nom du groupe d'instances, saisissez lb-backend.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. Cliquez sur Créer.

gcloud

  1. Créez un modèle d'instance :

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_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
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_B_ID
    
  2. 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 lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_B_ID
    
  3. Ajouter un port nommé au groupe d'instances :

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_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 d'é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

  1. Dans la console Google Cloud, accédez à la page Vérifications d'état de Compute Engine.

    Accéder à la page "Vérifications d'état"

  2. Pour le nom de la vérification d'état, saisissez lb-health-check.

  3. Définissez le protocole sur HTTP.

  4. 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=SERVICE_PROJECT_B_ID

Créer un service de backend à l'échelle mondiale

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 d'é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

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Accédez à la section Backends.

  3. Cliquez sur Créer un service de backend.

  4. Dans Service de backend global, cliquez sur le bouton Créer situé à côté.

  5. Pour le nom du service de backend, saisissez cross-ref-backend-service.

  6. Pour Type de backend, sélectionnez Groupe d'instances.

  7. Définissez Protocole sur HTTP.

  8. 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é.

  9. Pour ajouter des backends au service de backend, procédez comme suit :

    1. 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.

    2. Pour Numéros de ports, saisissez 80.

    3. Pour ajouter le backend, cliquez sur OK.

  10. 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.

  11. Facultatif: dans la section Ajouter des autorisations, saisissez les comptes principaux IAM d'autres projets (généralement une adresse e-mail) disposant du rôle Administrateur de l'équilibreur de charge Compute (roles/compute.loadBalancerAdmin) afin qu'ils puissent utiliser ce service de backend pour les équilibreurs de charge dans leurs propres projets. Sans cette autorisation, vous ne pouvez pas utiliser le référencement des services multiprojets.

    Si vous n'êtes pas autorisé à définir des stratégies de contrôle des accès pour les services backend de ce projet, vous pouvez toujours créer le service backend maintenant. Un utilisateur autorisé pourra effectuer cette étape ultérieurement, comme décrit dans la section Accorder des autorisations à l'administrateur de l'équilibreur de charge Compute pour utiliser le service backend. Cette section explique également comment accorder l'accès à tous les services de backend de ce projet, afin de ne pas avoir à le faire chaque fois que vous créez un service de backend.

  12. Pour créer le service de backend, cliquez sur Créer.

gcloud

  1. Créez un service de backend global pour répartir le trafic entre les backends :

    gcloud compute backend-services create cross-ref-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Ajoutez votre groupe d'instances en tant que backend au service de backend :

    gcloud compute backend-services add-backend cross-ref-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_B_ID
    

Configurer les composants d'interface de l'équilibreur de charge dans le projet de service A

Dans cette section, vous devez configurer les ressources d'interface suivantes dans le projet de service 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

  1. Dans la console Google Cloud, accédez à la page Adresses IP du VPC.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Réserver une adresse IP externe statique.

  3. Dans le champ Nom, saisissez cross-ref-ip-address.

  4. Définissez Niveau de service réseau sur Premium.

  5. Définissez Version IP sur IPv4.

  6. Définissez Type sur Global.

  7. Cliquez sur Réserver.

gcloud

Créez une adresse IP externe statique globale.

gcloud compute addresses create cross-ref-ip-address \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=SERVICE_PROJECT_A_ID

Configurer une ressource de certificat SSL

Pour un équilibreur de charge qui utilise HTTPS comme protocole de requête et de réponse, créez une ressource de certificat SSL, comme décrit dans les ressources suivantes :

Nous vous recommandons d'utiliser un certificat géré par Google.

Cet exemple suppose que vous avez créé un certificat SSL nommé lb-ssl-cert. Le certificat SSL est associé au proxy cible que vous allez créer dans l'une des étapes suivantes.

Créer les composants d'interface

Console

Démarrer la configuration

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur Créer un équilibreur de charge.
  3. Dans le champ Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), puis cliquez sur Suivant.
  4. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
  5. 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.
  6. Pour Génération de l'équilibreur de charge, sélectionnez Équilibreur de charge d'application externe global, puis cliquez sur Suivant.
  7. Cliquez sur Configurer.

Configuration de base

  1. Saisissez le nom de l'équilibreur de charge : cross-ref-lb-shared-vpc.
  2. Laissez la page ouverte pour continuer.

Configurer l'interface

Pour HTTP :

  1. Cliquez sur Configuration de l'interface.
  2. Saisissez un nom pour la règle de transfert : cross-ref-http-forwarding-rule.
  3. Définissez le paramètre Protocole sur HTTP.
  4. Sélectionnez l'adresse IP que vous avez créée à la section Réserver l'adresse IP de l'équilibreur de charge, appelée cross-ref-ip-address.
  5. Définissez le paramètre Port sur 80.
  6. 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. Les certificats gérés par Google ne sont pas compatibles avec les équilibreurs de charge d'application externes régionaux.

  1. Cliquez sur Configuration de l'interface.
  2. Saisissez un nom pour la règle de transfert : cross-ref-https-forwarding-rule.
  3. Dans le champ Protocole, sélectionnez HTTPS (includes HTTP/2).
  4. Sélectionnez l'adresse IP que vous avez créée à la section Réserver l'adresse IP de l'équilibreur de charge, appelée cross-ref-ip-address.
  5. Assurez-vous que le port est défini sur la valeur 443 pour autoriser le trafic HTTPS.
  6. Cliquez sur la liste Certificat.
    1. Si vous possédez déjà une ressource de certificat SSL autogérée que vous souhaitez utiliser comme certificat SSL principal, sélectionnez-la dans le menu déroulant.
    2. Sinon, sélectionnez Créer un certificat.
      1. Saisissez un nom pour le certificat SSL.
      2. Dans les champs appropriés, importez vos fichiers au format PEM :
        • Certificat de clé publique
        • Chaîne de certificats
        • Clé privée
      3. Cliquez sur Créer.
  7. Pour ajouter des ressources de certificat en plus de la ressource de certificat SSL principale, procédez comme suit :
    1. Cliquez sur Ajouter un certificat.
    2. Sélectionnez un certificat dans la liste Certificats ou cliquez sur Créer un certificat, puis suivez les instructions précédentes.
  8. Cliquez sur OK.

Configurer le backend

  1. Cliquez sur Configuration du backend.
  2. Cliquez sur Services de backend multiprojets.
  3. Dans le champ ID du projet, saisissez l'ID du projet de service B.
  4. Dans la liste Sélectionner des services backend, sélectionnez les services backend du projet de service B que vous souhaitez utiliser. Dans cet exemple, vous saisissez cross-ref-backend-service.
  5. Cliquez sur OK.

Configurer les règles de routage

  • Cliquez sur Règles de routage. Assurez-vous que le service cross-ref-backend-service est le seul service de backend pour tous les hôtes et chemins sans correspondance.

Pour en savoir plus sur la gestion du trafic, consultez la page Configurer la gestion du trafic.

Vérifier et finaliser la configuration

  • Cliquez sur Créer.

gcloud

  1. Facultatif: Avant de créer un équilibreur de charge avec des services de backend croisés, vérifiez si les services de backend auxquels vous souhaitez faire référence peuvent être référencés à l'aide d'un mappage d'URL:

    gcloud compute backend-services list-usable \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Créez un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend :

    gcloud compute url-maps create cross-ref-url-map \
        --default-service=projects/SERVICE_PROJECT_B_ID/global/backendServices/cross-ref-backend-service \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  3. Créez un proxy cible.

    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 cross-ref-http-proxy \
        --url-map=cross-ref-url-map \
        --global \
        --project=SERVICE_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 l'équilibrage de charge HTTPS. Vous chargez donc également votre certificat SSL à cette étape :

    gcloud compute target-https-proxies create cross-ref-https-proxy \
        --url-map=cross-ref-url-map \
        --ssl-certificates=lb-ssl-cert \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  4. Créez une règle de transfert.

    Pour le trafic HTTP, créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy cible :

    gcloud compute forwarding-rules create cross-ref-http-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-http-proxy=cross-ref-http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_A_ID
    

    Pour le trafic HTTPS, créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy cible :

    gcloud compute forwarding-rules create cross-ref-https-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-https-proxy=cross-ref-https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_A_ID
    

Accorder des autorisations à l'administrateur de l'équilibreur de charge Compute pour utiliser le service de backend

Si vous souhaitez que les équilibreurs de charge référencent des services de backend dans d'autres projets de service, l'administrateur de l'équilibreur de charge doit disposer de l'autorisation compute.backendServices.use. Pour accorder cette autorisation, vous pouvez utiliser le rôle IAM prédéfini appelé Utilisateur des services de l'équilibreur de charge Compute (roles/compute.loadBalancerServiceUser). Ce rôle doit être attribué par l'administrateur de projet de service et peut être appliqué au niveau du projet ou au niveau du service de backend.

Cette étape n'est pas nécessaire si vous avez déjà accordé les autorisations requises au niveau du service de backend lors de la création du service de backend. Vous pouvez ignorer cette section ou continuer à lire pour savoir comment accorder l'accès à tous les services de backend de ce projet, afin de ne pas avoir à le faire chaque fois que vous créez un backend.

Dans cet exemple, un administrateur de projet de service du projet B doit exécuter l'une des commandes suivantes pour accorder l'autorisation compute.backendServices.use à un administrateur de l'équilibreur de charge du projet de service A. Cette opération peut être effectuée au niveau du projet (pour tous les services de backend du projet) ou par service de backend.

Console

Autorisations au niveau du projet

Procédez comme suit pour accorder des autorisations à tous les services de backend de votre projet.

Vous avez besoin des autorisations compute.backendServices.setIamPolicy et resourcemanager.projects.setIamPolicy pour effectuer cette étape.

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez votre projet.

  3. Cliquez sur Accorder l'accès.

  4. Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail du compte principal ou un autre identifiant.

  5. Dans la liste Sélectionner un rôle, sélectionnez Utilisateur des services d'équilibrage de charge Compute.

  6. Facultatif : ajoutez une condition au rôle.

  7. Cliquez sur Enregistrer.

Autorisations au niveau des ressources pour des services de backend individuels

Procédez comme suit pour accorder des autorisations à chaque service de backend de votre projet.

Vous devez disposer de l'autorisation compute.backendServices.setIamPolicy pour effectuer cette étape.

  1. Dans la console Google Cloud, accédez à la page Backends.

    Accéder à la page Backends

  2. Dans la liste des backends, sélectionnez le service de backend auquel vous souhaitez accorder l'accès, puis cliquez sur Autorisations.

  3. Cliquez sur Ajouter un compte principal.

  4. Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail du compte principal ou un autre identifiant.

  5. Dans la liste Sélectionner un rôle, sélectionnez Utilisateur des services d'équilibrage de charge Compute.

  6. Cliquez sur Enregistrer.

gcloud

Autorisations au niveau du projet

Procédez comme suit pour accorder des autorisations à tous les services de backend de votre projet.

Vous avez besoin des autorisations compute.backendServices.setIamPolicy et resourcemanager.projects.setIamPolicy pour effectuer cette étape.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser"

Autorisations au niveau des ressources pour des services de backend individuels

Au niveau du service de backend, les administrateurs de projet de service peuvent utiliser l'une des commandes suivantes pour attribuer le rôle d'utilisateur des services de l'équilibreur de charge Compute (roles/compute.loadBalancerServiceUser).

Vous devez disposer de l'autorisation compute.backendServices.setIamPolicy pour effectuer cette étape.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'

ou

gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --project=SERVICE_PROJECT_B_ID \
    --region=us-west1

Pour utiliser ces commandes, remplacez LOAD_BALANCER_ADMIN par le compte principal de l'utilisateur, par exemple test-user@gmail.com.

Vous pouvez également configurer des autorisations IAM afin qu'elles ne s'appliquent qu'à un sous-ensemble de services de backend régionaux, en utilisant des conditions et en spécifiant des attributs de condition.

Tester l'équilibreur de charge

La configuration de l'équilibreur de charge peut prendre plusieurs minutes. Une fois que le service d'équilibrage de charge est en cours d'exécution, vous pouvez envoyer le trafic vers la règle de transfert dans le projet de service A et observer la répartition du trafic entre les différentes instances de VM dans le projet de service B.

Console

  1. Dans la console Google Cloud, accédez à la page Équilibrage de charge du projet de service A.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur l'équilibreur de charge que vous venez de créer.

  3. Notez l'adresse IP de l'équilibreur de charge. Dans les étapes suivantes, cette adresse IP est appelée LB_IP_ADDRESS.

  4. Vous pouvez tester votre équilibreur de charge en pointant votre navigateur Web vers https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Remplacez LB_IP_ADDRESS par l'adresse IP de l'équilibreur de charge.

  5. Si vous avez utilisé un certificat autosigné pour les tests HTTPS, votre navigateur affiche un avertissement. Vous devez explicitement lui indiquer d'accepter un certificat autosigné.

  6. Votre navigateur doit afficher une page dont le contenu indique le nom de l'instance ayant diffusé la page (par exemple, Page served from: lb-backend-example-xxxx). Si votre navigateur n'affiche pas cette page, vérifiez les paramètres de configuration dans ce guide.

gcloud

Notez l'adresse IP réservée :

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global
    --project=SERVICE_PROJECT_A_ID

Vous pouvez tester votre équilibreur de charge en pointant votre navigateur Web vers https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Remplacez LB_IP_ADDRESS par l'adresse IP de l'équilibreur de charge.

Si vous avez utilisé un certificat autosigné pour les tests HTTPS, votre navigateur affiche un avertissement. Vous devez explicitement lui indiquer d'accepter un certificat autosigné.

Votre navigateur doit afficher une page contenant un minimum d'informations sur l'instance backend. Si votre navigateur n'affiche pas cette page, examinez les paramètres de configuration de ce guide.

Étapes suivantes