arrow_back

Configurer des équilibreurs de charge réseau et HTTP

Configurer des équilibreurs de charge réseau et HTTP

1 heure 1 crédit

GSP007

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier pratique, vous allez découvrir les différences entre un équilibreur de charge réseau et un équilibreur de charge HTTP, et allez apprendre à les configurer pour vos applications exécutées sur les machines virtuelles (VM) Compute Engine.

Vous pouvez équilibrer les charges sur Google Cloud de différentes manières. Cet atelier vous guide dans le processus de configuration des équilibreurs de charge suivants :

Nous vous invitons à saisir vous-même les commandes afin de mieux assimiler les concepts fondamentaux. De nombreux ateliers comportent un bloc de code qui contient les commandes à saisir. Libre à vous de copier les commandes dans le bloc de code et de les coller aux emplacements adéquats pendant l'atelier.

Points abordés

  • Configurer un équilibreur de charge réseau

  • Configurer un équilibreur de charge HTTP

  • Découvrir dans la pratique les différences entre un équilibreur de charge réseau et un équilibreur de charge HTTP

Prérequis

Avant de cliquer sur le bouton Start Lab (Démarrer l'atelier)

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Start Lab (Démarrer l'atelier), indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique Qwiklabs vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.

Conditions requises

Pour réaliser cet atelier, vous devez :

  • avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
  • disposer de suffisamment de temps pour réaliser l'atelier en une fois.

Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier.

Remarque : Si vous utilisez un appareil Chrome OS, exécutez cet atelier dans une fenêtre de navigation privée.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient des outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Google Cloud Shell offre un accès en ligne de commande à vos ressources GCP.

  1. Dans la console GCP, dans la barre d'outils située en haut à droite, cliquez sur le bouton Ouvrir Cloud Shell.

    Icône Cloud Shell

  2. Cliquez sur Continue (Continuez):

    cloudshell_continue

Il faut quelques instants pour mettre en service et se connecter à l'environnement. Lorsque vous êtes connecté, vous êtes déjà authentifié et le projet est défini sur votre PROJECT_ID. Par exemple:

Terminal Cloud Shell

gcloud est l'outil de ligne de commande associé à Google Cloud Platform. Pré-installé sur Cloud Shell, il est également compatible avec la saisie semi-automatique via la touche de tabulation.

Vous pouvez répertorier les noms des comptes actifs à l'aide de cette commande :

gcloud auth list

Résultat :

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Pour répertorier les ID de projet, exécutez la commande suivante :

gcloud config list project
	

Résultat :

[core]
project = <ID_Projet>
	

Exemple de résultat :

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Tâche 1 : Définir la zone et la région par défaut de toutes les ressources

  1. Dans Cloud Shell, définissez la zone par défaut :

    gcloud config set compute/zone {{{project_0.startup_script.project_zone}}}
  2. Définissez la région par défaut :

    gcloud config set compute/region {{{project_0.startup_script.project_region}}}

    Pour plus d'informations à ce sujet, consultez le guide sur les zones et les régions dans la documentation Compute Engine.

Tâche 2 : Créer plusieurs instances de serveur Web

Dans ce scénario d'équilibrage de charge, créez trois instances de VM Compute Engine et installez-y Apache. Ajoutez ensuite une règle de pare-feu permettant au trafic HTTP d'atteindre les instances.

Le code fourni définit la zone sur . La définition du champ "tags" vous permet de faire référence à toutes ces instances à la fois, par exemple lorsque vous souhaitez configurer une règle de pare-feu. Les commandes ci-dessous permettent également d'installer Apache sur chaque instance et d'attribuer à chacune d'elles une page d'accueil unique.

  1. Créez une machine virtuelle "www1" dans votre zone par défaut.

    gcloud compute instances create www1 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Serveur Web : www1

    " | tee /var/www/html/index.html'
  2. Créez une machine virtuelle "www2" dans votre zone par défaut.

    gcloud compute instances create www2 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Serveur Web : www2

    " | tee /var/www/html/index.html'
  3. Créez une machine virtuelle "www3" dans votre zone par défaut.

    gcloud compute instances create www3 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Serveur Web : www3

    " | tee /var/www/html/index.html'
  4. Créez une règle de pare-feu pour autoriser le trafic externe vers les instances de VM :

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

Vous devez maintenant obtenir les adresses IP externes de vos instances et vérifier qu'elles sont en cours d'exécution.

  1. Exécutez la commande suivante pour répertorier vos instances. Vous trouverez leurs adresses IP dans la colonne EXTERNAL_IP :

    gcloud compute instances list
  2. Vérifiez que chaque instance est en cours d'exécution à l'aide de la commande curl, en remplaçant [IP_ADDRESS] par l'adresse IP de chacune de vos VM :

    curl http://[IP_ADDRESS]

    Cliquez sur Vérifier ma progression ci-dessous pour vérifier que vous avez bien créé un groupe de serveurs Web.

    Créer plusieurs instances de serveur Web

Tâche 3 : Configurer le service d'équilibrage de charge

Lorsque vous configurez le service d'équilibrage de charge, vos instances de machines virtuelles reçoivent les paquets destinés à l'adresse IP externe statique configurée. Les instances créées à l'aide d'une image Compute Engine sont automatiquement configurées pour gérer cette adresse IP.

Remarque : Découvrez comment configurer l'équilibrage de charge réseau dans le guide Présentation de l'équilibrage de charge réseau TCP/UDP externe.
  1. Créez une adresse IP externe statique pour votre équilibreur de charge :

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.startup_script.project_region}}}

    Résultat :

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. Ajoutez une ancienne ressource de vérification d'état HTTP :

    gcloud compute http-health-checks create basic-check
  3. Ajoutez un pool cible dans la même région que vos instances. Exécutez la commande suivante pour créer le pool cible et utiliser la vérification d'état requise pour que le service puisse fonctionner :

    gcloud compute target-pools create www-pool \ --region {{{project_0.startup_script.project_region}}} --http-health-check basic-check
  4. Ajoutez les instances au pool :

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
  5. Ajoutez une règle de transfert :

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.startup_script.project_region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    Cliquez sur Vérifier ma progression pour vérifier que vous avez bien créé un équilibreur de charge réseau L4 qui pointe vers les serveurs Web.

    Configurer le service d'équilibrage de charge

Tâche 4. Envoyer du trafic vers vos instances

Maintenant que le service d'équilibrage de charge est configuré, vous pouvez commencer à envoyer le trafic vers la règle de transfert et surveiller la répartition du trafic entre les différentes instances.

  1. Saisissez la commande suivante pour afficher l'adresse IP externe définie dans la règle de transfert www-rule utilisée par l'équilibreur de charge :

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}}
  2. Accéder à l'adresse IP externe

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}} --format="json" | jq -r .IPAddress)
  3. Afficher l'adresse IP externe

    echo $IPADDRESS
  4. Utilisez la commande curl pour accéder à l'adresse IP externe, en remplaçant IP_ADDRESS par une adresse IP externe de la commande précédente :

    while true; do curl -m1 $IPADDRESS; done

    La réponse de la commande curl est alternée de manière aléatoire entre les trois instances. Si la réponse est initialement infructueuse, patientez environ 30 secondes pour que la configuration soit entièrement chargée et que vos instances soient identifiées comme opérationnelles avant de réessayer.

  5. Appuyez sur les touches CTRL+C pour arrêter l'exécution de la commande.

Tâche 5 : Créer un équilibreur de charge HTTP

L'équilibrage de charge HTTP(S) est mis en œuvre sur un GFE (Google Front End). Les GFE sont distribués dans le monde entier et fonctionnent conjointement grâce au réseau mondial et au plan de contrôle de Google. Vous pouvez configurer des règles d'URL pour rediriger certaines URL vers un ensemble d'instances donné.

Les requêtes sont toujours redirigées vers le groupe d'instances le plus proche de l'utilisateur, sous réserve de compatibilité et de capacité suffisante. En cas de capacité insuffisante, la requête est transmise au groupe le plus proche présentant la capacité nécessaire.

Pour que vous puissiez configurer un équilibreur de charge avec un backend Compute Engine, vos VM doivent appartenir à un groupe d'instances. Le groupe d'instances géré fournit des VM exécutant les serveurs de backend d'un équilibreur de charge HTTP externe. Dans cet atelier, les backends diffusent leurs propres noms d'hôte.

  1. Commencez par créer le modèle de l'équilibreur de charge :

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.startup_script.project_region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --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://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

    Les groupes d'instances gérés (MIG, Managed Instance Group) vous permettent d'exploiter des applications sur plusieurs VM identiques. Vous pouvez rendre vos charges de travail évolutives et hautement disponibles en tirant parti des services de MIG automatisés, comme l'autoscaling, l'autoréparation, le déploiement régional (multizone) et la mise à jour automatique.

  2. Créez un groupe d'instances géré basé sur le modèle :

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.startup_script.project_zone}}}
  3. Créez la règle de pare-feu fw-allow-health-check :

    gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Remarque : La règle d'entrée autorise le trafic provenant des systèmes de vérification d'état Google Cloud (130.211.0.0/22 et 35.191.0.0/16). Cet exemple utilise le tag cible allow-health-check pour identifier les VM.
  4. Maintenant que vos instances sont opérationnelles, configurez une adresse IP externe statique globale que vos clients utiliseront pour accéder à votre équilibreur de charge :

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    Notez l'adresse IPv4 réservée :

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
  5. Créez une vérification d'état pour l'équilibreur de charge :

    gcloud compute health-checks create http http-basic-check \ --port 80 Remarque : Google Cloud propose des mécanismes de vérification d'état qui déterminent si les instances de backend répondent au trafic de façon appropriée. Pour en savoir plus, veuillez consulter le document Créer des vérifications d'état.
  6. Créez un service de backend :

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. Ajoutez votre groupe d'instances en tant que backend au service de backend :

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.startup_script.project_zone}}} \ --global
  8. Créez un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend par défaut :

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service Remarque : Le mappage d'URL est une ressource de configuration Google Cloud qui permet d'acheminer les requêtes vers des services de backend ou des buckets de backend. Par exemple, avec un équilibreur de charge HTTP(S) externe, vous pouvez utiliser un seul mappage d'URL pour acheminer les requêtes vers différentes destinations en fonction des règles configurées dans le mappage d'URL :

    • Les requêtes pour https://example.com/video sont dirigées vers un service de backend.
    • Les requêtes pour https://example.com/audio sont dirigées vers un autre service de backend.
    • Les requêtes pour https://example.com/images sont dirigées vers un bucket de backend Cloud Storage.
    • Les requêtes pour toute autre combinaison d'hôte et de chemin d'accès sont dirigées vers un service de backend par défaut.
  9. Créez un proxy HTTP cible, qui va rediriger les requêtes vers votre mappage d'URL :

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. Créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy :

gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80 Remarque : Une règle de transfert ainsi que l'adresse IP qui lui est associée représentent la configuration de l'interface d'un équilibreur de charge Google Cloud. Pour en savoir plus sur les règles de transfert, consultez le guide Présentation des règles de transfert.

Cliquez sur Vérifier ma progression ci-dessous pour vérifier que vous avez bien créé un équilibreur de charge HTTP(S) L7.

Créer un équilibreur de charge HTTP

Tâche 6 : Tester le trafic envoyé à vos instances

  1. Dans la console Cloud, dans le menu de navigation, accédez à Services réseau > Équilibrage de charge.

  2. Cliquez sur l'équilibreur de charge que vous venez de créer (web-map-http).

  3. Dans la section Backend, cliquez sur le nom du backend et assurez-vous que l'état des VM est Opérationnel. Si tel n'est pas le cas, patientez quelques instants avant d'actualiser la page.

  4. Si les VM sont opérationnelles, testez l'équilibreur de charge via un navigateur Web, en vous rendant sur http://IP_ADDRESS/, en remplaçant IP_ADDRESS par l'adresse IP de l'équilibreur de charge.

L'opération peut demander trois à cinq minutes. Si vous ne parvenez pas à vous connecter, attendez une minute, puis actualisez le navigateur.

Votre navigateur doit afficher une page dont le contenu indique le nom de l'instance l'ayant diffusée, ainsi que sa zone (par exemple Page served from: lb-backend-group-xxxx).

Félicitations !

Vous venez de créer un équilibreur de charge réseau et un équilibreur de charge HTTP(S). Par ailleurs, vous vous êtes entraîné à utiliser des modèles d'instances et des groupes d'instances gérés.

Terminer votre quête

Cet atelier d'auto-formation fait partie de la quête Google Cloud Essentials. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez cette quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Continuez sur votre lancée en suivant l'atelier Hello Node Kubernetes ou consultez ces suggestions :

Étapes suivantes et informations supplémentaires

Google Cloud Training & Certification

...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.

Dernière mise à jour du manuel : 12 août 2022

Dernier test de l'atelier : 12 août 2022

Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.