À mesure que votre entreprise grandit, le débit réseau de votre infrastructure s’intensifie, les temps de réponse et de traitement de vos serveurs augmentent et vous commencez à avoir des difficultés à assurer un service correct à vos utilisateurs/clients. Le moment est venu de réfléchir à l’usage d’un load balancer, un produit important pour les entreprises qui désirent se mettre à l’échelle et assurer la meilleure expérience utilisateur possible.

Dans cet article, découvrez concrètement le fonctionnement d’un load balancer, ses usages et les avantages pour votre infrastructure cloud.

Multi-cloud load balancer Scaleway
Le multi-cloud load balancer de Scaleway

La définition d’un load balancer

Un load balancer est un produit réseau qui a pour but de répartir la charge réseau entre un ou plusieurs serveurs, c'est-à-dire qu’il prend en charge l’ensemble des requêtes réseau à un serveur et fait office d’aiguillage des paquets réseaux vers un serveur suivant une ou plusieurs règles prédéfinies.

Ainsi, plusieurs serveurs peuvent être hébergés derrière une même adresse IP, permettant de mettre en commun les ressources. En effet, le load balancer peut être hébergé soit dans le cloud, soit on-premise dans un serveur privé ; il redirige vers des composants portants des IPs, qui peuvent être des instances cloud, des serveurs dédiés ou Bare Metal.

Le fonctionnement d’un load balancer

Le load balancer agit comme un point d’entrée de l’infrastructure : les utilisateurs font appel à l’URL de l'application ou du site web, qui est dirigé vers l’adresse IP du load balancer puis la requête atteint le serveur de destination de manière transparente.

Grâce à des règles pré-établies, le load balancer déterminera comment il traite la requête. Il y a plusieurs types de règles possibles :

  • Round Robin : chaque requête est mise en file d’attente puis assignée par séquence définie aux backends, cette règle peut être assimilée à un tourniquet. Elle est de loin la plus utilisée et la plus simple à mettre en place, puisqu’elle est très bien adaptée aux infrastructures qui ont des backends identiques ;
  • Least Connection : chaque requête est assignée au serveur ayant le moins de connexions actives. Cette règle est adaptée aux cas d’usages où les utilisateurs ont des temps de connexions différents les uns des autres et permet d’avoir des serveurs bien équilibrés ;
  • First Connection : la requête entrante est redirigée vers le premier serveur disponible pour être traitée ;
  • Sticky session : chaque requête est identifiée par un cookie ou par l’adresse IP de l’utilisateur auquel le load balancer assigne un backend où il sera redirigé à chaque connexion. Ce service est utile pour personnaliser le service à un utilisateur afin qu’il retrouve ses informations rapidement comme par exemple un panier de sites e-commerces.

La mise en place de règles pour l’attribution des workloads est la fonction principale du load balancer mais il existe bien d’autres fonctionnalités que nous allons vous présenter dans la section suivante.

Les autres fonctionnalités d’un load balancer cloud

Un outil aussi précieux que le load balancer peut porter bien d’autres fonctionnalités, liées notamment à l’amélioration de la sécurité, de la résilience ou encore de la performance réseau.

Mettre en place des Health Checks

Grâce au load balancer vous pouvez vérifier si les backends sont fonctionnels et assurent le service demandé. Le load balancer envoie une requête au serveur en backend et en retour le serveur répond. S’il n’y a pas de réponse, alors le load balancer définit le serveur comme défectueux. Le développeur choisit l’action à prendre en conséquence.

Exemple de requête API :

---
GET /lb/v1/regions/{region}/lbs/{lb_id}/backend-stats

et sa réponse type :
{
"backend_servers_stats": [
{
"instance_id": "string",
"backend_id": "string",
"ip": "string",
"server_state": "stopped",starting or  running or stopping.
"server_state_changed_at": "string",
"last_health_check_status": "unknown"or;neutral or failed or passed or condpass. 
}
],
"total count": 42

Mettre à jour votre infrastructure sans rupture de service

Comme nous l’avons vu, le load balancer permet de mettre en miroir plusieurs serveurs proposant le même service : si un serveur ne répond pas, un autre prend le relais. Cette résilience permet de volontairement débrancher un serveur sans couper le service pour les utilisateurs afin de pouvoir faire des mises à jour logicielles, de sécurité, changer la taille d’une instance ou bien actualiser un élément de l’infrastructure sans affecter l’uptime général du service. Grâce à au load balancer, vous pouvez décider du meilleur moment  pour effectuer vos mises à jour.

Process load balancer Scaleway 

Définir des règles d'accès

Votre application ou site web accueille désormais de nombreuses visites. Maintenant que vous êtes en production et que vous êtes pleinement lancé dans votre business, vous recevez des connexions de vos clients qui sont légitimes mais aussi d’autres moins désirées, comme par exemple des robots de scrapping, des concurrents étrangers ou encore des tentatives d’intrusion.

Vous pouvez mettre des règles, dites ACL (Access Control List), qui permettent de bannir certaines IPs ou bien d’autoriser uniquement certaines connexions, afin d’augmenter votre niveau de sécurité.

{
 "name": "string",
 "action": {
   "type": "deny"
 },
 "match": {
   "ip_subnet": [192.168.1.1
     
   ],
   "http_filter": "acl_http_filter_none",
   "http_filter_value": [
     "string"
   ],
   "http_filter_option": "string",
   "invert": "boolean"
 },
 "index": 42

Gérer vos certificats TLS / SSL

En tant que point d’entrée principal de l'infrastructure, le load balancer peut porter le chiffrement TLS/SSL pour avoir une connexion sécurisée entre le navigateur de l’utilisateur, le site web et le serveur de backend.

Cela permet d’assurer la confidentialité et la sécurité des requêtes entre l’utilisateur et le load balancer.

Il y a différentes façons de gérer un certificat TLS/SSL avec un load balancer :

  • SSL passthrough : Dans ce cas, le load balancer ne déchiffre pas la connexion et la transfère directement au serveur. Le certificat engendre une légère surcharge dans le paquet réseau, mais c’est le moyen le plus simple pour gérer du HTTPS. Il faut aussi noter qu’aucune action type Layer 7 ne peut être faite comme par exemple faire porter des cookies ou bien activer la sticky session.
  • SSL offloading : Offloading signifie que le load balancer valide le certificat sur la requête venant de l'extérieur et la transfère sans chiffrement au serveur. L’avantage de cette technique est d’améliorer les performances réseau après le load balancer pour traiter les requêtes plus rapidement.
  • SSL Bridging : Le Bridge permet de valider le certificat à la réception de la requête puis de rediriger le trafic avec le chiffrement d’un nouveau certificat pour la connexion entre le backend et le load balancer. On maximise ici la sécurité des requêtes et du réseau entre les différents composants.

S’assurer d’une haute disponibilité

Le load balancer devient le “single point of failure” de l’architecture car il est l’unique point d'accès au reste des instances, si le load balancer tombe, l’infrastructure devient inaccessible. C’est pourquoi, il est important de s’assurer qu’un load balancer dispose d’une architecture HA (High Availability) avec de la redondance.

Chez certains fournisseurs le load balancer est doublé d’une seconde instance qui peut prendre le relais à tout moment, pour d’autres le load balancer est régionalisé, c’est-à-dire qu’il est toujours porté par une des trois AZ de la région.

Pour s’assurer d’une bonne disponibilité, vous pouvez aussi prévoir le cas où toutes les redondances ont failli en redirigeant par exemple le trafic vers un site statique hébergé sur le service Object Storage pour éviter que les utilisateurs se retrouvent en face à une 404.

Augmenter la résilience et la redondance par les backends et les Health Checks, améliorer les performances réseau grâce à la gestion des certificats ou encore faire passer la sécurité au niveau supérieur par la configuration de règles d'accès sont les principaux bénéfices apportés par les différentes fonctionnalités que l’on vient d’évoquer. En complément des règles de redirection, fonction principale du load balancer, elles assurent au produit une place importante dans l’infrastructure cloud.

Toute entreprise qui entreprend aujourd’hui de construire de façon pérenne et scalable son business dans le Cloud doit implémenter un load balancer afin d’assurer la pérennité de son infrastructure et exploiter le Cloud à son plein potentiel.


Le load balancer de Scaleway

Scaleway en tant que fournisseur de cloud propose bien sûr dans son portfolio un load balancer. Hébergé sur une infrastructure hautement disponible, nous offrons une capacité de bande passante allant jusqu'à 4 Gbits/s et des backends illimités pour vous aider à faire évoluer votre infrastructure en toute sérénité.
Scaleway autorise l’ouverture des connexions vers des backends en dehors de son infrastructure afin de permettre à nos clients de construire une architecture multi-cloud.

Connectez-vous directement à la console Scaleway pour démarrer votre premier service.