Présentation de l'équilibrage de charge proxy TCP

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

Pour utiliser l'é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. Sinon, l'équilibrage de charge est traité au niveau régional.

L'équilibrage de charge proxy TCP est destiné au trafic TCP sur des ports connus spécifiques, tels que le port 25 du protocole SMTP (Simple Mail Transfer Protocol). Pour en savoir plus, consultez la section Spécifications de ports. Pour gérer le trafic client chiffré sur ces ports, utilisez l'équilibrage de charge proxy SSL.

Pour en savoir plus sur les différences entre les équilibreurs de charge Google Cloud, consultez les documents suivants :

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 serveur proxy, via IPv4, à vos backends.

Lorsque vous utilisez l'équilibrage de charge proxy 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 backend via TCP ou SSL.

Exemple d'équilibrage de charge proxy TCP

Avec l'équilibrage de charge proxy TCP, le trafic provenant d'une connexion TCP est interrompu au niveau de la couche d'équilibrage de charge, puis transmis par le biais d'un proxy au backend disponible le plus proche.

Dans cet exemple, les connexions associées au trafic des utilisateurs de Séoul et de Boston sont interrompues au niveau de la couche d'équilibrage de charge. 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.

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

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 backends 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

Voici quelques avantages de l'utilisation 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 leur capacité. 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 backends.

  • L'équilibrage de charge proxy TCP accepte les ports suivants : 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200 et 9300.

Comportement de l'équilibreur de charge dans les niveaux de service réseau

L'équilibrage de charge proxy TCP est un service à l'échelle mondiale disponible avec le niveau Premium. Vous ne pouvez disposer que d'un seul service de backend (au niveau Premium), qui peut comporter des backends dans plusieurs régions. Le trafic est alloué aux backends de la manière suivante :

  1. Lorsqu'un client envoie une requête, le service d'équilibrage de charge détermine l'origine approximative de la requête à partir de l'adresse IP source.
  2. Le service d'équilibrage de charge connaît les emplacements des backends détenus par le service de backend, leur capacité globale et leur utilisation actuelle globale.
  3. Si les instances backend les plus proches de l'utilisateur disposent d'une capacité suffisante, la requête est transmise à l'ensemble de backends le plus proche.
  4. Les requêtes envoyées vers une région donnée sont réparties de manière équitable entre l'ensemble des instances backend de cette région. Toutefois, pour des charges très faibles, la répartition peut sembler non équitable.
  5. Si aucune instance backend opérationnelle d'une région donnée ne dispose d'une capacité suffisante, l'équilibreur de charge envoie la requête à la région la plus proche avec de la capacité disponible.

Avec le niveau Standard, l'équilibrage de charge proxy TCP est un service régional. Ses backends doivent tous être situés dans la région utilisée par l'adresse IP externe et la règle de transfert de l'équilibreur de charge.

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 de 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 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 des connexions vers les backends. 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 de 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 diffusion du backend peut être basée sur l'utilisation du processeur ou sur le nombre de requêtes par seconde (RPS).

Les équilibreurs de charge proxy TCP possède chacun une seule ressource de service de backend. Les modifications apportées au service de backend ne sont pas instantanées. La propagation des modifications sur Google Front End (GFE) peut prendre plusieurs minutes.

Chaque service de backend spécifie les vérifications d'état à effectuer pour les backends 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'un backend est arrêté, supprimé manuellement ou supprimé 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, consultez la page 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.

Règles de pare-feu

Les instances backend doivent autoriser les connexions à partir des plages GFE ou de vérification d'état de l'équilibreur de charge. Cela signifie que vous devez créer une règle de pare-feu qui permet au trafic de 130.211.0.0/22 et 35.191.0.0/16 d'atteindre vos instances ou points de terminaison principaux. Ces plages d'adresses IP sont utilisées comme sources pour les paquets de vérification de l'état et pour tous les paquets à charge équilibrée envoyés à vos backends.

Les ports que vous configurez pour cette règle de pare-feu doivent autoriser l'acheminement du trafic vers des instances ou des points de terminaison :

  • Vous devez autoriser les ports utilisés par chaque règle de transfert.
  • Vous devez autoriser les ports utilisés par chaque vérification d'état configurée pour chaque service de backend.

Les règles de pare-feu sont mises en œuvre au niveau de l'instance de VM, et non sur les proxys Google Front End (GFE). Vous ne pouvez pas utiliser les règles de pare-feu Google Cloud pour empêcher le trafic d'atteindre l'équilibreur de charge.

Pour plus d'informations sur les vérifications de l'état et découvrir pourquoi il est nécessaire d'autoriser le trafic en provenance de 130.211.0.0/22 et de 35.191.0.0/16, consultez la section Plages d'adresses IP de vérification et règles de pare-feu.

Adresses IP sources

Les adresses IP sources des paquets, telles qu'elles sont perçues par chaque instance de machine virtuelle (VM) ou conteneur backend, proviennent des plages suivantes :

  • 35.191.0.0/16
  • 130.211.0.0/22

L'adresse IP source du trafic réel à équilibrage de charge est identique à celle des plages d'adresses IP des vérifications d'état.

Les adresses IP sources du trafic, telles qu'elles sont perçues par les backends, sont différentes de l'adresse IP externe Google Cloud de l'équilibreur de charge. En d'autres termes, il existe deux sessions HTTP, SSL ou TCP :

  • Session 1, du client d'origine vers l'équilibreur de charge (GFE) :

    • Adresse IP source : le client d'origine (ou l'adresse IP externe si le client est protégé par la fonctionnalité NAT).
    • Adresse IP de destination : l'adresse IP de votre équilibreur de charge.
  • Session 2, de l'équilibreur de charge (GFE) vers la VM de backend ou le conteneur :

    • Adresse IP source : une adresse IP située dans l'une de ces plages : 35.191.0.0/16 ou 130.211.0.0/22.

      Vous ne pouvez pas prédire l'adresse source réelle.

    • Adresse IP de destination : une adresse IP interne de la VM de backend ou du conteneur dans le réseau cloud privé virtuel (VPC).

Mode d'équilibrage

Lorsque vous ajoutez un backend au service de backend, vous définissez un mode d'équilibrage de charge.

Pour l'équilibrage de charge proxy TCP, le mode d'équilibrage peut être CONNECTION ou UTILIZATION.

Si le mode d'équilibrage de charge est CONNECTION, la charge est répartie en fonction du nombre de connexions simultanées que le backend peut gérer. Vous devez également spécifier l'un des paramètres suivants : maxConnections (sauf pour les groupes d'instances gérés régionaux), maxConnectionsPerInstance ou maxConnectionsPerEndpoint.

Si le mode d'équilibrage de charge est UTILIZATION, la charge est répartie en fonction de l'utilisation des instances dans un groupe d'instances.

Pour en savoir plus sur les différents types d'équilibreurs de charge et les modes d'équilibrage acceptés, consultez la section Méthodes d'équilibrage de charge.

Affinité de session

L'affinité de session permet d'envoyer toutes les requêtes d'un même client au même backend, sous réserve que le backend soit opérationnel 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 au même backend.

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 Google Front Ends (GFE).

Les GFE offrent plusieurs ports ouverts pour les autres équilibreurs de charge Google Cloud et services Google. 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'à un ensemble spécifique de ports. Le trafic associé aux autres ports de destination TCP n'est pas transféré vers le backend de l'équilibreur de charge. Pour vérifier que le trafic destiné aux ports supplémentaires n'est pas traité, essayez d'ouvrir une session TCP sur un port non autorisé. Le GFE qui gère votre requête ferme la connexion avec un paquet de réinitialisation TCP (RST).

Étapes suivantes