Concepts d'équilibrage de charge proxy TCP

L'équilibrage de charge proxy TCP de Google Cloud Platform (GCP) vous permet d'utiliser une adresse IP unique pour vos utilisateurs du monde entier. L'équilibrage de charge proxy TCP de GCP redirige automatiquement le trafic vers les instances les plus proches de l'utilisateur.

Notez que pour utiliser la fonction d'équilibrage de charge au niveau mondial, vous devez opter pour le niveau Premium des Niveaux de service réseau, qui est le niveau par défaut. Avec le niveau Standard, l'équilibrage de charge est géré au niveau régional.

L'équilibrage de charge proxy TCP cloud est destiné au trafic non-HTTP. Pour le trafic HTTP, utilisez l'équilibrage de charge HTTP. Pour le trafic SSL transmis par le biais d'un serveur proxy, utilisez l'équilibrage de charge proxy SSL.

L'équilibrage de charge proxy SSL accepte le trafic client provenant d'adresses IPv4 et d'adresses IPv6. Les requêtes client IPv6 sont interrompues au niveau de la couche d'équilibrage de charge, puis transmises par le biais d'un serveur proxy, via IPv4, à vos instances backends.

Contenu

Aperçu

Lorsque vous utilisez l'équilibrage de la charge proxy TCP pour gérer l'acheminement de votre trafic TCP, vous pouvez interrompre les sessions TCP de vos clients au niveau de la couche d'équilibrage de charge, puis transférer le trafic vers vos instances de machines virtuelles via TCP ou SSL.

L'équilibrage de charge proxy TCP peut être configuré en tant que service global d'équilibrage de charge. Avec cette configuration, vous pouvez déployer vos instances dans plusieurs régions. Le service d'équilibrage de charge global s'occupe de rediriger automatiquement le trafic vers la région la plus proche de l'utilisateur. Si une région est saturée, l'équilibreur de charge redirige automatiquement les nouvelles connexions vers une autre région disposant d'une capacité suffisante. En pareil cas, les connexions utilisateur existantes restent dans la région actuelle.

Avantages de l'équilibrage de charge proxy TCP :

  • Routage intelligent : l'équilibreur de charge peut acheminer les requêtes vers les emplacements de backend disposant d'une capacité suffisante. En revanche, un équilibreur de charge L3/L4 ne peut acheminer les requêtes que vers des backends régionaux, sans tenir compte de la capacité de ces derniers. L'utilisation d'un routage plus intelligent permet de provisionner à N+1 ou N+2 au lieu de x*N.
  • Correctifs de sécurité : en cas de survenue de failles dans la pile TCP, Cloud Load Balancing applique automatiquement des correctifs à l'équilibreur de charge afin de préserver la sécurité de vos instances.
  • L'équilibrage de charge proxy TCP accepte les ports 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883 et 5222.

Composants

Les éléments présentés ci-dessous sont les composants des équilibreurs de charge proxy TCP.

Règles de transfert et adresses

Les règles de transfert permettent d'acheminer le trafic par adresse IP, port et protocole vers une configuration d'équilibrage de charge comprenant un proxy cible et un ou plusieurs services de backend.

Chaque règle de transfert fournit une adresse IP unique que vous pouvez utiliser dans les enregistrements DNS relatifs à votre application. Aucun équilibrage de charge DNS n'est requis. Vous pouvez soit réserver une adresse IP statique qui sera utilisée par le service, soit laisser Google Cloud Load Balancing en attribuer une pour votre compte. Nous vous recommandons de réserver une adresse IP statique. Si vous ne le faites pas, vous devez mettre à jour votre enregistrement DNS avec l'adresse IP éphémère nouvellement attribuée chaque fois que vous supprimez une règle de transfert ou que vous en créez une.

Proxy cibles

L'équilibrage de charge proxy TCP met fin aux connexions TCP du client et crée de nouvelles connexions vers les instances. Par défaut, l'adresse IP et les informations de port d'origine du client ne sont pas conservées. Vous pouvez conserver ces informations à l'aide du protocole de PROXY. Les proxys cibles acheminent directement les requêtes entrantes vers les services de backend.

Services backend

Les services de backend dirigent le trafic entrant vers un ou plusieurs backends associés. Chaque serveur est composé d’un groupe d'instances ou d'un groupe de points de terminaison du réseau et de métadonnées de capacité de service. La capacité de service du backend peut être basée sur l'utilisation processeur ou sur le nombre de requêtes par seconde (RPS).

Chaque service de backend spécifie les vérifications d'état à effectuer pour les instances disponibles.

Vous pouvez activer le drainage de connexion sur les services de backend afin de garantir à vos utilisateurs un temps d'interruption minimal. De telles interruptions peuvent se produire lorsqu'une instance est arrêtée, supprimée manuellement ou supprimée par un autoscaler. Pour en savoir plus sur la manière dont vous pouvez utiliser le drainage de connexion pour minimiser les interruptions de service, reportez-vous à la documentation Activer le drainage de connexion.

Protocole de communication avec les backends

Lorsque vous configurez un service de backend pour l'équilibreur de charge proxy TCP, vous définissez le protocole utilisé par le service de backend pour communiquer avec les backends. Vous avez le choix entre les protocoles SSL et TCP. L'équilibreur de charge n'utilise que le protocole spécifié et n'essaie pas de négocier une connexion à l'aide de l'autre protocole.

Buckets backend

Les buckets backend dirigent le trafic entrant vers des buckets Google Cloud Storage, et non vers un groupe d'instances.

Les buckets sont des conteneurs permettant de stocker des données. Vous pouvez utiliser des buckets comme espace de stockage commun entre des instances de VM, Google App Engine et d'autres services cloud. Utilisez un bucket de stockage lorsque vous disposez d'une grande quantité de données que vous n'avez pas besoin de stocker localement sur une seule instance de VM.

Règles de pare-feu

Les règles de pare-feu permettent au trafic d'atteindre vos instances. Vous devez configurer des règles de pare-feu pour autoriser le trafic provenant de l'équilibreur de charge et du vérificateur d'état.

Vous pouvez utiliser une seule règle de pare-feu dans les cas suivants :

  • La règle autorise le trafic sur le port utilisé par votre règle de transfert globale.
  • Le vérificateur d'état utilise le même port que l'équilibreur de charge.

Si le vérificateur d'état utilise un autre port, vous devez créer une règle de pare-feu distincte pour ce port.

Notez que les règles de pare-feu permettent de bloquer ou d'autoriser le trafic au niveau des instances, et non en périphérie de réseau. Elles ne peuvent pas empêcher le trafic d'atteindre l'équilibreur de charge lui-même.

Notez également que Google Cloud Platform utilise une large plage d'adresses IP, lesquelles évoluent au fil du temps. Si vous devez identifier des adresses IP externes à un instant T, suivez les instructions décrites dans les Questions fréquentes sur Google Compute Engine.

Return path (chemin de retour)

Pour les vérifications d'état, GCP utilise des routes spéciales qui ne sont pas définies dans votre réseau VPC. Pour obtenir des informations complètes à ce sujet, consultez la documentation relative aux chemins de retour des équilibreurs de charge.

Exemple d'équilibrage de charge proxy TCP

Avec l'équilibrage de charge proxy TCP, les connexions TCP sont arrêtées au niveau de la couche d'équilibrage de charge, puis transmises par le biais d'un serveur proxy au groupe d'instances disponible le plus proche.

Dans cet exemple, les connexions associées au trafic des utilisateurs de l'Iowa et de Boston sont interrompues au niveau de la couche d'équilibrage de charge. Dans le diagramme, ces connexions sont identifiées par les libellés 1a et 2a. Des connexions distinctes sont établies entre l'équilibreur de charge et les instances de backend sélectionnées. Ces connexions sont identifiées par les libellés 1b et 2b.

Google Cloud Load Balancing avec terminaison TCP (cliquez pour agrandir)
Google Cloud Load Balancing avec terminaison TCP (cliquez pour agrandir)

Affinité de session

L'affinité de session permet d'envoyer toutes les requêtes d'un même client à la même instance de machine virtuelle, sous réserve que l'instance soit saine et dispose d'une capacité suffisante.

L'équilibrage de charge proxy TCP offre une fonctionnalité d'affinité basée sur les adresses IP client, qui permet de transmettre toutes les requêtes provenant d'une même adresse IP client à la même instance.

Interfaces

Vous pouvez configurer et mettre à jour le service d'équilibrage de charge proxy TCP à l'aide des interfaces suivantes :

  • L'outil de ligne de commande gcloud : un outil de ligne de commande inclus dans le SDK Cloud. La documentation du service d'équilibrage de charge proxy TCP fournit des exemples d'utilisation de cet outil. Pour une présentation complète de l'outil, consultez le guide de l'outil gcloud. Vous trouverez des commandes spécifiques à l'équilibrage de charge dans le groupe de commandes de gcloud compute.

    Vous pouvez également obtenir une aide détaillée pour n'importe quelle commande gcloud à l'aide de l'indicateur --help :

    gcloud compute http-health-checks create --help
    
  • La console Google Cloud Platform : la console Google Cloud Platform peut exécuter toutes les tâches liées à l'équilibrage de charge.

  • L'API REST : l'API Google Cloud Load Balancing peut exécuter toutes les tâches liées à l'équilibrage de charge. La documentation de référence de l'API décrit les ressources et les méthodes mises à votre disposition.

Ports ouverts

Les équilibreurs de charge proxy TCP sont des équilibreurs de charge de type "proxy inverse". L'équilibreur de charge interrompt les connexions entrantes, puis ouvre de nouvelles connexions entre lui-même et les backends. La fonctionnalité de proxy inverse est fournie par les instances Google Front End (GFE).

Les règles de pare-feu que vous définissez bloquent le trafic entre les GFE et les backends, mais elles ne bloquent pas le trafic entrant vers les GFE.

Les équilibreurs de charge proxy TCP offrent un certain nombre de ports ouverts pour les autres services Google exécutés sur la même architecture. Si vous effectuez une analyse de sécurité ou de port sur l'adresse IP externe de votre équilibreur de charge, vous allez constater que des ports supplémentaires semblent être ouverts.

Cela n'affecte en rien les équilibreurs de charge proxy TCP. Les règles de transfert externes utilisées dans la définition d'un équilibreur de charge SSL ne peuvent faire référence qu'aux ports TCP 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883 et 5222. Le trafic associé aux autres ports de destination TCP n'est pas transféré vers le backend de l'équilibreur de charge.

Étapes suivantes