Procéder à l'autoscaling d'un service Web à l'échelle mondiale sur Compute Engine

Ce tutoriel explique comment configurer un service Web disponible dans le monde entier avec des groupes d'instances gérés Compute Engine régionaux qui s'adaptent automatiquement pour offrir la capacité requise. Vous pouvez utiliser les techniques qu'il décrit pour mettre en œuvre sur Compute Engine votre projet évolutif et distribué à l'échelle mondiale.

Objectifs

  • Déployer plusieurs groupes d'instances gérés Compute Engine régionaux en activant l'autoscaling
  • Créer un équilibreur de charge interrégional
  • Générer du trafic de test à partir de différentes régions du monde
  • Utiliser la console Google Cloud Platform pour voir comment l'équilibreur de charge achemine les requêtes et comment les groupes d'instances s'adaptent automatiquement à l'évolution de la demande

Coûts

Ce tutoriel fait appel à des composants payants de GCP tels que :

  • Compute Engine

Avant de commencer

  1. Sélectionnez ou créez un projet Google Cloud Platform.

    Accéder à la page "Gérer les ressources"

  2. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform.

    Découvrir comment activer la facturation

  3. Activez Compute Enginel'API requise.

    Activer l'API.

Architecture de l'application

L'application inclut les composants Compute Engine ci-dessous.

  1. Modèle d'instance : modèle utilisé pour créer chaque instance des groupes d'instances.
  2. Groupes d'instances : plusieurs groupes d'instances qui s'adaptent automatiquement en fonction du trafic entrant.
  3. Équilibreur de charge : équilibreur de charge HTTP qui répartit le trafic entre les groupes d'instances.
  4. Instances : plusieurs instances de test qui permettent de générer du trafic de test à partir de différentes régions du monde.

Schéma de l'architecture système montrant un équilibreur de charge avec plusieurs groupes d'instances régionaux

Configurer le service Web

Créer les groupes d'instances

Console

  1. Créez un réseau pour les groupes d'instances.

    1. Accédez à la page Réseaux VPC dans la console GCP.
      Accéder à la page "Réseaux VPC"
    2. Cliquez sur Créer un réseau VPC.
    3. Définissez le paramètre Nom sur fortressnet.
    4. Définissez le paramètre Mode de création du sous-réseau sur Automatique.
    5. Cliquez sur Créer en bas de la page.
  2. Créez une règle de pare-feu pour le réseau. Cette règle autorisera toutes les requêtes HTTP envoyées à vos instances.

    1. Accédez à la page Règles de pare-feu de la console GCP.
      Accéder à la page "Règles de pare-feu"
    2. Cliquez sur Créer une règle de pare-feu.
    3. Définissez le paramètre Nom sur fortressnet-allow-http.
    4. Pour Réseau, sélectionnez fortressnet.
    5. Pour Cibles, sélectionnez All instances in the network.
    6. Définissez le paramètre Plages d'adresses IP sources sur 0.0.0.0/0.
    7. Sous Protocoles et ports, sélectionnez tcp et saisissez 80.
    8. Cliquez sur Créer.
  3. Créez un modèle d'instance. Incluez un script de démarrage qui lance un serveur Web Apache simple sur chaque instance.

    1. Accédez à la page Modèles d'instances dans la console GCP.
      Accéder à la page "Modèles d'instance"
    2. Cliquez sur Créer un modèle d'instance.
    3. Définissez le paramètre Nom sur fort-template.
    4. Pour Type de machine, sélectionnez micro (f1-micro).
    5. Cliquez sur Gestion, sécurité, disques, réseau et location unique pour faire apparaître les paramètres avancés. Divers onglets doivent s'afficher.
    6. Cliquez sur l'onglet Réseau.
    7. Pour Réseau, sélectionnez fortressnet.
    8. Cliquez sur l'onglet Gestion.
    9. Sous Automatisation, saisissez le script de démarrage suivant :

      apt-get update && apt-get install -y apache2
      

    10. Cliquez sur Créer en bas de la page.

  4. Créez plusieurs groupes d'instances gérés régionaux à l'aide du modèle d'instance. Configurez l'autoscaling pour chaque groupe d'instances.

    1. Accédez à la page Groupes d'instances dans la console GCP.
      Accéder à la page "Groupes d'instances"
    2. Cliquez sur Créer un groupe d'instances.
    3. Définissez le paramètre Nom sur us-central1-pool.
    4. Pour Emplacement, sélectionnez Multi-zone.
    5. Pour Région, sélectionnez us-central1.
    6. Pour Modèle d'instance, sélectionnez fort-template.
    7. Pour Autoscaling, sélectionnez Activé.
    8. Pour Autoscaling basé sur, sélectionnez HTTP load balancing usage.
    9. Définissez le paramètre Objectif d'utilisation de l'équilibrage de charge sur 80.
    10. Définissez le paramètre Nombre minimal d'instances sur 1.
    11. Définissez le paramètre Nombre maximal d'instances sur 5.
    12. Cliquez sur Créer.
    13. Répétez ces étapes pour créer deux autres groupes d'instances, en apportant les modifications suivantes :
      • Créez un groupe en définissant le paramètre Nom sur europe-west1-pool et le paramètre Région sur europe-west1.
      • Créez un groupe en définissant le paramètre Nom sur asia-east1-pool et le paramètre Région sur asia-east1.
  5. (Facultatif) Vérifiez que les instances sont opérationnelles et diffusent le trafic HTTP. Testez l'adresse IP externe d'une ou de plusieurs instances. Vous devrez peut-être patienter une minute pour que le processus de démarrage des instances se termine.

    1. Accédez à la page Instances de VM dans la console GCP.
      Accéder à la page "Instances de VM"
    2. Vérifiez qu'une coche verte figure dans la colonne Nom pour chaque instance en cours d'exécution.
    3. Copiez l'adresse IP externe d'une instance et collez-la dans un navigateur Web.

    La page Web par défaut Apache2 Debian doit s'afficher.

    Si la procédure ne semble pas fonctionner, patientez quelques instants.

gcloud

  1. Créez un réseau pour les groupes d'instances.

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. Créez une règle de pare-feu pour le réseau. Cette règle autorisera toutes les requêtes HTTP envoyées à vos instances.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. Créez un modèle d'instance. Incluez un script de démarrage qui lance un serveur Web Apache simple sur chaque instance.

    gcloud compute instance-templates create fort-template \
        --machine-type f1-micro \
        --network fortressnet \
        --metadata startup-script='apt-get update && apt-get install -y apache2'
    
  4. Créez plusieurs groupes d'instances gérés régionaux à l'aide du modèle d'instance. Configurez l'autoscaling pour chaque groupe d'instances.

    gcloud compute instance-groups managed create us-central1-pool \
        --region us-central1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling us-central1-pool \
        --region us-central1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create europe-west1-pool \
        --region europe-west1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling europe-west1-pool \
        --region europe-west1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create asia-east1-pool \
        --region asia-east1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling asia-east1-pool \
        --region asia-east1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
  5. (Facultatif) Vérifiez que les instances sont opérationnelles et diffusent le trafic HTTP. Testez l'adresse IP externe d'une ou de plusieurs instances. Vous devrez peut-être patienter une minute pour que le processus de démarrage des instances se termine.

    1. Répertoriez vos instances.

      gcloud compute instances list
      

    2. Vérifiez dans la colonne STATUS que l'état des instances est RUNNING.

    3. Vérifiez le fonctionnement d'une instance en interrogeant son adresse IP dans la colonne EXTERNAL_IP.

      curl http://[EXTERNAL_IP] | head
      

    Un texte HTML incluant la ligne suivante doit s'afficher : <title>Apache2 Debian Default Page: It works</title>.

    Si la procédure ne semble pas fonctionner, patientez quelques instants.

Configurer l'équilibreur de charge

L'équilibreur de charge répartit les requêtes des clients entre vos différents backends.

Console

Démarrer la configuration de l'équilibreur de charge

  1. Accédez à la page Équilibrage de charge dans la console GCP.
    Accéder à la page "Équilibrage de charge"
  2. Cliquez sur Créer un équilibreur de charge.
  3. Sous Équilibrage de charge HTTP(S), cliquez sur Démarrer la configuration.
  4. Définissez le paramètre Nom sur fortressnet-balancer.

Configurer le backend

  1. Sur la page Nouvel équilibreur de charge HTTP(S), cliquez sur Configuration du backend.
  2. Dans le menu déroulant Créer ou sélectionner des services backend et des buckets backend, sélectionnez Services backend, puis Créer un service backend. La boîte de dialogue Créer un service backend s'affiche.
  3. Définissez le paramètre Nom du service de backend sur fortressnet-backend-service.
  4. Dans la boîte de dialogue Nouveau backend, définissez le paramètre Groupe d'instances sur asia-east1-pool.
  5. Pour Mode d'équilibrage, sélectionnez Fréquence.
  6. Définissez le paramètre Nombre maximal de RPS sur 100 RPS par instance.
  7. Cliquez sur OK.
  8. Cliquez sur Ajouter le backend.
  9. Dans la boîte de dialogue Nouveau backend, définissez le paramètre Groupe d'instances sur europe-west1-pool.
  10. Pour Mode d'équilibrage, sélectionnez Fréquence.
  11. Définissez le paramètre Nombre maximal de RPS sur 100 RPS par instance.
  12. Cliquez sur OK.
  13. Cliquez sur Ajouter le backend.
  14. Dans la boîte de dialogue Nouveau backend, définissez le paramètre Groupe d'instances sur us-central1-pool.
  15. Pour Mode d'équilibrage, sélectionnez Fréquence.
  16. Définissez le paramètre Nombre maximal de RPS sur 100 RPS par instance.
  17. Cliquez sur OK.
  18. Sous Vérification d'état, sélectionnez Créer une vérification d'état.
  19. Définissez le paramètre Nom sur http-basic-check.
  20. Pour Protocole, sélectionnez HTTP.
  21. Définissez le paramètre Port sur 80.
  22. Cliquez sur Enregistrer et continuer.
  23. Cliquez sur Créer.

Règles d'hôte et de chemin d'accès

  1. Dans le panneau de gauche de la page Nouvel équilibreur de charge HTTP(S), cliquez sur Règles d'hôte et de chemin d'accès.
    Pour cet exemple, il n'est pas nécessaire de configurer des règles d'hôte ou de chemin d'accès, car tout le trafic sera acheminé en fonction de la règle par défaut. Nous pouvons donc accepter les valeurs par défaut.

Configurer l'interface frontale

  1. Dans le panneau de gauche de la page Nouvel équilibreur de charge HTTP(S), cliquez sur Configuration du frontend.
  2. Définissez le paramètre Nom sur fortressnet-http-rule.
  3. Pour Version IP, sélectionnez IPv4.
  4. Pour Adresse IP, sélectionnez Créer une adresse IP.
  5. Dans la boîte de dialogue Réserver une nouvelle adresse IP statique, définissez le paramètre Nom sur fortressnet-ip.
  6. Cliquez sur Réserver et patientez quelques instants.
  7. Cliquez sur OK en bas de la boîte de dialogue Nouveaux IP et port frontend.
  8. Cliquez sur Ajouter une adresse IP et un port frontend.
  9. Définissez le paramètre Nom sur fortressnet-http-ipv6-rule.
  10. Pour Version IP, sélectionnez IPv6.
  11. Pour Adresse IP, sélectionnez Créer une adresse IP.
  12. Dans la boîte de dialogue, définissez le paramètre Nom sur fortressnet-ipv6.
  13. Cliquez sur Réserver et patientez quelques instants.
  14. Cliquez sur OK en bas de la boîte de dialogue Nouveaux IP et port frontend.

Vérifier et finaliser

  1. Dans le panneau de gauche de la page Nouvel équilibreur de charge HTTP(S), cliquez sur Vérification et finalisation.
  2. Comparez vos paramètres à ce que vous aviez l'intention de créer.
  3. Si les paramètres sont corrects, cliquez sur Créer en bas du panneau de gauche. Vous êtes renvoyé à l'écran "Équilibrage de charge". Une fois que l'équilibreur de charge est créé, une coche verte s'affiche à côté de celui-ci pour indiquer qu'il est en cours d'exécution.

gcloud

Configurer le backend

  1. Créez une vérification d'état de base. Elle vous permettra de vérifier si un backend d'équilibreur de charge répond aux requêtes HTTP.

    gcloud compute health-checks create http http-basic-check
    

  2. Créez un service de backend à l'échelle mondiale. Il recevra le trafic HTTP provenant de l'équilibreur de charge.

    gcloud compute backend-services create fortressnet-backend-service 
    --protocol HTTP
    --health-checks http-basic-check
    --global

  3. Ajoutez les groupes d'instances en tant que backends régionaux du service de backend. Cette configuration répartira le trafic entre les backends en fonction d'un nombre maximal de requêtes par seconde (RPS) par instance.

    gcloud compute backend-services add-backend fortressnet-backend-service 
    --balancing-mode RATE
    --max-rate-per-instance 100
    --instance-group us-central1-pool
    --instance-group-region us-central1
    --global gcloud compute backend-services add-backend fortressnet-backend-service
    --balancing-mode RATE
    --max-rate-per-instance 100
    --instance-group europe-west1-pool
    --instance-group-region europe-west1
    --global gcloud compute backend-services add-backend fortressnet-backend-service
    --balancing-mode RATE
    --max-rate-per-instance 100
    --instance-group asia-east1-pool
    --instance-group-region asia-east1
    --global

Règles d'hôte et de chemin d'accès

  1. Définissez un mappage d'URL. Ce type de mappage permet d'acheminer des URL distinctes vers des services de backend différents. Comme nous ne disposons que d'un seul service de backend, nous allons le définir comme service par défaut pour toutes les URL.

    gcloud compute url-maps create fortressnet-balancer 
    --default-service fortressnet-backend-service

  2. Créez une route de proxy HTTP. Cette route accepte les requêtes HTTP et les achemine en fonction de votre mappage d'URL. Dans ce cas, toutes les requêtes seront envoyées à votre service de backend unique.

    gcloud compute target-http-proxies create fortressnet-http-proxy 
    --url-map fortressnet-balancer

Configurer l'interface frontale

  1. Créez deux adresses IP externes statiques globales : une pour IPV4 et une pour IPV6. Il s'agira des adresses IP externes globales de l'équilibreur de charge.

    gcloud compute addresses create fortressnet-ip 
    --ip-version IPV4
    --global gcloud compute addresses create fortressnet-ipv6
    --ip-version IPV6
    --global

  2. Recherchez les adresses IP externes de l'équilibreur de charge.

    gcloud compute addresses list
    

  3. Créez des règles de transfert globales pour les adresses IP externes. Elles transmettront les requêtes HTTP IPV4 et IVP6 à votre proxy HTTP.

    gcloud compute forwarding-rules create fortressnet-http-rule 
    --global
    --target-http-proxy fortressnet-http-proxy
    --ports 80
    --address [LOAD_BALANCER_IP_ADDRESS]
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule 
    --global
    --target-http-proxy fortressnet-http-proxy
    --ports 80
    --address [LOAD_BALANCER_IPV6_ADDRESS]

(Facultatif) Vérifiez que l'équilibreur de charge fonctionne. Vous devrez peut-être patienter quelques minutes.

Console

  1. Accédez à la page Équilibrage de charge dans la console GCP.
    Accéder à la page "Équilibrage de charge"
  2. Attendez qu'une coche verte apparaisse à côté de fortressnet-balancer dans la colonne Backends.
  3. Cliquez sur fortressnet-balancer.
  4. Sous Frontend, copiez l'adresse IPV4 figurant dans la colonne IP:Port. Les adresses IPV4 respectent le format suivant : www.xxx.yyy.zzz. Il est inutile d'ajouter le numéro de port :nn à la fin de l'adresse.) Si la section Frontend est manquante, patientez quelques instants, puis actualisez la page Web.
  5. Saisissez l'adresse IP dans un navigateur Web.

La page Web par défaut Apache2 Debian doit s'afficher.

Si une page Web "Erreur 404 (page introuvable)" est renvoyée, patientez encore quelques minutes.

gcloud

  1. Recherchez les adresses IP externes de l'équilibreur de charge.

    gcloud compute addresses list
    

  2. Interrogez l'adresse IPV4. (Les adresses IPV4 respectent le format suivant : www.xxx.yyy.zzz.)

    curl http://[LOAD_BALANCER_IP_ADDRESS] | head
    

Un texte HTML incluant la ligne suivante doit s'afficher : <title>Apache2 Debian Default Page: It works</title>.

Si <title>Error 404 (Not Found)!!1</title> s'affiche, patientez encore quelques minutes.

Bonne pratique : créez un pare-feu sécurisé pour n'autoriser que le trafic interne provenant de l'équilibreur de charge et de la vérification de l'état. Ensuite, supprimez le pare-feu d'origine qui autorisait toutes les requêtes HTTP de façon à empêcher les clients externes d'accéder à des instances individuelles.

Console

  1. Créez un pare-feu n'autorisant que le trafic provenant de l'équilibreur de charge et de la vérification d'état.

    1. Accédez à la page Règles de pare-feu de la console GCP.
      Accéder à la page "Règles de pare-feu"
    2. Cliquez sur Créer une règle de pare-feu.
    3. Définissez le paramètre Nom sur fortressnet-allow-load-balancer.
    4. Pour Réseau, sélectionnez fortressnet.
    5. Pour Cibles, sélectionnez All instances in the network.
    6. Pour Plages d'adresses IP sources, saisissez 130.211.0.0/22, puis appuyez sur la touche Entrée. Ensuite, saisissez 35.191.0.0/16, puis appuyez de nouveau sur Entrée.
    7. Sous Protocoles et ports, sélectionnez tcp et saisissez 80.
    8. Cliquez sur Créer.
  2. Supprimez l'ancien pare-feu autorisant tout le trafic.

    1. Cochez la case située à côté de fortressnet-allow-http.
    2. Cliquez sur Supprimer en haut de la page.
    3. Dans la boîte de dialogue, cliquez sur Supprimer.

gcloud

  1. Créez un pare-feu n'autorisant que le trafic provenant de l'équilibreur de charge et de la vérification d'état.

    gcloud compute firewall-rules create fortressnet-allow-load-balancer 
    --network fortressnet
    --source-ranges 130.211.0.0/22,35.191.0.0/16
    --allow tcp:80

  2. Supprimez l'ancien pare-feu autorisant tout le trafic.

    gcloud compute firewall-rules delete fortressnet-allow-http -q
    

(Facultatif) Vérifier que l'autoscaling et l'équilibrage de charge fonctionnent

Générer du trafic de test

Supposons que ce soit le matin en Europe et que votre service Web enregistre tout à coup un pic de trafic. Générez simultanément un grand nombre de requêtes de clients en provenance d'Europe.

Console

  1. Créez une instance équipée de l'outil de test de charge Siege.

    1. Accédez à la page Instances de VM dans la console GCP.
      Accéder à la page "Instances de VM"
    2. Cliquez sur Créer une instance.
    3. Définissez le paramètre Nom sur europe-loadtest.
    4. Pour Région, sélectionnez europe-west1.
    5. Cliquez sur Gestion, sécurité, disques, réseau et location unique pour faire apparaître les paramètres avancés. Divers onglets doivent s'afficher.
    6. Cliquez sur l'onglet Gestion.
    7. Sous Automatisation, saisissez le script de démarrage suivant :

      apt-get install -y siege
      

    8. Cliquez sur Créer en bas de la page.

  2. Obtenez l'adresse IPV4 de l'équilibreur de charge.

    1. Accédez à la page Équilibrage de charge dans la console GCP.
      Accéder à la page "Équilibrage de charge"
    2. Cliquez sur fortressnet-balancer.
    3. Sous Frontend, copiez l'adresse IPV4 figurant dans la colonne IP:Port. Les adresses IPV4 respectent le format suivant : www.xxx.yyy.zzz.
  3. Connectez-vous via SSH à l'instance de test de charge.

    1. Accédez à la page Instances de VM dans la console GCP.
      Accéder à la page "Instances de VM"
    2. Attendez qu'une coche verte apparaisse à côté de l'instance europe-loadtest dans la colonne Nom.
    3. Cliquez sur SSH pour europe-loadtest dans la colonne Connexion.
  4. Démarrez Siege. Ciblez l'adresse IPV4 de l'équilibreur de charge.

    siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
    

gcloud

  1. Créez une instance équipée de l'outil de test de charge Siege.

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt-get -y install siege'
    
  2. Obtenez l'adresse IPV4 de l'équilibreur de charge.

    gcloud compute addresses list
    
  3. Démarrez une nouvelle session d'interface système où la commande gcloud est disponible.

    1. Dans la nouvelle session d'interface système, connectez-vous via SSH à l'instance de test de charge.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. Démarrez Siege. Ciblez l'adresse IPV4 de l'équilibreur de charge.

      siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
      

Une fois la commande siege exécutée, un résultat semblable au suivant doit s'afficher : The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Surveiller l'équilibrage de charge et l'autoscaling

  1. Accédez à la page Équilibrage de charge dans la console GCP.
    Accéder à la page "Équilibrage de charge"
  2. Cliquez sur l'équilibreur de charge nommé fortressnet-balancer.
  3. Cliquez sur l'onglet Surveillance.
  4. Dans le menu déroulant Backend, sélectionnez fortressnet-backend-service.

L'affichage d'une quantité suffisante de données peut prendre jusqu'à dix minutes. Un écran semblable au suivant doit bientôt apparaître :

Écran de surveillance de la console GCP montrant que les requêtes en provenance d'Europe sont réparties de manière égale entre les trois backends

Que se passe-t-il dans ce scénario ?

  1. Le test de charge commence à envoyer une grande quantité de trafic à la fois. Au départ, l'équilibreur de charge répartit les requêtes de manière égale entre les trois backends. Le nombre de requêtes dépasse rapidement les limites de l'autoscaling et peut même amener vos serveurs à renvoyer des erreurs Backend 5xx errors qui s'affichent sur l'écran de surveillance. L'autoscaler démarre des instances supplémentaires selon les besoins.

  2. L'autoscaling s'adapte aux besoins de capacité. Pour réduire la latence des requêtes, les équilibreurs de charge Compute Engine tentent d'acheminer ces dernières vers le backend le plus proche du client. Dans ce cas, étant donné que le trafic de test de charge provient d'Europe, l'équilibreur de charge préfère acheminer davantage de requêtes vers le backend situé en Europe. Par conséquent, l'autoscaling peut démarrer d'autres instances dans ce backend pour qu'il traite une plus grande partie des requêtes.

Générer du trafic de test à un autre endroit

Supposons que votre service Web devienne également très populaire en Asie et qu'un pic de trafic survienne l'après-midi. Générez un grand nombre de requêtes en provenance d'Asie.

Console

  1. Créez une autre instance équipée de l'outil de test de charge Siege.

    1. Accédez à la page Instances de VM dans la console GCP.
      Accéder à la page "Instances de VM"
    2. Cliquez sur Créer une instance.
    3. Définissez le paramètre Nom sur asia-loadtest.
    4. Pour Région, sélectionnez asia-east1.
    5. Cliquez sur Gestion, sécurité, disques, réseau et location unique pour faire apparaître les paramètres avancés. Divers onglets doivent s'afficher.
    6. Cliquez sur l'onglet Gestion.
    7. Sous Automatisation, saisissez le script de démarrage suivant :

      apt-get install -y siege
      

    8. Cliquez sur Créer en bas de la page.

  2. Obtenez l'adresse IP de l'équilibreur de charge.

    1. Accédez à la page Équilibrage de charge dans la console GCP.
      Accéder à la page "Équilibrage de charge"
    2. Cliquez sur fortressnet-balancer.
    3. Sous Frontend, copiez l'adresse IPV4 figurant dans la colonne IP:Port. Les adresses IPV4 respectent le format suivant : www.xxx.yyy.zzz.
  3. Connectez-vous via SSH à l'instance de test de charge.

    1. Attendez qu'une coche verte apparaisse à côté de l'instance asia-loadtest dans la colonne Nom.
    2. Cliquez sur SSH pour asia-loadtest dans la colonne Connexion.
  4. Démarrez Siege. Ciblez l'adresse IPV4 de l'équilibreur de charge.

    siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
    

gcloud

  1. Dans votre session d'interface système d'origine, créez une autre instance équipée de l'outil de test de charge Siege.

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt-get -y install siege'
    
  2. Obtenez l'adresse IPV4 de l'équilibreur de charge.

    gcloud compute addresses list
    
  3. Démarrez une nouvelle session d'interface système où la commande gcloud est disponible.

    1. Dans la nouvelle session d'interface système, connectez-vous via SSH à l'instance de test de charge.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. Démarrez Siege. Ciblez l'adresse IPV4 de l'équilibreur de charge.

      siege -c150 http://[LOAD_BALANCER_IP_ADDRESS]
      

Là encore, un résultat semblable au suivant doit s'afficher : The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Surveiller l'équilibrage de charge et l'autoscaling

Revenez à l'écran de surveillance de l'équilibrage de charge, comme expliqué précédemment. L'affichage d'une quantité suffisante de nouvelles données peut prendre jusqu'à dix minutes. Un écran semblable au suivant doit bientôt apparaître :

Écran de surveillance de la console GCP montrant que les requêtes en provenance d'Europe et d'Asie sont réparties entre les trois backends

Que se passe-t-il dans ce scénario ?

  1. Là encore, le test de charge envoie un grand nombre de requêtes à la fois. Au départ, l'équilibreur de charge répartit les requêtes de manière égale entre les trois backends. Étant donné que le nombre de requêtes dépasse les limites de l'autoscaling, l'autoscaler démarre des instances supplémentaires selon les besoins.

  2. L'autoscaling s'adapte aux nouveaux besoins de capacité. L'équilibreur de charge préfère toujours acheminer les requêtes vers les backends les plus proches. Par conséquent, le backend situé en Asie recevra des requêtes provenant principalement d'Asie tandis que celui basé en Europe recevra des requêtes issues essentiellement d'Europe. Le backend situé aux États-Unis recevra tout le trafic restant.

Effectuer un nettoyage

Une fois que vous avez terminé ce tutoriel relatif à l'autoscaling, vous pouvez nettoyer les ressources que vous avez créées sur Google Cloud Platform afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé dans le cadre de ce tutoriel.

Pour ce faire, procédez comme suit :

  1. Dans la console GCP, accédez à la page "Projets".

    Accéder à la page Projets

  2. Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des instances

Pour supprimer une instance Compute Engine, procédez comme suit :

  1. Dans la console GCP, accédez à la page "Instances de VM".

    Accéder à la page Instances de VM

  2. Cochez la case à côté de Il s'agit de l'instance que vous souhaitez supprimer.
  3. Cliquez sur le bouton Supprimer en haut de la page pour supprimer l'instance.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine