Configurer un équilibreur de charge d'application interne interrégional avec des buckets Cloud Storage dans un environnement VPC partagé

Ce document présente deux exemples de configuration pour la configuration d'un équilibreur de charge d'application interne interrégional dans un environnement VPC partagé avec des buckets Cloud Storage :

  • Le premier exemple crée tous les composants et les backends de l'équilibreur de charge dans un projet de service.
  • Le deuxième exemple crée les composants d'interface et le mappage d'URL de l'équilibreur de charge dans un projet de service, tandis que le bucket backend et les buckets Cloud Storage de l'équilibreur de charge sont créés dans un projet de service différent.

Les deux exemples nécessitent la même configuration initiale pour accorder les rôles requis et configurer un VPC partagé avant de pouvoir commencer à créer des équilibreurs de charge.

En plus des exemples de configuration mentionnés dans ce document, vous pouvez également configurer un déploiement de VPC partagé dans lequel l'interface et le mappage d'URL de l'équilibreur de charge sont créés dans le projet hôte, et les buckets de backend, ainsi que les buckets Cloud Storage, sont créés dans un projet de service. Pour en savoir plus sur les autres architectures de VPC partagé valides, consultez Architectures de VPC partagé.

Si vous ne souhaitez pas utiliser de réseau VPC partagé, consultez la page Configurer un équilibreur de charge d'application interne interrégional avec des buckets Cloud Storage.

Avant de commencer

Assurez-vous que votre configuration remplit les conditions préalables suivantes.

Créer des projets Google Cloud

Créez des Google Cloud projets pour un projet hôte et deux projets de service.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer un équilibreur de charge d'application externe régional dans un environnement VPC partagé avec des buckets Cloud Storage, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un environnement VPC partagé

Suivez les étapes ci-dessous dans le projet hôte pour configurer un environnement VPC partagé :

  1. Configurez les sous-réseaux pour les règles de transfert de l'équilibreur de charge.
  2. Configurez les sous-réseaux proxy réservés.
  3. Configurer une règle de pare-feu
  4. Configurez 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.

Le projet hôte utilise le réseau VPC, la région et les sous-réseaux suivants :

  • Réseau : le réseau est un réseau VPC en mode personnalisé nommé lb-network.

  • Sous-réseaux pour l'équilibreur de charge. Un sous-réseau nommé subnet-us dans la région us-east1 utilise 10.1.2.0/24 pour sa plage d'adresses IP principale. Un sous-réseau nommé subnet-asia dans la région asia-east1 utilise 10.1.3.0/24 pour sa plage d'adresses IP principale.

  • Sous-réseau pour les proxys Envoy. Un sous-réseau nommé proxy-only-subnet-us-east1 dans la région us-east1 utilise 10.129.0.0/23 pour sa plage d'adresses IP principale. Un sous-réseau nommé proxy-only-subnet-asia-east1 dans la région asia-east1 utilise 10.130.0.0/23 pour sa plage d'adresses IP principale.

Configurer les sous-réseaux pour les règles de transfert de l'équilibreur de charge

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, sélectionnez Personnalisé pour Mode de création du sous-réseau.

  5. Dans la section Nouveau sous-réseau, saisissez les informations suivantes :

    • Nom : subnet-us
    • Sélectionnez une région : us-east1.
    • Plage d'adresses IP : 10.1.2.0/24
  6. Cliquez sur OK.

  7. Cliquez sur Ajouter un sous-réseau.

  8. Créez un autre sous-réseau pour la règle de transfert de l'équilibreur de charge dans une autre région. Dans la section Nouveau sous-réseau, saisissez les informations suivantes :

    • Nom : subnet-asia
    • Région : asia-east1
    • Plage d'adresses IP : 10.1.3.0/24
  9. Cliquez sur OK.

  10. 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=HOST_PROJECT_ID
    
  2. Créez un sous-réseau nommé subnet-us dans le réseau VPC lb-network de la région us-east1 à l'aide de la commande gcloud compute networks subnets create.

    gcloud compute networks subnets create subnet-us \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-east1 \
        --project=HOST_PROJECT_ID
    
  3. Créez un sous-réseau nommé subnet-asia dans le réseau VPC lb-network de la région asia-east1 à l'aide de la commande gcloud compute networks subnets create.

    gcloud compute networks subnets create subnet-asia \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=asia-east1 \
        --project=HOST_PROJECT_ID
    

    Remplacez HOST_PROJECT_ID par l'Google Cloud ID de projet attribué au projet activé en tant que projet hôte dans un environnement VPC partagé.

Configurer les sous-réseaux proxy réservés

Un sous-réseau proxy réservé fournit un ensemble d'adresses IP utilisées par Google Cloud pour exécuter des proxys Envoy en votre nom. Les proxys interrompent les connexions du client et créent de nouvelles connexions vers les backends.

Ce sous-réseau proxy réservé est utilisé par tous les équilibreurs de charge régionaux basés sur Envoy dans la même région que le réseau VPC. Il ne peut y avoir qu'un seul sous-réseau proxy réservé actif pour une utilisation donnée, par région et par réseau. Dans cet exemple, nous créons deux sous-réseaux proxy réservés : l'un dans la région us-east1 et l'autre dans la région asia-east1.

Console

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

    Accéder aux réseaux VPC

  2. Cliquez sur le nom du réseau VPC que vous avez créé.

  3. Dans l'onglet Sous-réseau, cliquez sur Ajouter un sous-réseau.

  4. Saisissez les informations suivantes :

    • Dans le champ Nom, saisissez proxy-only-subnet-us.
    • Pour Région, saisissez us-east1.
    • Pour Objectif, sélectionnez Proxy géré interrégional.
    • Dans Plage d'adresses IP, saisissez 10.129.0.0/23.
  5. Cliquez sur Ajouter.

  6. Créez un autre sous-réseau proxy réservé dans la région asia-east1. Dans l'onglet Sous-réseau, cliquez sur Ajouter un sous-réseau.

  7. Saisissez les informations suivantes :

    • Dans le champ Nom, saisissez proxy-only-subnet-asia.
    • Pour Région, saisissez asia-east1.
    • Pour Objectif, sélectionnez Proxy géré interrégional.
    • Dans Plage d'adresses IP, saisissez 10.130.0.0/23.
  8. Cliquez sur Ajouter.

gcloud

  1. Créez un sous-réseau proxy réservé dans la région us-east1 à l'aide de la commande gcloud compute networks subnets create.

    Dans cet exemple, le sous-réseau proxy réservé est nommé proxy-only-subnet-us.

    gcloud compute networks subnets create proxy-only-subnet-us \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=us-east1 \
        --network=lb-network \
        --range=10.129.0.0/23 \
        --project=HOST_PROJECT_ID
    
  2. Créez un sous-réseau proxy réservé dans la région asia-east1 à l'aide de la commande gcloud compute networks subnets create.

    Dans cet exemple, le sous-réseau proxy réservé est nommé proxy-only-subnet-asia.

    gcloud compute networks subnets create proxy-only-subnet-asia \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=asia-east1 \
        --network=lb-network \
        --range=10.130.0.0/23 \
        --project=HOST_PROJECT_ID
    

    Remplacez HOST_PROJECT_ID par l'Google Cloud ID de projet attribué au projet hôte.

Configurer une règle de pare-feu

Cet exemple utilise une règle de pare-feu d'entrée qui autorise l'accès SSH sur le port 22 à la VM cliente. Dans cet exemple, cette règle de pare-feu est nommée fw-allow-ssh.

Console

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

    Accéder à la page Règles 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-ssh
    • Réseau : lb-network
    • Sens du trafic : entrée
    • Action en cas de correspondance : autoriser
    • Cibles : Tags cibles spécifiés
    • Tags cibles : allow-ssh
    • Filtre source : Plages IPv4
    • Plages IPv4 sources : 0.0.0.0/0
    • Protocoles et ports :
      • Choisissez Protocoles et ports spécifiés.
      • Cochez la case TCP, puis saisissez 22 pour le numéro de port.
  3. Cliquez sur Créer.

gcloud

  1. Créez une règle de pare-feu pour autoriser la connectivité SSH aux VM avec le tag réseau allow-ssh. Lorsque vous omettez --source-ranges,Google Cloud interprète la règle comme désignant n'importe quelle source.

    Dans cet exemple, la règle de pare-feu est nommée fw-allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22 \
        --project=HOST_PROJECT_ID
    

    Remplacez HOST_PROJECT_ID par l'Google Cloud ID de projet attribué au projet hôte.

Configurer un VPC partagé dans le projet hôte

Vous pouvez 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 :

Après avoir suivi les étapes précédentes, vous pouvez effectuer l'une des configurations suivantes :

Configurer un équilibreur de charge dans le projet de service

Cet exemple crée un équilibreur de charge d'application interne interrégional dans lequel tous les composants d'équilibrage de charge (règle de transfert, proxy cible, mappage d'URL et bucket backend) et les buckets Cloud Storage sont créés dans le projet de service.

Les ressources réseau de l'équilibreur de charge, telles que le sous-réseau VPC, le sous-réseau proxy réservé et la règle de pare-feu, sont créées dans le projet hôte.

Figure 1. Équilibreur de charge d'application interne interrégional dans un environnement VPC partagé avec des buckets Cloud Storage
Figure 1. Équilibreur de charge d'application interne interrégional dans un environnement VPC partagé avec des buckets Cloud Storage

Cette section vous explique comment configurer l'équilibreur de charge et les backends.

Les exemples de configuration de cette page définissent explicitement une adresse IP réservée pour la règle de transfert de l'équilibreur de charge, 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.

Configurer vos buckets Cloud Storage

Le processus de configuration des buckets Cloud Storage est le suivant :

  1. Créez les buckets Cloud Storage.
  2. Copiez le contenu dans les buckets Cloud Storage.
  3. Rendez les buckets Cloud Storage accessibles au public.

Créer les buckets Cloud Storage

Dans cet exemple, vous allez créer deux buckets Cloud Storage, l'un dans la région us-east1 et l'autre dans la région asia-east1. Pour les déploiements de production, nous vous recommandons de choisir un bucket multirégional, qui réplique automatiquement les objets sur plusieurs régions Google Cloud . Cela peut améliorer la disponibilité de votre contenu et augmenter la tolérance aux pannes au sein de votre application.

Console

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

    Accéder à la page "Buckets"

  2. Cliquez sur  Créer.

  3. Dans la section Premiers pas, saisissez un nom unique qui respecte les consignes de dénomination.

  4. Cliquez sur Choisissez 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.

  8. Cliquez sur Buckets pour revenir à la page des buckets Cloud Storage. Suivez ces instructions pour créer un second bucket, mais définissez le champ Emplacement sur asia-east1.

gcloud

  1. Créez le premier bucket dans la région us-east1 à l'aide de la commande gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    
  2. Créez le deuxième bucket dans la région asia-east1 à l'aide de la commande gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • BUCKET1_NAME et BUCKET2_NAME : noms de bucket Cloud Storage

    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service.

Copier du contenu dans les buckets Cloud Storage

Pour remplir les buckets Cloud Storage, copiez un fichier graphique depuis un bucket Cloud Storage public vers vos propres buckets Cloud Storage.

Exécutez les commandes suivantes dans Cloud Shell en remplaçant les variables de nom de bucket par vos noms de bucket Cloud Storage uniques :

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Remplacez BUCKET1_NAME et BUCKET2_NAME par les noms des buckets Cloud Storage.

Rendre les buckets Cloud Storage accessibles au public

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 de l'espace de stockage (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 de 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.

  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 de l'espace de stockage 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 gcloud storage buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Remplacez BUCKET1_NAME et BUCKET2_NAME par les noms des buckets Cloud Storage.

Réserver l'adresse IP de l'équilibreur de charge

Réservez une adresse IP interne statique pour les éléments suivants :

  • Règle de transfert dans la région us-east1
  • Règle de transfert dans la région asia-east1

Console

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

    Accédez à la page "Réserver une adresse statique"

  2. Cliquez sur Réserver une plage interne.

  3. Dans le champ Nom, saisissez un nom pour la nouvelle adresse.

  4. Pour Version IP, sélectionnez IPv4.

  5. Cliquez sur Réserver pour réserver l'adresse IP.

  6. Répétez ces étapes pour réserver une adresse IP dans la région asia-east1.

gcloud

  1. Pour réserver une adresse IP interne statique dans la région us-east1, utilisez la commande gcloud compute addresses create.

    gcloud compute addresses create ADDRESS1_NAME  \
       --region=us-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
       --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • ADDRESS1_NAME : nom que vous souhaitez attribuer à cette adresse IP
    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service
  2. Pour réserver une adresse IP interne statique dans la région asia-east1, utilisez la commande gcloud compute addresses create.

    gcloud compute addresses create ADDRESS2_NAME  \
       --region=asia-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
       --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • ADDRESS2_NAME : nom que vous souhaitez attribuer à cette adresse IP
    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service
  3. Utilisez la commande gcloud compute addresses describe pour afficher le résultat :

    gcloud compute addresses describe ADDRESS1_NAME \
       --project=SERVICE_PROJECT_ID
    
    gcloud compute addresses describe ADDRESS2_NAME \
       --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • ADDRESS1_NAME et ADDRESS2_NAME : nom que vous avez attribué aux adresses IP
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service

    L'adresse IP renvoyée est appelée RESERVED_IP_ADDRESS dans les sections suivantes.

Configurer une ressource de certificat SSL

Pour un équilibreur de charge d'application interne interrégional qui utilise HTTPS comme protocole de requête et de réponse, créez une ressource de certificat SSL à l'aide de Certificate Manager, comme décrit dans l'un des documents suivants :

Après avoir créé le certificat, vous pouvez l'associer au proxy cible HTTPS.

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

Configurer l'équilibreur de charge avec des buckets backend

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

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.

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 deux buckets de backend, un pour chaque bucket Cloud Storage, avec la commande gcloud compute backend-buckets create. Les buckets de backend ont un schéma d'équilibrage de charge INTERNAL_MANAGED.

    Dans cet exemple, les buckets de backend sont nommés backend-bucket-cats et backend-bucket-dogs, ce qui indique le contenu des buckets Cloud Storage.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • BUCKET1_NAME et BUCKET2_NAME : noms de bucket Cloud Storage

    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service.

  2. Créez un mappage d'URL pour acheminer les requêtes entrantes vers le bucket backend à l'aide de la commande gcloud compute url-maps create.

    Dans cet exemple, le mappage d'URL est nommé lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

  3. Configurez les règles d'hôte et de chemin d'accès du mappage d'URL à l'aide de la commande gcloud compute url-maps add-path-matcher.

    Dans cet exemple, le bucket backend par défaut est backend-bucket-cats, qui gère tous les chemins d'accès qu'il contient. Toutefois, toute requête ciblant http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg utilise le backend backend-bucket-dogs. Par exemple, si le dossier /love-to-fetch/ existe également dans votre backend par défaut (backend-bucket-cats), l'équilibreur de charge donne la priorité au backend backend-bucket-dogs, car il existe une règle de chemin d'accès spécifique pour /love-to-fetch/*.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \
        --default-backend-bucket=backend-bucket-cats
        --project=SERVICE_PROJECT_ID
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

  4. 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 nommé http-proxy pour 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
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

    Pour le trafic HTTPS, créez un proxy HTTPS cible nommé https-proxy 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 https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

  5. Créez deux règles de transfert globales, l'une avec une adresse IP dans la région us-east1 et l'autre avec une adresse IP dans la région asia-east1 à l'aide de la commande gcloud compute forwarding-rules create.

    Pour le trafic HTTP, créez les règles de transfert globales (http-fw-rule-1 et http-fw-rule-2) pour acheminer les requêtes entrantes vers le proxy HTTP cible :

    gcloud compute forwarding-rules create http-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create http-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • RESERVED_IP_ADDRESS : adresse IP que vous avez réservée
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service.

    Pour le trafic HTTPS, créez les règles de transfert globales (https-fw-rule-1 et https-fw-rule-2) pour acheminer les requêtes entrantes vers le proxy cible HTTPS :

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • RESERVED_IP_ADDRESS : adresse IP que vous avez réservée
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service.

Envoyer une requête HTTP à l'équilibreur de charge

Envoyez une requête depuis une VM cliente interne à la règle de transfert de l'équilibreur de charge.

Obtenir l'adresse IP de la règle de transfert de l'équilibreur de charge

Pour obtenir l'adresse IP de la règle de transfert de l'équilibreur de charge, procédez comme suit :

  1. Obtenez l'adresse IP de la règle de transfert de l'équilibreur de charge (http-fw-rule-1), qui se trouve dans la région us-east1.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Obtenez l'adresse IP de la règle de transfert de l'équilibreur de charge (http-fw-rule-2), qui se trouve dans la région asia-east1.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

    Copiez l'adresse IP renvoyée pour l'utiliser comme FORWARDING_RULE_IP_ADDRESS dans les étapes suivantes.

Créer une VM cliente pour tester la connectivité

Pour créer une VM cliente permettant de tester la connectivité, procédez comme suit :

  1. Créez une VM cliente nommée client-a dans la région us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • SERVICE_PROJECT_ID : ID du projet Google Cloud attribué au projet de service.
  2. Établissez une connexion SSH avec la VM cliente.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_ID
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

  3. Dans cet exemple, l'équilibreur de charge d'application interne interrégional possède des adresses IP virtuelles d'interface dans les régions us-east1 et asia-east1 du réseau VPC. Envoyez une requête HTTP au VIP dans l'une ou l'autre des régions à l'aide de curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Remplacez FORWARDING_RULE_IP_ADDRESS par l'adresse IP de la règle de transfert de l'équilibreur de charge.

Tester la haute disponibilité

Pour tester la haute disponibilité, procédez comme suit :

  1. Supprimez la règle de transfert (http-fw-rule-1) dans la région us-east1 pour simuler une panne régionale et vérifiez si le client de la région us-east peut toujours accéder aux données du bucket backend.

    gcloud compute forwarding-rules delete http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Remplacez SERVICE_PROJECT_ID par l'ID de projetGoogle Cloud attribué au projet de service.

  2. Envoyez une requête HTTP à l'adresse IP virtuelle de la règle de transfert dans l'une des régions à l'aide de curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Remplacez FORWARDING_RULE_IP_ADDRESS par l'adresse IP de la règle de transfert.

    Si vous envoyez une requête HTTP à l'adresse IP virtuelle dans la région us-east1, les règles de routage DNS détectent que cette adresse IP virtuelle ne répond pas et renvoient l'adresse IP virtuelle optimale suivante au client (dans cet exemple, asia-east1). Ce comportement permet de s'assurer que votre application reste opérationnelle même en cas de panne régionale.

Configurer un équilibreur de charge avec une configuration multiprojet

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 le projet de service.

Les équilibreurs de charge d'application internes interrégionaux 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 peut faire référence à des buckets de backend situés sur plusieurs projets de service dans des environnements VPC partagés.

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 bucket de backend dans un projet de service
  • Règle de transfert, proxy cible et mappage d'URL dans un projet de service, et bucket de backend dans un autre projet de service

Dans cette section, la dernière configuration est présentée à titre d'exemple.

Vue d'ensemble de la configuration

Cet exemple configure un équilibreur de charge avec son interface et son backend dans deux projets de service différents.

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 :

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

Configurer les buckets Cloud Storage et les buckets backend dans le projet de service B

Toutes les étapes de cette section doivent être effectuées dans le projet de service B.

Pour créer le bucket backend, procédez comme suit :

  1. Créez les buckets Cloud Storage.
  2. Copiez le contenu dans les buckets Cloud Storage.
  3. Rendez les buckets Cloud Storage accessibles au public.
  4. Créez les buckets de backend et pointez-les vers les buckets Cloud Storage.

Créer les buckets Cloud Storage

Dans cet exemple, vous allez créer deux buckets Cloud Storage, l'un dans la région us-east1 et l'autre dans la région asia-east1. Pour les déploiements de production, nous vous recommandons de choisir un bucket multirégional, qui réplique automatiquement les objets sur plusieurs régions Google Cloud . Cela peut améliorer la disponibilité de votre contenu et augmenter la tolérance aux pannes au sein de votre application.

Console

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

    Accéder à la page "Buckets"

  2. Cliquez sur  Créer.

  3. Dans la section Premiers pas, saisissez un nom unique qui respecte les consignes de dénomination.

  4. Cliquez sur Choisissez 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.

  8. Cliquez sur Buckets pour revenir à la page des buckets Cloud Storage. Suivez ces instructions pour créer un second bucket, mais définissez le champ Emplacement sur asia-east1.

gcloud

  1. Créez le premier bucket dans la région us-east1 à l'aide de la commande gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    
  2. Créez le deuxième bucket dans la région asia-east1 à l'aide de la commande gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    

Remplacez les éléments suivants :

  • BUCKET1_NAME et BUCKET2_NAME : noms des bucket Cloud Storage.

  • SERVICE_PROJECT_B_ID : ID du projet Google Cloud attribué au projet de service B.

Copier du contenu dans les buckets Cloud Storage

Pour remplir les buckets Cloud Storage, copiez un fichier graphique depuis un bucket Cloud Storage public vers vos propres buckets Cloud Storage.

Exécutez les commandes suivantes dans Cloud Shell en remplaçant les variables de nom de bucket par vos noms de bucket Cloud Storage uniques :

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Remplacez BUCKET1_NAME et BUCKET2_NAME par les noms des bucket Cloud Storage.

Rendre les buckets Cloud Storage accessibles au public

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 de l'espace de stockage (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 de 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.

  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 de l'espace de stockage 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 gcloud storage buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Remplacez BUCKET1_NAME et BUCKET2_NAME par les noms de bucket Cloud Storage.

Configurer l'équilibreur de charge avec des buckets backend

Pour créer les buckets de backend, procédez comme suit :

  1. Créez deux buckets de backend, un pour chaque bucket Cloud Storage, à l'aide de la commande gcloud compute backend-buckets create. Les buckets de backend ont un schéma d'équilibrage de charge INTERNAL_MANAGED.

    Dans cet exemple, les buckets de backend sont nommés backend-bucket-cats et backend-bucket-dogs, ce qui indique le contenu des buckets Cloud Storage.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    

    Remplacez les éléments suivants :

    • BUCKET1_NAME et BUCKET2_NAME : noms des bucket Cloud Storage.

    • SERVICE_PROJECT_B_ID : ID du projet Google Cloud attribué au projet de service B.

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

Toutes les étapes de cette section doivent être effectuées dans le projet de service A.

Dans le projet de service A, vous devez créer les composants d'équilibrage de charge d'interface suivants :

  • Ressource de certificat SSL associée au proxy cible. Pour créer le certificat SSL, vous pouvez suivre la procédure décrite dans la section précédente.
  • Deux adresses IP pour les deux règles de transfert de l'équilibreur de charge. Vous pouvez suivre les étapes décrites dans la section précédente pour créer les adresses IP des règles de transfert.
  • Mappage d'URL qui référence les buckets de backend dans le projet de service B
  • Proxy cible
  • Deux règles de transfert, chacune avec une adresse IP régionale.

Pour créer les composants de l'interface :

  1. Créez un mappage d'URL pour acheminer les requêtes entrantes vers le bucket backend à l'aide de la commande gcloud compute url-maps create.

    Dans cet exemple, le mappage d'URL est nommé lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

    • SERVICE_PROJECT_B_ID : ID du projet Google Cloud attribué au projet de service B

    • SERVICE_PROJECT_A_ID : ID du projet Google Cloud attribué au projet de service A

  2. Configurez les règles d'hôte et de chemin d'accès du mappage d'URL à l'aide de la commande gcloud compute url-maps add-path-matcher.

    Dans cet exemple, le bucket backend par défaut est backend-bucket-cats, qui gère tous les chemins d'accès qu'il contient. Toutefois, toute requête ciblant http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg utilise le backend backend-bucket-dogs. Par exemple, si le dossier /love-to-fetch/ existe également dans votre backend par défaut (backend-bucket-cats), l'équilibreur de charge donne la priorité au backend backend-bucket-dogs, car il existe une règle de chemin d'accès spécifique pour /love-to-fetch/*.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-dogs" \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

    • SERVICE_PROJECT_B_ID : ID du projet Google Cloud attribué au projet de service B

    • SERVICE_PROJECT_A_ID : ID du projet Google Cloud attribué au projet de service A

  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 nommé http-proxy pour 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_A_ID
    

    Remplacez SERVICE_PROJECT_A_ID par l'ID du projetGoogle Cloud attribué au projet de service A.

    Pour le trafic HTTPS, créez un proxy HTTPS cible nommé https-proxy 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 https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

  4. Créez deux règles de transfert globales, l'une avec une adresse IP dans la région us-east1 et l'autre avec une adresse IP dans la région asia-east1 à l'aide de la commande gcloud compute forwarding-rules create.

    Pour le trafic HTTP, créez les règles de transfert globales (http-fw-rule-1 et http-fw-rule-2) pour acheminer les requêtes entrantes vers le proxy HTTP cible :

      gcloud compute forwarding-rules create http-fw-rule-1 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
          --subnet-region=us-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    
      gcloud compute forwarding-rules create http-fw-rule-2 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
          --subnet-region=asia-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • RESERVED_IP_ADDRESS : adresse IP que vous avez réservée
    • SERVICE_PROJECT_A_ID : ID du projet Google Cloud attribué au projet de service A

    Pour le trafic HTTPS, créez les règles de transfert globales (https-fw-rule-1 et https-fw-rule-2) pour acheminer les requêtes entrantes vers le proxy cible HTTPS :

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • RESERVED_IP_ADDRESS : adresse IP que vous avez réservée
    • SERVICE_PROJECT_A_ID : ID du projet Google Cloud attribué au projet de service A

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

Si vous souhaitez que les équilibreurs de charge référencent des buckets de backend dans d'autres projets de service, l'administrateur de l'équilibreur de charge doit disposer de l'autorisation compute.backendBuckets.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 de service ou au niveau du bucket 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.backendBuckets.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 buckets de backend du projet) ou par bucket backend.

Console

Autorisations au niveau du projet

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

Vous avez besoin des autorisations compute.backendBuckets.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 section Attribuer des rôles, cliquez sur Ajouter des rôles.

  6. Dans la boîte de dialogue Sélectionner des rôles, dans le champ Rechercher des rôles, saisissez Compute Load Balancer Services User.

  7. Cochez la case Utilisateur des services de l'équilibreur de charge Compute.

  8. Cliquez sur Appliquer.

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

  10. Cliquez sur Enregistrer.

Autorisations au niveau des ressources pour des buckets de backend individuels

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

Vous devez disposer de l'autorisation compute.backendBuckets.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 bucket 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 buckets de backend de votre projet.

Vous avez besoin des autorisations compute.backendBuckets.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"

Remplacez les éléments suivants :

  • SERVICE_PROJECT_B_ID : ID du projet Google Cloudattribué au projet de service B
  • LOAD_BALANCER_ADMIN : compte principal pour lequel vous souhaitez ajouter la liaison.

Autorisations au niveau des ressources pour des buckets de backend individuels

Au niveau du bucket 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) :

Utilisez la commande gcloud projects add-iam-policy-binding pour attribuer le rôle "Utilisateur des services d'équilibreur de charge Compute".

Vous devez disposer de l'autorisation compute.backendBuckets.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/global/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
Remplacez les éléments suivants :
  • SERVICE_PROJECT_B_ID : ID du projet Google Cloudattribué au projet de service B
  • LOAD_BALANCER_ADMIN : compte principal pour lequel vous souhaitez ajouter la liaison.
  • BACKEND_BUCKET_NAME : nom du bucket backend
Vous pouvez également utiliser la commande gcloud compute backend-buckets add-iam-policy-binding pour attribuer le rôle Utilisateur des services de l'équilibreur de charge Compute.
  gcloud compute backend-buckets add-iam-policy-binding BACKEND_BUCKET_NAME \
      --member="user:LOAD_BALANCER_ADMIN" \
      --role="roles/compute.loadBalancerServiceUser" \
      --project=SERVICE_PROJECT_B_ID \

Envoyer une requête HTTP à l'équilibreur de charge

Envoyez une requête depuis une VM cliente interne à la règle de transfert de l'équilibreur de charge.

Obtenir l'adresse IP de la règle de transfert de l'équilibreur de charge

Pour obtenir l'adresse IP de la règle de transfert de l'équilibreur de charge, procédez comme suit :

  1. Obtenez l'adresse IP de la règle de transfert de l'équilibreur de charge (http-fw-rule-1), qui se trouve dans la région us-east1.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  2. Obtenez l'adresse IP de la règle de transfert de l'équilibreur de charge (http-fw-rule-2), qui se trouve dans la région asia-east1.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez SERVICE_PROJECT_A_ID par l'ID du projetGoogle Cloud attribué au projet de service A.

    Copiez l'adresse IP renvoyée pour l'utiliser comme FORWARDING_RULE_IP_ADDRESS dans les étapes suivantes.

Créer une VM cliente pour tester la connectivité

Pour créer une VM cliente permettant de tester la connectivité, procédez comme suit :

  1. Créez une VM cliente nommée client-a dans la région us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_A_ID
    

    Remplacez les éléments suivants :

    • HOST_PROJECT_ID : ID du projet Google Cloud attribué au projet hôte
    • SERVICE_PROJECT_A_ID : ID du projet Google Cloud attribué au projet de service A
  2. Établissez une connexion SSH avec la VM cliente.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_A_ID
    

    Remplacez SERVICE_PROJECT_A_ID par l'ID du projetGoogle Cloud attribué au projet de service A.

  3. Dans cet exemple, l'équilibreur de charge d'application interne interrégional possède des adresses IP virtuelles d'interface dans les régions us-east1 et asia-east1 du réseau VPC. Envoyez une requête HTTP à la VIP dans l'une ou l'autre des régions à l'aide de curl.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Remplacez FORWARDING_RULE_IP_ADDRESS par l'adresse IP de la règle de transfert de l'équilibreur de charge.

Pour tester la haute disponibilité, consultez la section Tester la haute disponibilité de ce document.

Étapes suivantes