GSP041

Présentation
L'équilibreur de charge d'application interne est essentiel pour créer des applications internes robustes, sécurisées et faciles à gérer qui soutiennent vos opérations commerciales. Dans cet atelier, vous allez apprendre à distribuer le trafic réseau dans votre réseau cloud privé sans exposer directement vos machines virtuelles (VM) à l'Internet public. Vous pourrez ainsi sécuriser et optimiser vos services.
Vous allez créer un modèle architectural simplifié, mais très courant :
- Un "niveau Web" (site Web public) qui nécessite l'aide d'un autre service interne.
- Un "niveau de service interne" (calculateur de nombres premiers) qui effectue des tâches spécifiques et est distribué sur plusieurs machines.
Cette configuration assure que même si une partie de votre service interne est occupée ou tombe en panne, le système global continue de fonctionner sans interruption, car l'équilibreur de charge dirige automatiquement les requêtes vers les machines opérationnelles.
Objectifs de l'atelier
- Découvrir les composants d'un équilibreur de charge interne
- Créer un groupe de machines de backend (calculateur de nombres premiers)
- Configurer un équilibreur de charge interne pour diriger le trafic interne vers les machines de backend
- Tester l'équilibreur de charge interne à partir d'une autre machine interne
- Configurer un serveur Web public qui utilise l'équilibreur de charge interne pour obtenir les résultats du service interne de calcul des nombres premiers
Prérequis
- Connaissances de base de Google Cloud Compute Engine : comprendre ce qu'est une instance de machine virtuelle (VM)
- Concepts de base de la mise en réseau : qu'est-ce qu'une adresse IP ?
- Ligne de commande Unix/Linux de base : comment saisir des commandes dans un terminal
- Quelques connaissances sur les VPC (clouds privés virtuels) : comprendre que vos ressources Google Cloud se trouvent dans un réseau privé
Préparation
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 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.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue 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 sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
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.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API 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 l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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 :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Définir la région et la zone
- Définissez la région et la zone du projet pour cet atelier :
gcloud config set compute/region {{{project_0.default_region | Region}}}
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
- Créez une variable pour la région :
export REGION={{{project_0.default_region | Region}}}
- Créez une variable pour la zone :
export ZONE={{{project_0.default_zone | Zone}}}
Pour en savoir plus, consultez la documentation sur les régions et les zones.
Remarque : Lorsque vous exécutez gcloud
sur votre propre machine, les paramètres de configuration sont conservés d'une session à l'autre. En revanche, dans Cloud Shell, vous devez définir ces paramètres à chaque nouvelle session ou reconnexion.
Tâche 1 : Créer un environnement virtuel
Un environnement virtuel permet de garder le logiciel de votre projet propre et de s'assurer que votre code s'exécute toujours avec les versions spécifiques des outils dont il a besoin.
Les environnements virtuels Python permettent d'isoler l'installation d'un package du système.
- Installez l'environnement
virtualenv
:
sudo apt-get install -y virtualenv
- Créez l'environnement virtuel :
python3 -m venv venv
- Activez l'environnement virtuel :
source venv/bin/activate
Tâche 2 : Créer un groupe d'instances géré de backend
En utilisant un "groupe d'instances géré", Google Cloud peut créer et gérer automatiquement des copies identiques de votre service. Si une copie échoue, Google Cloud la remplace, ce qui rend votre service plus fiable.
Créer le script de démarrage
Ce script est semblable à un ensemble d'instructions que chaque nouvelle VM de votre groupe suivra à son démarrage. Notre script inclura un petit serveur Web écrit en Python qui peut nous indiquer si un nombre est premier (True) ou non (False).
- Commencez par créer votre script
backend.sh
dans le répertoire d'accueil :
touch ~/backend.sh
- Cliquez sur Ouvrir l'éditeur en cliquant sur l'icône en haut de Cloud Shell. Si vous y êtes invité, cliquez sur Ouvrir dans une nouvelle fenêtre.

Remarque : Si cette icône ne s'affiche pas, fermez le panneau de gauche en cliquant sur l'icône du menu de navigation.
Lorsque vous lancez l'éditeur de code, Cloud Shell est déplacé vers une nouvelle fenêtre et l'éditeur de code s'ouvre. L'espace de travail s'affiche au bout de quelques secondes.
-
Sélectionnez le fichier backend.sh
dans le volet de gauche.
-
Ajoutez ensuite le script suivant dans l'éditeur sur la droite :
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/serveprimes.py
import http.server
def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1))
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/plain")
s.end_headers()
s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8')))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
- Cliquez sur Fichier > Enregistrer.
Créer le modèle d'instance
- Cliquez sur Ouvrir le terminal dans la barre d'outils de Cloud Shell. Saisissez la commande suivante pour créer le modèle d'instance
primecalc
:
gcloud compute instance-templates create primecalc \
--metadata-from-file startup-script=backend.sh \
--no-address --tags backend --machine-type=e2-medium
Il s'agit du "plan" des VM de backend. Notez qu'il comporte un élément --no-address
. Cela signifie que ces VM de backend n'auront pas accès à l'Internet public pour des raisons de sécurité.
Ouvrir le pare-feu
Vous devez créer une règle de pare-feu pour autoriser le trafic sur le port 80 (trafic HTTP standard) à atteindre les VM de backend. Cette règle est indispensable pour que l'équilibreur de charge d'application interne et les vérifications de l'état puissent communiquer avec elles.
- Ouvrez le pare-feu sur le port
80
:
gcloud compute firewall-rules create http --network default --allow=tcp:80 \
--source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Créer un modèle d'instance et ouvrir le pare-feu sur le port 80
Créer le groupe d'instances
- Créez ensuite le groupe d'instances géré nommé
backend
. Commencez avec trois instances :
gcloud compute instance-groups managed create backend \
--size 3 \
--template primecalc \
--zone $ZONE
- Une fois l'exécution terminée, revenez à l'onglet "Console". Accédez à Compute Engine > Instances de VM. Vous devriez maintenant voir trois VM de backend créées par votre groupe d'instances.

Les backends sont maintenant prêts à diffuser le trafic.
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Créer le groupe d'instances
Tâche 3 : Configurer un équilibreur de charge interne
Vous créez cette entrée VIP unique et privée pour votre service interne. Elle permet à d'autres applications internes d'accéder de manière fiable à votre "calculateur de nombres premiers", sans avoir besoin de savoir quelle VM de backend spécifique est active ou disponible.
Nous allons maintenant configurer l'équilibreur de charge interne et le connecter au groupe d'instances que vous venez de créer.
Un équilibreur de charge interne se compose de trois parties principales :
- Règle de transfert : il s'agit de l'adresse IP privée à laquelle les autres services internes enverront les requêtes. Elle "transfère" le trafic vers votre service de backend.
- Service de backend : il définit la façon dont l'équilibreur de charge distribue le trafic vers vos instances de VM. Il inclut également la vérification de l'état.
- Vérification de l'état : il s'agit d'une vérification continue qui surveille l'état de vos VM de backend. L'équilibreur de charge n'envoie le trafic qu'aux machines qui réussissent leurs vérifications de l'état, ce qui assure que votre service est toujours disponible.
Le diagramme suivant montre comment l'équilibrage de charge des instances est effectué à l'aide de plusieurs instances dans plusieurs groupes de backend de différentes zones.

Créer une vérification de l'état
- Une vérification de l'état est nécessaire pour s'assurer que l'équilibreur de charge n'envoie le trafic qu'aux instances opérationnelles. Votre service de backend est un serveur HTTP. Vérifiez donc s'il répond par un "200 OK" sur un chemin d'URL spécifique (dans ce cas,
/2
pour vérifier si 2 est un nombre premier) :
gcloud compute health-checks create http ilb-health --request-path /2
Étant donné que le service HTTP est fourni, vérifiez si une réponse 200 sur un chemin d'URL spécifique (dans ce cas, /2
pour vérifier si 2 est un nombre premier) est renseignée :
Créer un service de backend
- Créez ensuite le service de backend nommé
prime-service
:
gcloud compute backend-services create prime-service \
--load-balancing-scheme internal --region=$REGION \
--protocol tcp --health-checks ilb-health
Ce service associera la vérification de l'état au groupe d'instances.
Ajouter le groupe d'instances au service de backend
- Connectez votre groupe d'instances backend au service de backend prime-service. Cela indique à l'équilibreur de charge les machines qu'il doit gérer :
gcloud compute backend-services add-backend prime-service \
--instance-group backend --instance-group-zone=$ZONE \
--region=$REGION
Créer la règle de transfert
- Enfin, créez la règle de transfert nommée
prime-lb
avec une adresse IP statique de type :
gcloud compute forwarding-rules create prime-lb \
--load-balancing-scheme internal \
--ports 80 --network default \
--region=$REGION --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \
--backend-service prime-service
Votre service interne de calcul des nombres premiers est désormais entièrement configuré et prêt à être interrogé par le biais de son adresse IP interne.
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Configurer un équilibreur de charge interne
Tâche 4 : Tester l'équilibreur de charge
Cette étape est essentielle pour vérifier que votre équilibreur de charge d'application interne dirige correctement le trafic vers les services de backend. Cela prouve que les autres applications internes peuvent désormais accéder de manière fiable à votre service par le biais d'une adresse IP unique et stable, ce qui assure un fonctionnement continu.
Pour tester l'équilibreur de charge, vous devez créer une instance de VM dans le même réseau que votre équilibreur de charge d'application interne. Il n'est accessible que depuis votre réseau cloud privé, et non directement depuis Cloud Shell (qui se trouve en dehors de ce réseau spécifique).
- À l'aide de
gcloud
dans Cloud Shell, créez une instance de test simple :
gcloud compute instances create testinstance \
--machine-type=e2-standard-2 --zone $ZONE
- Ensuite, connectez-vous à l'instance en SSH :
gcloud compute ssh testinstance --zone $ZONE
Si vous y êtes invité, saisissez Y (Oui) et appuyez deux fois sur Entrée pour continuer.
Interroger l'équilibreur de charge
- Depuis l'instance de test, utilisez
curl
pour demander à l'adresse IP de l'équilibreur de charge d'application interne si quelques nombres sont premiers :
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Le résultat affichera "True" (Vrai) ou "False" (Faux) juste à côté de votre ligne de commande, comme ceci :
user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Trueuser@testinstance:~$ exit
Vous devriez constater que 2 et 5 sont correctement identifiés comme nombres premiers, mais pas 4. Cela confirme que l'équilibreur de charge d'application interne fonctionne. Il a reçu les requêtes et les a transférées à l'une de vos VM de backend de calcul de nombres premiers.
Le service a répondu correctement : 2 et 5 sont des nombres premiers, mais pas 4.
- Quittez l'instance de test :
exit
- Supprimez-la ensuite, car vous n'en avez plus besoin :
gcloud compute instances delete testinstance --zone=$ZONE
- Saisissez Y (Oui) pour confirmer la suppression.
Tâche 5 : Créer un serveur Web public
Vous pouvez désormais voir comment une application publique (comme un site Web) peut exploiter vos services internes. Vous allez créer un serveur Web public qui utilisera le service interne de calcul des nombres premiers (via l'équilibreur de charge d'application interne) pour afficher une matrice de nombres premiers.
- Commencez par créer le script de démarrage pour cette instance frontend publique dans le répertoire d'accueil :
touch ~/frontend.sh
- L'éditeur de code devrait toujours être ouvert. Sinon, lancez-le en le sélectionnant dans le shell :

L'espace de travail s'affiche au bout de quelques secondes.
- Ajoutez maintenant ce script dans l'éditeur sur la droite :
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/getprimes.py
import urllib.request
from multiprocessing.dummy import Pool as ThreadPool
import http.server
PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer
def get_url(number):
return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8')
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
i = int(s.path[1:]) if (len(s.path)>1) else 1
s.wfile.write("<html><body><table>".encode('utf-8'))
pool = ThreadPool(10)
results = pool.map(get_url,range(i,i+100))
for x in range(0,100):
if not (x % 10): s.wfile.write("<tr>".encode('utf-8'))
if results[x]=="True":
s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8'))
else:
s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8'))
s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8'))
if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8'))
s.wfile.write("</table></body></html>".encode('utf-8'))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
- Cliquez sur Fichier > Enregistrer.
Créer l'instance frontend
- Dans Cloud Shell, créez une instance nommée
frontend
qui exécutera ce serveur Web :
gcloud compute instances create frontend --zone=$ZONE \
--metadata-from-file startup-script=frontend.sh \
--tags frontend --machine-type=e2-standard-2
Ouvrir le pare-feu pour l'instance frontend
- Il s'agit d'un serveur public. Vous devez donc ouvrir son pare-feu pour autoriser le trafic provenant de n'importe où sur Internet (0.0.0.0/0) sur le port 80 :
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \
--source-ranges 0.0.0.0/0 --target-tags frontend
-
Dans le menu de navigation, cliquez sur Compute Engine > Instances de VM. Actualisez votre navigateur si l'instance frontend
ne s'affiche pas.
-
Ouvrez l'adresse IP externe de l'instance frontend dans votre navigateur :

Vous devriez voir une matrice comme celle-ci, affichant en vert tous les nombres premiers jusqu'à 100 :

- Essayez d'ajouter un nombre au chemin d'accès, par exemple http://your-ip/10000, pour afficher tous les nombres premiers à partir de ce nombre.

Remarque : L'exemple de script de démarrage ne calcule pas efficacement les nombres premiers. Il ne dispose pas non plus d'algorithmes de détection ou de correction des erreurs. Si vous ajoutez des grands nombres au chemin d'accès, le service expirera.
Cliquez sur Vérifier ma progression ci-dessous pour valider votre progression dans l'atelier.
Créer un serveur Web public
Félicitations !
Vous avez créé un service interne fiable à l'aide de l'équilibreur de charge d'application interne de Google Cloud et montré comment une application publique peut l'utiliser de manière sécurisée.
Étapes suivantes et informations supplémentaires
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 : 18 juillet 2025
Dernier test de l'atelier : 18 juillet 2025
Copyright 2025 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.