Configurer un équilibreur de charge d'application externe global avec un service de backend interprojet et bucket backend

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 (roles/compute.loadBalancerServiceUser) à l'administrateur du projet A pour autoriser l'accès au service de backend et au bucket backend du projet B. Ce rôle peut être attribué au niveau du projet ou des ressources.

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 :

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

  2. 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.
  3. Cliquez sur Créer un projet.
  4. 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.
  5. 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.
  6. Une fois les détails du nouveau projet renseignés, cliquez sur Créer.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

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

Un équilibreur de charge d'application interne interrégional envoie du trafic vers un service de backend Cloud Storage et un bucket backend situés dans un autre projet.
Déploiement inter-projets (cliquez pour agrandir).

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
  • Adresse IP
  • Certificat SSL
  • Mappage d'URL
  • Proxy cible
  • Règle de transfert
  • Réseau VPC
  • Sous-réseau
  • Service de backend

    Le service de backend fait référence aux instances de backend d'un groupe d'instances. Les ressources suivantes sont utilisées pour créer les instances de backend. Pour cet exemple, les instances backend sont créées dans un sous-réseau nommé lb-backend-subnet dans la région us-west1.

    • Modèle d'instance
    • Groupe d'instances
    • Vérification de l'état
    • Règle de pare-feu
  • Bucket backend
    • Le bucket backend fait référence à un bucket Cloud Storage.

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égion us-west1 utilise 10.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

  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, définissez le Mode de création du sous-réseau sur Personnalisé.

  5. 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
  6. Cliquez sur OK.

  7. Cliquez sur Créer.

gcloud

  1. Créez un réseau VPC personnalisé, nommé lb-network, à l'aide de la commande gcloud compute networks create.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=PROJECT_B_ID
    
  2. Créez un sous-réseau dans le réseau VPC lb-network de la région us-west1 à l'aide de la commande gcloud 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

  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 Mise en réseau et configurez les champs suivants :

    1. Pour Tags réseau, saisissez load-balanced-backend.
    2. 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
    3. Cliquez sur Terminé.
  7. 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' \
    
  8. Cliquez sur Créer.

gcloud

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

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

  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=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 Clouddans 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 il doit s'appliquer.

Console

  1. Dans la console Google Cloud , accédez à la page Règles de pare-feu.

    Accéder aux stratégies de pare-feu

  2. 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 et 35.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.
  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'é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

  1. Dans la console Google Cloud , 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. 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 BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=HEALTH_CHECK_NAME \
        --global \
        --project=PROJECT_B_ID
    
  2. 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:

  1. Créez le bucket Cloud Storage.
  2. Copiez le contenu dans le bucket.
  3. Rendez le bucket accessible au public.
  4. Créez un bucket backend et pointez-le vers le bucket Cloud Storage.

Créer un bucket Cloud Storage

Console

  1. Dans la console Google Cloud , accédez à la page Buckets (Buckets) Cloud Storage.

    Accéder à la page "Buckets"

  2. Cliquez sur  Créer.

  3. Dans le champ Nommer votre bucket, saisissez un nom unique qui respecte les consignes de dénomination.

  4. Cliquez sur Choisir où stocker vos données.

  5. Définissez le Type d'emplacement sur Région.

  6. Dans la liste des régions, sélectionnez us-east1.

  7. Cliquez sur Créer.

gcloud

  1. Créez un bucket dans la région us-east1 à l'aide de la commande gcloud 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 :

  1. Dans la console Google Cloud , accédez à la page Buckets (Buckets) Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom de celui que vous souhaitez rendre public.

  3. Sélectionnez l'onglet Autorisations en haut de la page.

  4. Dans la section Autorisations, cliquez sur le bouton Accorder l'accès. La boîte de dialogue Accorder l'accès s'affiche.

  5. Dans le champ Nouveaux comptes principaux, saisissez allUsers.

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

  7. Cliquez sur Enregistrer.

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

  1. Dans la console Google Cloud , 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 bucket backend.

  4. Saisissez un nom pour votre bucket backend.

  5. Sélectionnez un bucket Cloud Storage vers lequel pointer votre bucket backend.

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

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

  1. Dans la console Google Cloud , 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 un nom pour votre équilibreur de charge.
  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.
  3. Définissez le paramètre Protocole sur HTTP.
  4. Sélectionnez l'adresse IP que vous avez créée dans la section Réserver l'adresse IP de l'équilibreur de charge.
  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.

  1. Cliquez sur Configuration de l'interface.
  2. Saisissez un nom pour la règle de transfert.
  3. Dans le champ Protocole, sélectionnez HTTPS (includes HTTP/2).
  4. Sélectionnez l'adresse IP que vous avez créée dans la section Réserver l'adresse IP de l'équilibreur de charge.
  5. Assurez-vous que le port est défini sur la valeur 443 pour autoriser le trafic HTTPS.
  6. Cliquez sur la liste Certificat.
  7. Sélectionnez le nom du certificat SSL que vous avez créé précédemment.
  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 du projet B.
  4. Dans la liste Sélectionner des services backend, sélectionnez le service de backend du projet B que vous souhaitez utiliser.
  5. Cliquez sur OK.

Configurer les règles de routage

  1. Cliquez sur Règles de routage.

  2. Pour le mode, sélectionnez Règle d'hôte et de chemin d'accès avancée.

  3. Sélectionnez Ajouter une règle d'hôte et de chemin d'accès.

  4. Dans le champ Hosts (Hôtes), saisissez * pour faire correspondre tous les noms d'hôte.

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

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

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

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

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

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