Création d’un équilibreur de charge HTTP(s) sur Google Cloud Platform (GCP)
Si vous hébergez vos applications sur Google Cloud et que vous recherchez une meilleure haute disponibilité, vous devriez essayer de mettre en œuvre un équilibreur de charge (LB).
Le LB de Google Cloud est intelligent. Il offre plus qu’un équilibreur traditionnel.
- HTTP/2 activé
- Interruption de la poignée de main SSL
- Règles SSL/TLS personnalisées
- Acheminement du trafic vers le serveur le plus proche
- Routage basé sur le chemin
- Mise à l’échelle automatique
et bien plus encore…
Voici un exemple : j’ai deux serveurs (l’un aux États-Unis et l’autre au Royaume-Uni). Créons un équilibreur de charge et acheminons le trafic vers les deux serveurs.
Étant donné que Google propose une mise à l’échelle automatique, vous disposez de plusieurs options et pouvez choisir ce dont votre entreprise a besoin. Cependant, dans cet article, je vais vous expliquer comment créer un équilibreur de charge en utilisant des groupes d’instances non gérés qui ne supportent pas l’auto-scaling.
Créer des groupes d’instances
Tous les serveurs doivent se trouver à l’intérieur des groupes d’instances. C’est donc une condition préalable à la création d’un LB.
- Connectez-vous à la console GCP
- Naviguez vers Compute Engine >> Groupes d’instances
- Cliquez sur créer un groupe d’instance
- Entrez le nom, sélectionnez la zone comme unique, la région où se trouvent vos serveurs, le groupe d’instance non géré, choisissez le serveur dans le menu déroulant de l’instance VM et cliquez sur Créer
Une zone unique ne peut ajouter que des serveurs de cette zone. Comme j’ai des serveurs au Royaume-Uni et aux Etats-Unis, je dois créer un groupe de deux instances. Je vais répéter la procédure pour ajouter un autre serveur (server-uk).
Et ces deux groupes sont créés.
Créer un LB HTTP(s)
Google propose trois types de LB.
- HTTP (s)
- TCP
- UDP
Pour gérer la distribution du trafic des applications web, HTTP(s) convient. Créons-le.
- Naviguez vers Services réseau >> équilibrage de charge
- Cliquez sur Créer un équilibreur de charge
- Démarrez la configuration pour l’équilibrage de charge HTTP(s)
- Entrez le nom LB
- Dans l’onglet Configuration du backend, sélectionnez le menu déroulant et créez un service backend
- Saisissez le nom et sélectionnez le type de backend en tant que groupes d’instances
- Ajoutez les deux groupes d’instances (server-us et server-uk)
- Ajustez le numéro de port – numéro de port du serveur web ou de l’application qui écoutera sur les serveurs
- Sous “Health check”, cliquez sur “create”
- Entrez le nom, sélectionnez le protocole, le port
Un contrôle de santé est essentiel pour que LB sache quelle instance est en panne, de sorte qu’il arrête d’envoyer du trafic. Ci-dessous, j’ordonne à LB de toucher l’IP du serveur avec le port 80 toutes les 10 secondes. Si un serveur ne répond pas trois fois consécutivement, LB marquera cette instance comme étant hors service.
- Cliquez sur save et continuez à créer la santé
- Cliquez sur créer dans l’assistant de service backend
- L’écran s’affichera comme suit
Dans l’onglet règles d’hôte et de chemin, assurez-vous que le service backend nouvellement créé (geekflarelab dans mon cas) est sélectionné
Dans l’onglet configuration du frontend, entrez le nom et créez une nouvelle adresse IP.
- Une fenêtre s’ouvrira pour réserver une nouvelle adresse IP statique. Donnez le nom et cliquez sur réserver.
- Cliquez sur Terminé
Note : il est recommandé d’obtenir l’IP statique pour votre LB afin que vous puissiez l’utiliser pour pointer vers votre domaine.
Dans l’onglet de révision, assurez-vous que tout va bien et une fois satisfait, cliquez sur Créer
La création prendra quelques secondes et vous devriez les voir apparaître dans la liste. Lorsque vous cliquez sur le LB nouvellement créé, les détails s’affichent comme ci-dessous.
Comme vous pouvez le voir, les deux instances sont saines et le LB est techniquement opérationnel.
Ensuite, vous devez mettre à jour l’enregistrement A de votre domaine pour qu’il pointe vers l’IP frontale de LB. Une fois que c’est fait, lorsque vous pointez votre domaine, il devrait pointer vers LB et distribuer le trafic vers les instances.
J’ai fait quelques tests de charge et voici le résultat.
Vous pouvez voir que le trafic en provenance d’Europe est acheminé vers le serveur le plus proche situé à Londres, et que le trafic en provenance d’Amérique du Nord et d’Asie est acheminé vers le serveur américain. La bonne chose est que vous n’avez pas besoin de configurer quoi que ce soit pour le routage du trafic géographique, c’est une fonctionnalité par défaut. La surveillance ci-dessus est disponible sous l’onglet backends.
Conclusion
Créer un LB est facile, et j’espère que ceci vous en a donné une idée. Il y a beaucoup de configuration que vous pouvez faire pour répondre aux besoins de votre application comme l’affinité de session, l’intégration CDN, le certificat SSL, etc. Si vous étudiez la possibilité d’avoir un équilibreur de charge pour votre application, alors jouez avec et voyez comment cela vous aide.
Le coût est basé sur l’utilisation, il n’y a donc pas de blocage mensuel ou annuel. Je pense que l’utilisation minimale coûterait environ 18 $ par mois. Si vous souhaitez en savoir plus sur l’administration de Google Cloud, vous pouvez suivre ce cours en ligne.