Présentation des services de backend

Un service de backend définit la manière dont Cloud Load Balancing répartit le trafic. La configuration du service de backend contient un ensemble de valeurs, telles que le protocole utilisé pour se connecter aux backends, divers paramètres de répartition et de gestion des sessions, les vérifications d'état et les délais avant expiration. Ces paramètres permettent de contrôler précisément le comportement de votre équilibreur de charge. Si vous devez démarrer rapidement, la plupart des paramètres possèdent des valeurs par défaut qui facilitent la configuration.

Vous pouvez configurer un service de backend pour les services d'équilibrage de charge Google Cloud suivants :

  • Équilibrage de charge HTTP(S) externe
  • Équilibrage de charge HTTP(S) interne
  • Équilibrage de charge proxy SSL
  • Équilibrage de charge proxy TCP
  • Équilibrage de charge TCP/UDP interne
  • Équilibrage de charge réseau TCP/UDP externe

Traffic Director utilise également les services de backend.

Les équilibreurs de charge, les proxys Envoy et les clients gRPC sans proxy utilisent les informations de configuration de la ressource de service de backend pour effectuer les opérations suivantes :

  • Dirigez le trafic vers les bons backends, qui sont des groupes d'instances ou des groupes de points de terminaison du réseau (NEG). Vous pouvez configurer un équilibreur de charge HTTP(S) externe pour utiliser un bucket de backend au lieu d'un service de backend. Pour en savoir plus sur l'utilisation de buckets backend avec les équilibreurs de charge HTTP(S) externes, consultez la page Configurer un équilibreur de charge avec des buckets backend.
  • Répartissez le trafic selon un mode d'équilibrage à paramétrer pour chaque backend
  • Déterminez la vérification d'état utilisée pour surveiller l'état des backends
  • Spécifiez l'affinité de session.
  • Déterminez si d'autres services sont activés, y compris les suivants :
    • Cloud CDN (équilibreurs de charge HTTP(S) externes uniquement)
    • Règles de sécurité Google Cloud Armor (équilibreurs de charge HTTP(S) externes uniquement)
    • Identity-Aware Proxy (équilibreurs de charge HTTP(S) externes uniquement)

Vous définissez ces valeurs lorsque vous créez un service de backend ou ajoutez un backend au service de backend.

Un service de backend a un champ d'application global ou régional.

Pour plus d'informations sur les propriétés de la ressource de service de backend, consultez les documents de référence suivants :

Le produit que vous utilisez, qui est un équilibreur de charge ou Traffic Director, détermine les éléments suivants :

  • Nombre maximal de services de backend
  • Champ d'application d'un service de backend
  • Type de backend que chaque service de backend peut utiliser
  • Schéma d'équilibrage de charge du service de backend
Produit Nombre maximal de services de backend Champ d'application du service de backend Types de backends compatibles Schéma d'équilibrage de charge
Équilibrage de charge HTTP(S) externe Plusieurs Global1 Chaque service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT
  • Tous les NEG sans serveur : un ou plusieurs services App Engine, Cloud Run ou Cloud Functions
  • Un NEG Internet
EXTERNAL
Équilibrage de charge HTTP(S) interne Plusieurs Disques Chaque service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés, ou
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT
INTERNAL_MANAGED
Équilibrage de charge proxy SSL 1 Global1 Le service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés, ou
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT, ou
  • Un NEG Internet
EXTERNAL
Équilibrage de charge proxy TCP 1 Global1 Le service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés, ou
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT, ou
  • Un NEG Internet
EXTERNAL
Équilibrage de charge au niveau du réseau 1 Disques Le service de backend accepte la combinaison de backends suivante :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés
EXTERNAL
Équilibrage de charge TCP/UDP interne 1 Régional, mais configurable pour être accessible à l'échelle mondiale Le service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés, ou
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP
INTERNAL
Traffic Director Plusieurs Monde Chaque service de backend accepte les combinaisons de backends suivantes :
  • Tous les backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés, ou
  • Tous les NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT
INTERNAL_SELF_MANAGED
1 Les services de backend utilisés par l'équilibrage de charge HTTP(S), l'équilibrage de charge proxy SSL et l'équilibrage de charge proxy TCP ont toujours un champ d'application global, aussi bien au niveau de réseau Standard que Premium. Cependant, les restrictions suivantes s'appliquent au niveau Standard :

Backends

Un backend est un groupe de points de terminaison vers lequel un équilibreur de charge Google Cloud, un proxy Envoy configuré par Traffic Director ou un client gRPC sans proxy distribue le trafic. Il existe plusieurs types de backends :

En outre, vous pouvez disposer d'un backend de bucket Cloud Storage en utilisant un bucket backend au lieu d'un service de backend.

Vous ne pouvez pas utiliser différents types de backends avec le même service de backend. Par exemple, un seul service de backend ne peut pas référencer une combinaison de groupes d'instances et de NEG zonaux. Cependant, vous pouvez utiliser une combinaison de différents types de groupes d'instances sur le même service de backend. Par exemple, un seul service de backend peut référencer une combinaison de groupes d'instances gérés et non gérés. Pour obtenir des informations complètes et savoir quels backends sont compatibles avec quels services de backend, consultez le tableau de la section précédente.

Vous ne pouvez pas supprimer un groupe d'instances ou un NEG backend associé à un service de backend. Avant de supprimer un groupe d'instances ou un NEG, vous devez d'abord le supprimer en tant que backend de tous les services de backend qui le référencent.

Protocole de communication avec les backends

Lorsque vous créez un service de backend, vous devez spécifier le protocole utilisé pour communiquer avec les backends. Vous ne pouvez spécifier qu'un seul protocole par service de backend. Vous ne pouvez pas définir de protocole secondaire à utiliser comme solution de secours.

Les protocoles valides dépendent du type d'équilibreur de charge ou de l'utilisation ou non de Traffic Director.

Produit Schéma d'équilibrage de charge Options de protocole du service de backend
Équilibrage de charge HTTP(S) externe EXTERNAL HTTP, HTTPS, HTTP/2
Équilibrage de charge proxy SSL EXTERNAL SSL
Équilibrage de charge proxy TCP EXTERNAL TCP
Équilibrage de charge HTTP(S) interne INTERNAL_MANAGED HTTP, HTTPS, HTTP/2
Équilibrage de charge au niveau du réseau EXTERNAL TCP, UDP ou UNSPECIFIED (version bêta)
Équilibrage de charge TCP/UDP interne INTERNAL TCP ou UDP
Traffic Director INTERNAL_SELF_MANAGED HTTP, HTTPS, HTTP/2, gRPC, TCP

La modification du protocole d'un service de backend rend les backends inaccessibles via les équilibreurs de charge pendant quelques minutes.

Chiffrement entre l'équilibreur de charge et les backends

Pour plus d'informations sur ce sujet, consultez la section Chiffrement vers les backends.

Groupes d'instances

Cette section explique comment les groupes d'instances fonctionnent avec le service de backend.

VM backend et adresses IP externes

Les VM backend dans les services de backend n'ont pas besoin d'adresses IP externes :

  • Pour les équilibreurs de charge HTTP(S) externes, les équilibreurs de charge proxy SSL et les équilibreurs de charge proxy TCP, les clients communiquent avec un GFE à l'aide de l'adresse IP externe de votre équilibreur de charge. GFE communique avec les VM de backend ou les points de terminaison à l'aide d'une combinaison d'identifiants pour le réseau VPC du backend et de l'adresse IP interne du point de terminaison ou de la VM. Les adresses IP internes doivent être associées à l'interface réseau principale (nic0) du backend. La communication entre les GFE et des VM de backend ou des points de terminaison est facilitée via des routes spéciales.
  • Pour les équilibreurs de charge réseau, les paquets sont d'abord acheminés vers l'adresse IP externe de l'équilibreur de charge réseau. L'équilibreur de charge utilise ensuite un hachage cohérent pour acheminer les paquets vers les VM de backend.
  • Pour les équilibreurs de charge HTTP(S) internes, les équilibreurs de charge TCP/UDP internes et Traffic Director : les VM de backend ne nécessitent pas d'adresses IP externes.

Ports nommés

Sur le backend, l'équilibreur de charge transfère le trafic vers les numéros de port qu'écoutent vos instances backend (instances Compute Engine). Vous configurez le numéro de port dans le groupe d'instances et vous y faites référence dans la configuration du service de backend.

Si le port nommé d'un groupe d'instances correspond au --port-name dans la configuration du service de backend, le service de backend utilise ce numéro de port pour communiquer avec les VM du groupe d'instances.

Le numéro de port du backend est appelé port nommé, car il s'agit d'une paire nom/valeur. Dans le groupe d'instances, vous définissez le nom et la valeur de la clé pour le port.

Par exemple, vous pouvez définir le port nommé sur un groupe d'instances avec le nom my-service-name et le port 8888 :

gcloud compute instance-groups unmanaged set-named-ports my-unmanaged-ig \
    --named-ports=my-service-name:8888

Vous faites ensuite référence au port nommé dans la configuration du service de backend, avec --port-name sur le service de backend défini sur my-service-name :

gcloud compute backend-services update my-backend-service \
    --port-name=my-service-name

Si vous utilisez plusieurs numéros de port pour un port nommé (par exemple, http:80,http:8080), ils doivent tous correspondre à la même application. En effet, le trafic est équilibré entre tous les ports ayant le même nom de port. Par exemple, vous ne pouvez pas créer de port nommé avec les valeurs 80 et 443. Cela ne fonctionne pas, car le port 80 n'est généralement pas compatible avec TLS.

Pour savoir comment créer des ports nommés, consultez les instructions suivantes :

Veuillez noter les points suivants :

  • Chaque service de backend s'abonne à un nom de port unique. Chacun de ses groupes d'instances de backend doit avoir au moins un port nommé pour ce nom.

  • Un service de backend peut utiliser un numéro de port différent lors de la communication avec des VM appartenant à différents groupes d'instances si chacun de ces groupes spécifie un numéro de port différent pour le même nom de port. Cependant, tous les ports doivent représenter la même application. Par exemple, http:80,http:8080 fonctionne, mais http:80,http:443 ne fonctionne pas.

  • Le numéro de port résolu utilisé par le service de backend ne doit pas nécessairement correspondre au numéro de port utilisé par les règles de transfert de l'équilibreur de charge. Un équilibreur de charge écoute l'interface sur un ou plusieurs numéros de port que vous configurez dans la règle de transfert de l'équilibreur de charge. Les instances backend peuvent écouter sur différents numéros de port.

Les ports nommés ne sont pas utilisés dans les cas suivants :

  • Pour les backends NEG zonaux ou NEG Internet, car ces NEG définissent les ports en se basant sur un mécanisme différent, à savoir les points de terminaison.
  • Pour les backends NEG sans serveur, car ces NEG ne disposent pas de points de terminaison.
  • Pour les équilibreurs de charge TCP/UDP internes, car il s'agit d'équilibreurs de charge à stratégie directe, et non de proxys. De plus, leur service de backend ne s'abonne pas à un port nommé.
  • Pour les équilibreurs de charge réseau, car un équilibreur de charge réseau est un équilibreur de charge à stratégie directe et non un proxy, et son service de backend ne s'abonne pas à un port nommé.

Pour plus d'informations sur les ports nommés, consultez les pages sur les commandes gcloud compute instance-groups managed set-named-ports et gcloud compute instance-groups unmanaged set-named-ports dans la documentation du SDK.

Restrictions et conseils concernant les groupes d'instances

Gardez à l'esprit les restrictions et conseils suivants lorsque vous créez des groupes d'instances pour vos équilibreurs de charge :

  • N'associez pas une même instance de VM à plusieurs groupes d'instances à équilibrage de charge. Si une VM appartient à deux groupes d'instances non gérés ou plus, ou à un groupe d'instances géré et un ou plusieurs groupes d'instances non gérés, Google Cloud vous oblige à n'utiliser qu'un seul de ces groupes d'instances à la fois comme backend d'un service particulier.

    Si vous avez besoin qu'une VM participe à plusieurs équilibreurs de charge, vous devez utiliser le même groupe d'instances comme backend pour chacun des services de backend.

  • Pour les équilibreurs de charge proxy, lorsque vous souhaitez équilibrer le trafic sur différents ports, spécifiez les ports nommés requis pour un groupe d'instances et demandez à chaque service de backend de s'abonner à un port nommé unique.

  • Vous pouvez utiliser le même groupe d'instances qu'un backend pour plusieurs services de backend. Dans ce cas, les backends doivent utiliser des modes d'équilibrage compatibles. Compatible signifie que les modes d'équilibrage doivent être les mêmes ou une combinaison de CONNECTION et RATE. Les combinaisons incompatibles sont les suivantes :

    • CONNECTION avec UTILIZATION
    • RATE avec UTILIZATION

    Prenons l'exemple suivant :

    • Vous disposez de deux services de backend : external-https-backend-service pour un équilibreur de charge HTTP(S) externe et internal-tcp-backend-service pour un équilibreur de charge TCP/UDP interne.
    • Vous utilisez un groupe d'instances appelé instance-group-a dans internal-tcp-backend-service.
    • Dans internal-tcp-backend-service, vous devez appliquer le mode d'équilibrage CONNECTION, car les équilibreurs de charge TCP/UDP internes n'acceptent que le mode d'équilibrage CONNECTION.
    • Vous pouvez également utiliser instance-group-a dans external-https-backend-service si vous appliquez le mode d'équilibrage RATE dans external-https-backend-service.
    • Vous ne pouvez pas également utiliser instance-group-a dans external-https-backend-service avec le mode d'équilibrage UTILIZATION.
  • Pour modifier le mode d'équilibrage d'un groupe d'instances servant de backend à plusieurs services de backend, procédez comme suit :

    • Supprimez le groupe d'instances de tous les services de backend, sauf un.
    • Modifiez le mode d'équilibrage du backend sur le service de backend restant.
    • Ajoutez à nouveau le groupe d'instances comme backend des autres services de backend, s'ils acceptent le nouveau mode d'équilibrage.
  • Si votre groupe d'instances est associé à plusieurs services de backend, chacun de ces services peut référencer le même port nommé ou un port nommé différent sur le groupe d'instances.

  • Nous vous recommandons de ne pas ajouter de groupe d'instances géré avec autoscaling à plusieurs services de backend. Cela pourrait entraîner un scaling imprévisible et inutile pour les instances du groupe, en particulier si vous employez la métrique d'autoscaling Utilisation de l'équilibrage de charge HTTP.

    • Bien qu'il ne soit pas recommandé, ce scénario peut fonctionner si vous exploitez la métrique d'autoscaling Utilisation du processeur, ou une métrique Cloud Monitoring qui n'est pas liée à la capacité de diffusion de l'équilibreur de charge. Ces métriques d'autoscaling peuvent éviter l'irrégularité d'un scaling.

Groupes de points de terminaison du réseau zonaux

Les points de terminaison du réseau représentent les services en fonction de leur adresse IP ou d'une combinaison adresse IP/port, plutôt que de se référer à une VM d'un groupe d'instances. Un groupe de points de terminaison du réseau (NEG) est un regroupement logique de points de terminaison du réseau.

Les groupes de points de terminaison du réseau (NEG) zonaux sont des ressources zonales qui représentent des collections d'adresses IP ou de combinaisons adresses IP/port pour les ressources Google Cloud faisant partie d'un même sous-réseau.

Deux types de points de terminaison du réseau sont disponibles pour les NEG zonaux :

  • Les points de terminaison GCE_VM_IP
  • Les points de terminaison GCE_VM_IP_PORT

Pour en savoir plus, consultez la page Présentation des NEG zonaux.

Un service de backend dont les backends sont des NEG zonaux distribue le trafic entre les applications ou les conteneurs exécutés au sein des VM.

Les groupes de points de terminaison du réseau (NEG) zonaux utilisant des points de terminaison GCE_VM_IP_PORT peuvent servir de backends pour les types d'équilibreurs de charge suivants :

  • Équilibrage de charge HTTP(S) interne
  • Équilibrage de charge HTTP(S)
  • Équilibrage de charge proxy SSL
  • Équilibrage de charge proxy TCP

Traffic Director est également compatible avec les backends de NEG zonaux utilisant les points de terminaison GCE_VM_IP_PORT.

Les groupes de points de terminaison du réseau (NEG) zonaux utilisant des points de terminaison GCE_VM_IP ne peuvent servir de backends que pour l'équilibrage de charge TCP/UDP interne.

Les NEG zonaux ne sont pas compatibles avec l'équilibrage de charge réseau.

Pour plus d'informations, consultez la page Présentation des groupes de points de terminaison de réseau dans l'équilibrage de charge.

Groupes de points de terminaison du réseau Internet

Les NEG Internet sont des ressources globales qui sont hébergées au sein d'une infrastructure sur site ou fournie par des tiers.

Un NEG Internet est la combinaison d'une adresse IP, ou d'un nom d'hôte, et d'un port facultatif :

  • Un nom de domaine complet pouvant être résolu publiquement et un port facultatif, par exemple backend.example.com:443 (ports par défaut : 80 pour HTTP et 443 pour HTTPS)
  • Une adresse IP publique et un port facultatif, par exemple 203.0.113.8:80 ou 203.0.113.8:443 (ports par défaut : 80 pour HTTP et 443 pour HTTPS)

Un service de backend d'un équilibreur de charge HTTP(S) externe dont le backend est un groupe de points de terminaison du réseau Internet distribue le trafic vers une destination en dehors de Google Cloud.

Pour en savoir plus, y compris sur les équilibreurs de charge compatibles avec les NEG Internet, consultez la présentation des groupes de points de terminaison du réseau Internet.

Groupes de points de terminaison du réseau sans serveur

Un groupe de points de terminaison du réseau (NEG) spécifie un groupe de points de terminaison backend pour un équilibreur de charge. Un NEG sans serveur est un backend qui pointe vers un service Cloud Run, App Engine ou Cloud Functions.

Un NEG sans serveur peut représenter :

  • un service Cloud Run ou un groupe de services partageant le même format d'URL ;
  • une fonction Cloud Functions ou un groupe de fonctions partageant le même format d'URL ;
  • une application App Engine (de type standard ou flex), un service spécifique au sein d'une application ou même une version spécifique d'une application.

Pour en savoir plus, y compris sur les équilibreurs de charge compatibles avec les NEG sans serveur, consultez la section Présentation des groupes de points de terminaison du réseau sans serveur.

Distribution du trafic

Les valeurs des champs suivants dans la ressource de services de backend déterminent certains aspects du comportement du backend :

  • Un mode d'équilibrage définit la manière dont l'équilibreur de charge mesure l'état de préparation des backends susceptibles de recevoir les requêtes ou connexions ultérieures.
  • Une capacité cible définit le nombre maximal de connexions cible, un taux maximal cible ou une utilisation du processeur maximale cible.
  • Un scaler de capacité ajuste la capacité globale disponible sans modifier la capacité cible.

Mode d'équilibrage

Le mode d'équilibrage détermine si les backends d'un équilibreur de charge sont en mesure de gérer du trafic supplémentaire ou s'ils fonctionnent à charge maximale. Google Cloud propose trois modes d'équilibrage :

  • CONNECTION
  • RATE
  • UTILIZATION

Les options du mode d'équilibrage dépendent du schéma d'équilibrage de charge et du protocole du service de backend, ainsi que du type des backends connectés au service de backend.

Vous définissez le mode d'équilibrage lorsque vous ajoutez un backend au service de backend. Notez que vous ne pouvez pas spécifier de mode d'équilibrage lorsque vous utilisez des NEG sans serveur ou des NEG Internet en tant que backends pour un équilibreur de charge.

Mode d'équilibrage Schémas d'équilibrage de charge compatibles Protocoles de services de backend compatibles1 Backends compatibles2 Produits applicables
CONNECTION EXTERNAL
INTERNAL
SSL, TCP, UDP
Soit des groupes d'instances, soit des NEG zonaux, si compatibles.
  • Équilibrage de charge proxy SSL
  • Équilibrage de charge proxy TCP
  • Équilibrage de charge TCP/UDP interne
  • Équilibrage de charge au niveau du réseau
RATE EXTERNAL
INTERNAL_MANAGED
INTERNAL_SELF_MANAGED
HTTP, HTTPS, HTTP2, gRPC Groupes d'instances ou NEG zonaux
  • Équilibrage de charge HTTP(S) externe
  • Équilibrage de charge HTTP(S) interne
  • Traffic Director (INTERNAL_SELF_MANAGED ; protocoles HTTP, TCP et gRPC uniquement)
UTILIZATION EXTERNAL
INTERNAL_MANAGED
INTERNAL_SELF_MANAGED
Aucune restriction particulière Groupes d'instances uniquement. Les NEG zonaux n'acceptent pas le mode d'utilisation.
  • Équilibrage de charge HTTP(S) externe
  • Équilibrage de charge proxy SSL
  • Équilibrage de charge proxy TCP
  • Équilibrage de charge HTTP(S) interne
  • Traffic Director (INTERNAL_SELF_MANAGED ; protocoles HTTP, TCP et gRPC uniquement)
1Les protocoles sont plus restreints en fonction du type d'équilibreur de charge.
2Pour connaître les types de backends compatibles (par exemple, les groupes d'instances et les NEG zonaux), consultez la section Backends de la page "Fonctionnalités de l'équilibreur de charge".

Si l'utilisation moyenne de toutes les VM associées à un service de backend est inférieure à 10 %, Google Cloud peut préférer des zones spécifiques. Cela peut se produire lorsque vous utilisez des groupes d'instances régionaux gérés, des groupes d'instances zonaux gérés dans différentes zones et des groupes d'instances zonaux non gérés. Ce déséquilibre zonal se résout automatiquement à mesure que le trafic envoyé à l'équilibreur de charge augmente.

Pour en savoir plus, consultez la page sur la commande gcloud beta compute backend-services add-backend.

Modifier le mode d'équilibrage d'un équilibreur de charge

Pour certains équilibreurs de charge, vous ne pouvez pas modifier le mode d'équilibrage, car le service de backend n'accepte qu'un seul mode d'équilibrage. Pour d'autres, en fonction du backend utilisé, vous pouvez modifier le mode d'équilibrage, car plusieurs modes sont disponibles pour ces services backend.

Équilibreur de charge Backends Modes d'équilibrage disponibles
Équilibrage de charge HTTP(S) Groupes d'instances RATE ou UTILIZATION
NEG zonaux (points de terminaison GCE_VM_IP_PORT) RATE
Équilibrage de charge HTTP(S) interne Groupes d'instances RATE ou UTILIZATION
NEG zonaux (points de terminaison GCE_VM_IP_PORT) RATE
Équilibrage de charge proxy TCP Groupes d'instances CONNECTION ou UTILIZATION
NEG zonaux (points de terminaison GCE_VM_IP_PORT) CONNECTION
Équilibrage de charge proxy SSL Groupes d'instances CONNECTION ou UTILIZATION
NEG zonaux (points de terminaison GCE_VM_IP_PORT) CONNECTION
Équilibrage de charge au niveau du réseau Groupes d'instances CONNECTION
Équilibrage de charge TCP/UDP interne Groupes d'instances CONNECTION
NEG zonaux (points de terminaison GCE_VM_IP) CONNECTION

Capacité cible

Chaque mode d'équilibrage possède une capacité cible correspondante, qui définit l'une des valeurs maximales cibles suivantes :

  • Nombre de connexions
  • Tarif
  • Utilisation du processeur

Pour chaque mode d'équilibrage, la capacité cible n'est pas un disjoncteur. Un équilibreur de charge peut dépasser la valeur maximale dans certaines conditions ; par exemple, si tous les points de terminaison ou VM de backend atteignent cette valeur.

Mode d'équilibrage des connexions

Pour le mode d'équilibrage CONNECTION, la capacité cible définit un nombre maximal cible de connexions simultanées. À l'exception des équilibreurs de charge TCP/UDP internes et des équilibreurs de charge réseau, vous devez utiliser l'un des paramètres suivants pour spécifier un nombre maximal cible de connexions :

  • max-connections-per-instance (par VM) : nombre moyen cible de connexions pour une seule VM.
  • max-connections-per-endpoint (par point de terminaison dans un NEG zonal) : nombre moyen cible de connexions pour un seul point de terminaison.
  • max-connections (par NEG zonal et pour les groupes d'instances zonaux) : nombre moyen cible de connexions pour l'ensemble du NEG ou du groupe d'instances. Pour les groupes d'instances gérés régionaux, utilisez plutôt max-connections-per-instance.

Le tableau suivant montre comment le paramètre de capacité cible définit les éléments suivants :

  • Capacité cible pour l'ensemble du backend
  • Capacité cible attendue pour chaque instance ou point de terminaison
Type de backend Capacité cible
Si vous indiquez Capacité entière du backend Capacité attendue par instance ou par point de terminaison
Groupe d'instances
N instances,
H opérationnelles
max-connections-per-instance=X X × N (X × N)/H
NEG zonal
N points de terminaison
H opérationnels
max-connections-per-endpoint=X X × N (X × N)/H
Groupes d'instances
(à l'exception des groupes d'instances gérés régionaux)

H instances opérationnelles
max-connections=Y Y Y/H

Comme indiqué, les paramètres max-connections-per-instance et max-connections-per-endpoint sont des proxys permettant de calculer un nombre maximal cible de connexions pour l'ensemble du groupe d'instances ou du NEG zonal :

  • Dans un groupe d'instances avec N instances, la définition de max-connections-per-instance=X a la même signification que la définition de max-connections=X × N.
  • Dans un NEG zonal avec N points de terminaison, la définition de max-connections-per-endpoint=X a la même signification que la définition de max-connections=X × N.

Mode d'équilibrage de fréquence

Avec le mode d'équilibrage RATE, vous devez définir la capacité cible à l'aide de l'un des paramètres suivants :

  • max-rate-per-instance (par VM) : spécifiez un taux de requêtes HTTP moyen cible pour une seule VM.
  • max-rate-per-endpoint (par point de terminaison dans un NEG zonal) : spécifiez un taux de requêtes HTTP moyen cible pour un seul point de terminaison.
  • max-rate (par NEG zonal et pour les groupes d'instances zonaux) : spécifiez un taux de requêtes HTTP moyen cible pour l'ensemble du NEG ou du groupe d'instances. Pour les groupes d'instances gérés régionaux, utilisez plutôt max-rate-per-instance.

Le tableau suivant montre comment le paramètre de capacité cible définit les éléments suivants :

  • Capacité cible pour l'ensemble du backend
  • Capacité cible attendue pour chaque instance ou point de terminaison
Type de backend Capacité cible
Si vous indiquez Capacité entière du backend Capacité attendue par instance ou par point de terminaison
Groupe d'instances
N instances,
H opérationnelles
max-rate-per-instance=X X × N (X × N)/H
NEG zonal
N points de terminaison
H opérationnels
max-rate-per-endpoint=X X × N (X × N)/H
Groupes d'instances
(à l'exception des groupes d'instances gérés régionaux)

H instances opérationnelles
max-rate=Y Y Y/H

Comme indiqué, les paramètres max-rate-per-instance et max-rate-per-endpoint sont des proxys permettant de calculer un taux maximal cible de requêtes HTTP pour l'ensemble du groupe d'instances ou du NEG zonal :

  • Dans un groupe d'instances avec N instances, la définition de max-rate-per-instance=X a la même signification que la définition de max-rate=X × N.
  • Dans un NEG zonal avec N points de terminaison, la définition de max-rate-per-endpoint=X a la même signification que la définition de max-rate=X × N.

Mode d'équilibrage de l'utilisation

Le mode d'équilibrage UTILIZATION n'a pas de capacité cible obligatoire. Vous disposez d'un certain nombre d'options qui dépendent du type de backend, comme résumé dans le tableau de la section suivante.

Combinaisons de modes d'équilibrage

Ce tableau récapitule tous les modes d'équilibrage possibles pour un équilibreur de charge et un type de backend donnés. Il présente également les paramètres de capacité disponibles ou obligatoires que vous devez spécifier avec le mode d'équilibrage.

Équilibreur de charge Type de backend Mode d'équilibrage Capacité cible
Équilibrage de charge TCP/UDP interne Groupe d'instances CONNECTION Vous ne pouvez pas spécifier de nombre maximal cible de connexions.
NEG zonaux (GCP_VM_IP) CONNECTION Vous ne pouvez pas spécifier de nombre maximal cible de connexions.
Équilibrage de charge réseau TCP/UDP externe Groupe d'instances CONNECTION Vous ne pouvez pas spécifier de nombre maximal cible de connexions.
Équilibrage de charge proxy SSL, équilibrage de charge proxy TCP Groupe d'instances CONNECTION Vous devez spécifier l'une des valeurs suivantes :
  • max-connections par groupe d'instances zonal
  • max-connections-per-instance (groupes d'instances zonaux ou régionaux)
UTILIZATION Vous pouvez éventuellement spécifier l'un des éléments suivants :
  • max-utilization
  • max-connections par groupe d'instances zonal
  • max-connections-per-instance
    (groupes d'instances zonaux ou régionaux)
  • 1 et 2 ensemble
  • 1 et 3 ensemble
NEG zonal (GCP_VM_IP_PORT) CONNECTION Vous devez spécifier l'une des valeurs suivantes :
  • max-connections par NEG zonal
  • max-connections-per-endpoint
Équilibrage de charge HTTP(S), équilibrage de charge HTTP(S) interne, Traffic Director Groupe d'instances RATE Vous devez spécifier l'une des valeurs suivantes :
  • max-rate par groupe d'instances zonal
  • max-rate-per-instance
    (groupes d'instances zonaux ou régionaux)
UTILIZATION Vous pouvez éventuellement spécifier l'un des éléments suivants :
  • max-utilization
  • max-rate par groupe d'instances zonal
  • max-rate-per-instance
    (groupes d'instances zonaux ou régionaux)
  • 1 et 2 ensemble
  • 1 et 3 ensemble
NEG zonal (GCP_VM_IP_PORT) RATE Vous devez spécifier l'une des valeurs suivantes :
  • max-rate par NEG zonal
  • max-rate-per-endpoint

Scaler de capacité

Vous pouvez éventuellement ajuster le scaler de capacité de façon à réduire la capacité cible (utilisation maximale, taux maximal ou connexions maximales) sans la modifier. Le scaler de capacité est compatible avec tous les équilibreurs de charge qui acceptent une capacité cible. Les seules exceptions sont l'équilibreur de charge réseau et l'équilibreur de charge TCP/UDP interne.

Par défaut, la valeur du scaler de capacité est 1.0 (100 %). Vous pouvez définir le scaler de capacité sur l'une des valeurs suivantes :

  • exactement 0.0, ce qui empêche toute nouvelle connexion
  • une valeur comprise entre 0.1 (10 %) et 1.0 (100 %)

Les exemples suivants montrent comment fonctionne le scaler de capacité en conformité avec le paramètre de capacité cible.

  • Si le mode d'équilibrage est RATE, le taux maximal est défini sur 80 RPS et le scaler de capacité est 1.0, la capacité cible effective est également de 80 RPS.

  • Si le mode d'équilibrage est RATE, l'utilisation maximale est définie sur 80 RPS et le scaler de capacité est 0.5, la capacité cible effective est de 40 RPS (0.5 times 80).

  • Si le mode d'équilibrage est RATE, l'utilisation maximale est définie sur 80 RPS et le scaler de capacité est 0.0, la capacité cible effective est de zéro. Un scaler de capacité égal à zéro mettra le backend hors service.

Trafic Director et distribution du trafic

Traffic Director utilise également les ressources de services de backend. Plus précisément, il exploite des services de backend dont le schéma d'équilibrage de charge est INTERNAL_SELF_MANAGED. Pour un service de backend interne autogéré, la distribution du trafic est basée sur la combinaison d'un mode d'équilibrage de charge et d'une règle d'équilibrage de charge. Le service de backend dirige le trafic vers un backend en fonction du mode d'équilibrage du backend. Ensuite, Traffic Director répartit le trafic en fonction d'une règle d'équilibrage de charge.

Les services de backend internes autogérés sont compatibles avec les modes d'équilibrage suivants :

  • UTILIZATION, si tous les backends sont des groupes d'instances ;
  • RATE, si tous les backends sont des groupes d'instances ou des NEG zonaux.

Si vous choisissez le mode d'équilibrage RATE, vous devez spécifier un taux maximal, un taux maximal par instance ou un taux maximal par point de terminaison.

Pour plus d'informations sur Traffic Director, consultez la page Concepts de Traffic Director.

Affinité de session

Certaines applications nécessitent que plusieurs requêtes provenant d'un utilisateur donné soit dirigées vers le même backend ou point de terminaison. Ces applications incluent des serveurs avec état utilisés pour la diffusion d'annonces, les jeux ou les services avec une forte mise en cache interne. L'inconvénient de l'affinité de session est que votre charge peut être moins bien distribuée.

L'affinité de session fonctionne de la façon la plus optimale possible pour fournir des requêtes au même backend qui a diffusé la requête initiale. Par défaut, l'affinité de session est désactivée (--session-affinity=NONE). Si l'affinité de session n'est pas activée, les équilibreurs de charge distribuent les nouvelles requêtes en fonction d'un hachage à cinq tuples, comme suit :

  • Adresse IP source du paquet
  • Port source du paquet (s'il est présent dans l'en-tête du paquet)
  • Adresse IP de destination du paquet
  • Port de destination du paquet (s'il est présent dans l'en-tête du paquet)
  • Protocole du paquet

Pour les équilibreurs de charge directs, si une instance ou un point de terminaison backend est opérationnel, les requêtes suivantes sont envoyées à la même VM ou au même point de terminaison backend.

Pour les équilibreurs de charge basés sur un proxy, si une instance ou un point de terminaison backend est opérationnel et n'est pas au maximum de sa capacité, les requêtes suivantes sont dirigées vers la même VM ou le même point de terminaison backend. Le mode d'équilibrage détermine quand le backend est au maximum de sa capacité.

Gardez à l'esprit les éléments suivants lors de la configuration de l'affinité de session :

  • Ne comptez pas sur l'affinité de session pour l'authentification ou la sécurité. L'affinité de session est conçue pour rompre lorsqu'un backend a atteint ou dépassé sa capacité ou s'il n'est plus opérationnel.

  • Les équilibreurs de charge Google Cloud assurent l'affinité de session de la façon la plus optimale possible. Des facteurs tels que la modification des états de la vérification d'état du backend ou de son utilisation maximale, selon les mesures effectuées par le mode d'équilibrage, peuvent rompre l'affinité de session. L'utilisation d'une affinité de session autre que None avec le mode d'équilibrage UTILIZATION n'est pas recommandée. En effet, les changements d'utilisation de l'instance peuvent amener le service d'équilibrage de charge à diriger les nouvelles requêtes ou connexions vers des VM backend moins utilisées. Cette action rompt l'affinité de session. Utilisez plutôt le mode d'équilibrage RATE ou CONNECTION afin de réduire les risques de rupture de l'affinité de session.

  • Lorsque l'affinité de session est activée sur les équilibreurs de charge, ils équilibrent leur charge lorsqu'il existe une distribution relativement importante de sessions uniques. Un nombre raisonnablement élevé correspond à au moins plusieurs fois le nombre d'instances backend dans le groupe d'instances. Lorsque vous testez un équilibreur de charge avec un petit nombre de sessions, le trafic n'est pas réparti de manière égale.

  • Pour les équilibreurs de charge HTTP(S) externes et internes, l'affinité de session peut être interrompue lorsque le point de terminaison ou l'instance prévus dépasse la valeur maximale cible de son mode d'équilibrage. Prenons l'exemple suivant :

    • Un équilibreur de charge dispose d'un NEG et de trois points de terminaison.
    • Chaque point de terminaison a une capacité cible de 1 RPS.
    • Le mode d'équilibrage est RATE.
    • Actuellement, chaque point de terminaison traite respectivement 1,1, 0,8 et 1,6 RPS.
    • Lorsqu'une requête HTTP avec affinité pour le dernier point de terminaison arrive sur l'équilibreur de charge, l'affinité de session revendique le point de terminaison qui traite à 1,6 RPS.
    • La nouvelle requête peut être dirigée vers le point de terminaison du milieu avec 0,8 RPS.
  • Pour plus d'informations sur l'équilibrage de charge réseau et l'affinité de session, consultez la page Présentation de l'équilibrage de charge réseau TCP/UDP externe.

  • Pour plus d'informations sur l'équilibrage de charge TCP/UDP interne et l'affinité de session, consultez la page Présentation de l'équilibrage de charge TCP/UDP interne.

  • Lorsque les services gRPC sans proxy sont configurés, Traffic Director n'est pas compatible avec l'affinité de session.

Le tableau suivant présente les options d'affinité de session :

Produit Options d'affinité de session
Équilibrage de charge TCP/UDP interne • Aucun (cinq tuples)
• Adresse IP client, adresse IP de destination (deux tuples)
• Adresse IP client, adresse IP de destination, protocole (trois tuples)
• Adresse IP client, port client, adresse IP de destination, port de destination, protocole (cinq tuples)
• Équilibrage de charge proxy TCP
• Équilibrage de charge proxy SSL
• Aucune
• Adresse IP client
Équilibrage de charge HTTP(S) externe • Aucune
• Adresse IP client
• Cookie généré
Équilibrage de charge HTTP(S) interne • Aucune
• Adresse IP client
• Cookie généré
• Champ d'en-tête
• Cookie HTTP
Équilibrage de charge au niveau du réseau • Aucun (cinq tuples)
• Adresse IP client, adresse IP de destination (deux tuples)
• Adresse IP client, adresse IP de destination, protocole (trois tuples)
• Adresse IP client, port client, adresse IP de destination, port de destination, protocole (cinq tuples)
Traffic Director • Aucune
• Adresse IP client
• Cookie généré (protocoles HTTP uniquement)
• Champ d'en-tête (protocoles HTTP uniquement)
• Cookie HTTP (protocoles HTTP uniquement)

Les sections suivantes décrivent les différents types d'affinité de session.

Affinité basée sur les adresses IP client

L'affinité basée sur les adresses IP client dirige les requêtes en provenance d'une même adresse IP client vers une même instance backend. Chaque équilibreur de charge Google Cloud faisant appel à des services de backend peut utiliser l'affinité basée sur les adresses IP client.

Lorsque vous utilisez l'affinité basée sur les adresses IP client, gardez à l'esprit les points suivants :

  • L'affinité basée sur les adresses IP client consiste en un hachage à deux tuples composé de l'adresse IP du client et de l'adresse IP de la règle de transfert de l'équilibreur de charge que le client contacte.

  • L'adresse IP client vue par l'équilibreur de charge peut ne pas correspondre au client d'origine si elle est protégée par la fonctionnalité NAT ou envoie des requêtes via un proxy. Les requêtes effectuées via NAT ou un proxy utilisent l'adresse IP du routeur NAT ou du proxy comme adresse IP client. Cela peut entraîner un regroupement inutile du trafic entrant sur les mêmes instances backend.

  • Si un client passe d'un réseau à un autre, son adresse IP change, ce qui entraîne une rupture d'affinité.

Lorsque vous définissez l'affinité basée sur les cookies générés, l'équilibreur de charge émet un cookie lors de la première requête. Pour chaque requête suivante présentant le même cookie, l'équilibreur de charge dirige celle-ci vers les mêmes VM ou points de terminaison backend.

  • Pour les équilibreurs de charge HTTP(S) externes, ce cookie est nommé GCLB.
  • Pour les équilibreurs de charge HTTP(S) internes et Traffic Director, ce cookie est nommé GCILB.

L'affinité basée sur les cookies permet à un équilibreur de charge d'identifier un client plus précisément qu'avec l'affinité basée sur les adresses IP client. Exemple :

  1. Grâce à l'affinité basée sur les cookies, l'équilibreur de charge peut identifier de manière unique deux systèmes clients (ou plus) partageant la même adresse IP source. Lorsqu'il utilise l'affinité basée sur les adresses IP client, l'équilibreur de charge traite toutes les connexions provenant de la même adresse IP source comme si elles provenaient du même système client.

  2. Si un client change d'adresse IP, l'affinité basée sur les cookies permet à l'équilibreur de charge de reconnaître les connexions ultérieures de ce client, plutôt que de traiter celles-ci comme si elles étaient nouvelles. Par exemple, lorsqu'un client change son adresse IP dans le cas d'un appareil mobile passant d'un réseau à un autre.

Lorsqu'un équilibreur de charge crée un cookie pour l'affinité basée sur les cookies générés, il définit l'attribut path du cookie sur /. Si l'outil de mise en correspondance des chemins d'accès du mappage d'URL comporte plusieurs services de backend pour un nom d'hôte, tous les services de backend partagent le même cookie de session.

La durée de vie du cookie HTTP généré par l'équilibreur de charge est configurable. Vous pouvez la définir sur 0 (par défaut), ce qui signifie que le cookie n'est qu'un cookie de session. Vous pouvez également la définir de sorte qu'elle soit comprise entre 1 et 86400 secondes (24 heures) inclus.

Affinité basée sur le champ d'en-tête

Traffic Director et un équilibreur de charge HTTP(S) interne peuvent utiliser l'affinité basée sur le champ d'en-tête lorsque les deux conditions suivantes sont remplies :

  • La règle de localité d'équilibrage de charge est RING_HASH ou MAGLEV.
  • Le hachage cohérent du service de backend spécifie le nom de l'en-tête HTTP.

L'affinité basée sur le champ d'en-tête achemine les requêtes vers les VM ou points de terminaison backend d'un NEG zonal en fonction de la valeur de l'en-tête HTTP nommé dans l'option --custom-request-header.

Pour plus d'informations sur l'équilibrage de charge HTTP(S) interne utilisant l'affinité basée sur le champ d'en-tête, consultez la page Présentation de l'équilibrage de charge HTTP(S) interne.

Traffic Director et un équilibreur de charge HTTP(S) interne peuvent utiliser l'affinité basée sur les cookies HTTP lorsque les deux conditions suivantes sont remplies :

  • La règle de localité d'équilibrage de charge est RING_HASH ou MAGLEV.
  • Le hachage cohérent du service de backend spécifie le nom du cookie HTTP.

L'affinité basée sur les cookies HTTP achemine les requêtes vers les VM ou points de terminaison backend d'un NEG en fonction du cookie HTTP nommé dans l'option HTTP_COOKIE. Si le client ne fournit pas de cookie, le proxy en génère un et le renvoie au client dans un en-tête Set-Cookie.

Pour plus d'informations sur l'équilibrage de charge HTTP(S) interne utilisant l'affinité basée sur les cookies HTTP, consultez la page Présentation de l'équilibrage de charge HTTP(S) interne.

Perdre l'affinité de session

Quel que soit le type d'affinité choisi, un client peut perdre son affinité avec un backend dans les situations suivantes :

  • Si le NEG zonal ou le groupe d'instances backend manque de capacité par rapport à la capacité cible définie du mode d'équilibrage. Dans cette situation, Google Cloud dirige le trafic vers un autre NEG zonal ou groupe d'instances backend, qui peut se trouver dans une zone différente. Vous pouvez minimiser ce comportement en spécifiant une valeur appropriée pour la capacité cible de chaque backend en fonction de vos propres tests.
  • L'autoscaling ajoute ou supprime des instances d'un groupe d'instances géré. Lorsque cela se produit, le nombre d'instances dans le groupe change, de sorte que le service de backend recalcule les hachages pour l'affinité de session. Vous pouvez minimiser ce comportement en vous assurant que la taille minimale du groupe d'instances géré est capable de supporter une charge type. L'autoscaling ne s'effectue alors qu'en cas d'augmentation inattendue de la charge.
  • Si une VM ou un point de terminaison backend d'un NEG échoue aux vérifications de l'état, l'équilibreur de charge dirige le trafic vers un autre backend opérationnel. Reportez-vous à la documentation de chaque équilibreur de charge Google Cloud pour en savoir plus sur le comportement de l'équilibreur lorsque tous ses backends échouent aux vérifications de l'état.
  • Lorsque le mode d'équilibrage UTILIZATION est activé pour les groupes d'instances backend, l'affinité de session se rompt en raison de changements dans l'utilisation du backend. Vous pouvez minimiser ce comportement en utilisant le mode d'équilibrage RATE ou CONNECTION, selon le type compatible avec l'équilibreur de charge.

Lorsque vous utilisez l'équilibrage de charge HTTP(S), l'équilibrage de charge proxy SSL ou l'équilibrage de charge proxy TCP, gardez à l'esprit les points supplémentaires suivants :

  • Si le chemin de routage d'un client sur Internet vers Google change entre les requêtes ou les connexions, un autre GFE peut être sélectionné comme proxy. Toutefois, cela peut rompre l'affinité de session.
  • Lorsque vous utilisez le mode d'équilibrage UTILIZATION (en particulier sans avoir défini de capacité maximale cible), l'affinité de session est susceptible de se rompre lorsque le trafic vers l'équilibreur de charge est faible. Basculez vers le mode d'équilibrage RATE ou CONNECTION, en fonction de l'équilibreur de charge que vous avez choisi.

Délai avant expiration du service de backend

La plupart des équilibreurs de charge Google Cloud disposent d'un délai avant expiration de service de backend. La valeur par défaut est de 30 secondes. La plage complète des valeurs de délai avant expiration autorisées est de 1 à 2 147 483 647 secondes.

  • Pour les équilibreurs de charge HTTP(S) externes et les équilibreurs de charge HTTP(S) internes utilisant le protocole HTTP, HTTPS ou HTTP/2, le délai avant expiration du service de backend est un délai d'expiration de requête/réponse pour le trafic HTTP(S). Il s'agit de la durée pendant laquelle l'équilibreur de charge attend qu'un backend renvoie une réponse complète à une requête. Par exemple, si la valeur par défaut du délai avant expiration du service de backend est de 30 secondes, alors les backends disposent de cette durée pour fournir une réponse complète aux requêtes. L'équilibreur de charge relance la requête HTTP GET une fois si le backend ferme la connexion ou expire avant d'envoyer des en-têtes de réponse à l'équilibreur de charge. Si le backend envoie des en-têtes de réponse (même si le corps de la réponse est par ailleurs incomplet) ou que la requête envoyée au backend n'est pas une requête HTTP GET, l'équilibreur de charge ne la relance pas. Si le backend ne répond pas du tout, l'équilibreur de charge renvoie une réponse HTTP 5xx au client. Pour modifier le délai alloué aux backends pour qu'ils répondent aux requêtes, modifiez le délai d'expiration.

  • Pour le trafic HTTP, la durée maximale pour que le client termine d'envoyer sa requête est égale au délai avant expiration du service de backend. Si des réponses HTTP 408 avec jsonPayload.statusDetail client_timed_out apparaissent, cela signifie que la progression était insuffisante lors de l'envoi par proxy de la requête du client ou de la réponse du backend. Si le problème est dû à des clients rencontrant des problèmes de performances, vous pouvez résoudre ce problème en augmentant le délai avant expiration du service de backend.

  • Pour les équilibreurs de charge HTTP(S) externes et les équilibreurs de charge HTTP(S) internes, si la connexion HTTP est mise à niveau vers un WebSocket, le délai avant expiration du service de backend définit la durée maximale pendant laquelle un WebSocket peut être ouvert, qu'il soit inactif ou non.

  • Pour les équilibreurs de charge proxy SSL et les équilibreurs de charge proxy TCP, le délai avant expiration est un délai d'inactivité. Pour accorder plus ou moins de temps avant la suppression de la connexion, modifiez le délai d'expiration. Ce délai d'inactivité est également utilisé pour les connexions WebSocket.

  • Pour les équilibreurs de charge TCP/UDP internes et les équilibreurs de charge réseau, vous pouvez définir la valeur du délai avant expiration du service de backend à l'aide de gcloud ou de l'API, mais la valeur est ignorée. Le délai avant expiration du service de backend n'a aucune signification pour ces équilibreurs de charge directs.

  • Lorsque des services gRPC sans proxy sont configurés, Traffic Director n'est pas compatible avec le délai avant expiration du service de backend spécifié à l'aide du champ timeoutSec. Pour ces services, configurez le délai avant expiration du service de backend à l'aide du champ maxStreamDuration. En effet, gRPC n'est pas compatible avec la sémantique de timeoutSec qui spécifie le délai d'attente nécessaire au renvoi d'une réponse complète par le backend une fois la requête envoyée. Le délai avant expiration de gRPC spécifie le délai d'attente entre le début du flux et la fin du traitement de la réponse, y compris toutes les tentatives.

Vérifications d'état

Chaque service de backend dont les backends sont des groupes d'instances ou des NEG zonaux doit être associé à une vérification d'état. Les services de backend qui utilisent un NEG sans serveur ou un NEG Internet en tant que backend ne doivent pas référencer une vérification d'état.

Lorsque vous créez un équilibreur de charge à l'aide de Google Cloud Console, vous pouvez créer la vérification d'état, si nécessaire, lors de la création de l'équilibreur de charge, mais vous pouvez également référencer une vérification d'état existante.

Lorsque vous créez un service de backend basé sur un groupe d'instances ou un NEG zonal à l'aide de l'outil de ligne de commande gcloud ou de l'API, vous devez référencer une vérification d'état existante. Reportez-vous au guide sur les équilibreurs de charge de la page Présentation des vérifications d'état pour en savoir plus sur le type et le champ d'application requis pour la vérification d'état.

Pour en savoir plus, consultez les documents suivants :

Fonctionnalités supplémentaires activées sur la ressource du service de backend

Les fonctionnalités facultatives suivantes de Google Cloud sont disponibles pour les services de backend utilisés par un équilibreur de charge HTTP(S) externe. Elles ne sont pas abordées dans ce document, mais sont traitées dans les pages suivantes :

  • Google Cloud Armor offre une protection contre les attaques DDoS et autres grâce à des règles de sécurité.
  • Cloud CDN est un système de diffusion de contenu à faible latence.
  • Les en-têtes personnalisés sont des en-têtes supplémentaires que l'équilibreur de charge ajoute aux requêtes.
  • IAP vous permet d'effectuer les opérations suivantes :
    • Exiger une authentification auprès d'un compte Google avec une connexion OAuth 2.0.
    • Contrôler les accès à l'aide des autorisations Identity and Access Management

Autres remarques

Les fonctionnalités suivantes ne sont compatibles qu'avec les équilibreurs de charge HTTP(S) internes et Traffic Director. Toutefois, elles ne sont pas compatibles avec l'utilisation de services gRPC sans proxy avec Traffic Director.

  • Règles d'équilibrage de charge (localityLbPolicy), à l'exception de ROUND_ROBIN
  • Ruptures de circuit, à l'exception du champ maxRequests
  • Détection des anomalies

Étape suivante

Pour obtenir de la documentation et des informations sur l'utilisation des services de backend dans l'équilibrage de charge, consultez les ressources suivantes :