Points de contrôle
Create multiple web server instances
/ 30
Configure the load balancing service
/ 20
Create an HTTP load balancer
/ 50
Configurer des équilibreurs de charge réseau et HTTP
- GSP007
- Présentation
- Points abordés
- Prérequis
- Tâche 1 : Définir la zone et la région par défaut de toutes les ressources
- Tâche 2 : Créer plusieurs instances de serveur Web
- Tâche 3 : Configurer le service d'équilibrage de charge
- Tâche 4 : Envoyer du trafic vers vos instances
- Tâche 5 : Créer un équilibreur de charge HTTP
- Tâche 6 : Tester le trafic envoyé à vos instances
- Félicitations !
GSP007
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. Vous allez apprendre à configurer ces deux types d'équilibreurs de charge pour des applications qui s'exécutent sur des 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 "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 Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique 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. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
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 Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
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. -
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}} Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}} Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés. -
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 à des essais gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
- Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :
gcloud
est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Définir la zone et la région par défaut de toutes les ressources
-
Définissez la région par défaut :
gcloud config set compute/region {{{project_0.default_region | Region}}} -
Dans Cloud Shell, définissez la zone par défaut :
gcloud config set compute/zone {{{project_0.default_zone | Zone}}} Pour plus d'informations à ce sujet, consultez le guide sur les zones et les régions de 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
-
Créez une machine virtuelle "www1" dans votre zone par défaut à l'aide du code suivant :
gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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 " Web Server: www1
" | tee /var/www/html/index.html' -
Créez une machine virtuelle "www2" dans votre zone par défaut à l'aide du code suivant :
gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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 " Web Server: www2
" | tee /var/www/html/index.html' -
Créez une machine virtuelle "www3" dans votre zone par défaut.
gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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 " Web Server: www3
" | tee /var/www/html/index.html' -
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.
-
Exécutez la commande suivante pour répertorier vos instances. Vous trouverez leurs adresses IP dans la colonne
EXTERNAL_IP
:gcloud compute instances list -
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.
-
Créez une adresse IP externe statique pour votre équilibreur de charge :
gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | 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]. -
Ajoutez une ancienne ressource de vérification d'état HTTP :
gcloud compute http-health-checks create basic-check -
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.default_region | Region}}} --http-health-check basic-check -
Ajoutez les instances au pool :
gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3 -
Ajoutez une règle de transfert :
gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | Region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool Cliquez sur Vérifier ma progression ci-dessous 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.
-
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.default_region | Region}}} -
Accédez à l'adresse IP externe :
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress) -
Affichez l'adresse IP externe :
echo $IPADDRESS -
Utilisez la commande
curl
pour accéder à l'adresse IP externe, en remplaçantIP_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. En cas d'échec de la réponse initiale, patientez environ 30 secondes pour que la configuration soit entièrement chargée et que vos instances soient marquées comme opérationnelles avant de réessayer. -
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.
-
Commencez par créer le modèle de l'équilibreur de charge :
gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | 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.
-
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.default_zone | Zone}}} -
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
et35.191.0.0/16
). Cet exemple utilise le tag cibleallow-health-check
pour identifier les VM. -
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 -
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. -
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 -
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.default_zone | Zone}}} \ --global -
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.
-
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 -
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
Cliquez sur Vérifier ma progression ci-dessous pour vérifier que vous avez bien créé un équilibreur de charge HTTP(S) L7.
Tâche 6 : Tester le trafic envoyé à vos instances
-
Dans le menu de navigation menu de la console Google Cloud, accédez à Services réseau > Équilibrage de charge.
-
Cliquez sur l'équilibreur de charge que vous venez de créer (
web-map-http
). -
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.
-
Si les VM sont opérationnelles, testez l'équilibreur de charge via un navigateur Web, en vous rendant sur
http://IP_ADDRESS/
, en remplaçantIP_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.
Atelier suivant
Continuez sur votre lancée en suivant l'atelier Hello Node Kubernetes ou consultez ces suggestions :
Étapes suivantes et informations supplémentaires
- Configurer un équilibreur de charge réseau avec un service de backend
- Configurer un simple équilibreur de charge HTTPS externe
- Présentation de l'équilibrage de charge HTTP(S) externe
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 19 septembre 2023
Dernier test de l'atelier : 19 septembre 2023
Copyright 2024 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.