Configurer un service de backend Cloud Load Balancing global dans Application Design Center

Vous créez un équilibreur de charge dans votre application en configurant et en connectant différents composants frontend et backend Cloud Load Balancing. Les différents composants vous aident à appliquer des contrôles distincts pour le trafic externe et interne, et à empêcher l'accès direct aux données.

Le composant de backend Cloud Load Balancing global vous aide à gérer les paramètres de distribution du trafic de l'équilibreur de charge, y compris le protocole utilisé pour se connecter aux backends, les paramètres de session, les vérifications de l'état et les délais avant expiration. Vous pouvez configurer les backends suivants :

  • NEG sans serveur : liste d'applications Cloud Run ou Cloud Run Functions sans serveur en tant que backends.

  • Groupe d'instances géré (MIG) : liste de groupes d'instances Compute Engine en tant que backends.

Pour en savoir plus, consultez la page Présentation des services de backend.

Ce document décrit les connexions et les paramètres que vous pouvez configurer lorsque vous utilisez App Design Center pour créer un backend d'Cloud Load Balancing global. Les paramètres de configuration sont basés sur le module Terraform terraform-google-lb-http.

Connexions des composants

Pour créer un composant Cloud Load Balancing complet, vous devez connecter votre backend Cloud Load Balancing global à au moins un frontend Cloud Load Balancing global. Les composants Cloud Load Balancing connectés sont affichés sous forme de groupe dans le canevas de conception.

Le tableau suivant inclut les composants que vous pouvez connecter à un backend Cloud Load Balancing global, ainsi que les mises à jour qui en résultent pour votre application et son code Terraform généré.

Composant connecté

Mises à jour des applications

Informations générales

Cloud Run

  • L'équilibreur de charge peut distribuer le trafic entrant vers le service Cloud Run.
  • Le service Cloud Run est ajouté en tant que point de terminaison de backend dans la configuration des backends de NEG sans serveur Cloud Load Balancing.
Configurer un équilibreur de charge d'application externe mondial avec Cloud Run

Interface du service d'équilibrage de charge Cloud Load Balancing mondial (obligatoire)

  • L'interface Cloud Load Balancing, qui gère les requêtes entrantes, est associée au backend Cloud Load Balancing, qui traite les requêtes.
  • Les informations sur le service de backend sont ajoutées à l'entrée du mappage d'URL de l'interface.
Présentation des mappages d'URL

MIG Compute Engine

  • L'équilibreur de charge peut distribuer le trafic entrant au MIG Compute Engine.
  • Le MIG Compute Engine est ajouté au champ "Groupes de service de backend" de Cloud Load Balancing.
Configurer un équilibreur de charge d'application classique avec un backend de groupe d'instances géré

Paramètres de configuration requis

Si votre modèle inclut un composant de backend Cloud Load Balancing global, vous devez configurer les paramètres suivants avant de le déployer.

Nom du paramètre

Description et contraintes

Informations générales

Nom

Nom du service de backend de l'équilibreur de charge. name

ID du projet

Projet dans lequel vous souhaitez déployer le service de backend Cloud Load Balancing.

Configurer les composants

Paramètres de configuration facultatifs

Les paramètres suivants sont facultatifs. Pour afficher les paramètres avancés, dans la zone Configuration, sélectionnez Afficher les champs avancés.

Fonctionnalité

Nom du paramètre

Description et informations sur les contraintes

Informations générales

Mappages de chemins d'accès de l'hôte

Hôte Configurer des mappages d'URL Utiliser des mappages d'URL
Chemin d'accès Configurer des mappages d'URL Utiliser des mappages d'URL
Schéma d'équilibrage de charge loadBalancingScheme Présentation des services de backend
Protocole protocol Protocole de communication avec les backends
Nom du port portName Ports nommés
Description Description du service de backend. description
Activer le CDN enableCDN Présentation de Cloud CDN
Mode de compression compressionMode La compression ne fonctionne pas
En-têtes de requêtes personnalisés customRequestHeaders[] Créer des en-têtes personnalisés dans les services de backend
En-têtes de réponse personnalisés customResponseHeaders[] Créer des en-têtes personnalisés dans les services de backend
Délai avant expiration du drainage de connexion (en secondes) connectionDraining.drainingTimeoutSec Activer le drainage de connexion
Affinité de session sessionAffinity Affinité de session
Valeur TTL du cookie d'affinité (en secondes) affinityCookieTtlSec Affinité basée sur les cookies générés
Règle d'équilibrage de charge de la zone localityLbPolicy Règle d'équilibrage de charge de la localité
Délai avant expiration (s) timeoutSec Délai avant expiration du service de backend

Configuration du journal

Activer logConfig.enable Journalisation
Taux d'échantillonnage logConfig.sampleRate Journalisation

Groupes

Groupe backends[].group Backends
Description Description du groupe de backends. backends[].description
Mode d'équilibrage backends[].balancingMode Modes d'équilibrage et paramètres de capacité cible
Scaler de capacité backends[].capcityScaler Scaler de capacité
Max Connections backends[].maxConnections Mode d'équilibrage des connexions
Nombre maximal de connexions par instance backends[].maxConnectionsPerInstance Mode d'équilibrage des connexions
Nombre maximal de connexions par point de terminaison backends[].maxConnectionsPerEndpoint Mode d'équilibrage des connexions
Taux maximal backends[].maxRate Mode d'équilibrage de fréquence
Taux maximal par instance backends[].maxRatePerInstance Mode d'équilibrage de fréquence
Taux maximal par point de terminaison backends[].maxRatePerEndpoint Mode d'équilibrage de fréquence
Utilisation maximale backends[].maxUtilization Mode d'équilibrage de l'utilisation

Backends NEG sans serveur

Région region Présentation des groupes de points de terminaison du réseau sans serveur
Type Type de backend sans serveur. Les valeurs possibles sont cloud-run, cloud-function ou app-engine. Équilibreurs de charge compatibles
Nom du service appEngine.service Présentation des groupes de points de terminaison du réseau sans serveur
Version de service appEngine.version Présentation des groupes de points de terminaison du réseau sans serveur

Configuration IAP

Activer iap.enabled Présentation d'Identity-Aware Proxy
ID client OAuth2 iap.oauth2ClientId Partager des clients OAuth
Secret du client OAuth2 iap.oauth2ClientSecret Partager des clients OAuth

Règlement CDN

Mode de cache cdnPolicy.cacheMode Présentation de la mise en cache
Âge maximal du cache d'URL signée (en secondes) cdnPolicy.signedUrlCacheMaxAgeSec Personnaliser le délai de cache maximal
Valeur TTL par défaut cdnPolicy.defaultTtl Modifier les paramètres et les remplacements TTL
Valeur TTL maximale cdnPolicy.maxTtl Modifier les paramètres et les remplacements TTL
Valeur TTL client cdnPolicy.clientTtl Modifier les paramètres et les remplacements TTL
Cache négatif cdnPolicy.negativeCaching Utiliser la mise en cache négative
Diffusion d'objets obsolètes cdnPolicy.serveWhileStale Diffuser du contenu obsolète
Contournement du cache sur les en-têtes de requête cdnPolicy.bypassCacheOnRequestHeaders[] Contourner le cache

Règle de mise en cache négative

Code cdnPolicy.negativeCachingPolicy[].code Utiliser la mise en cache négative
Valeur TTL cdnPolicy.negativeCachingPolicy[].ttl Utiliser la mise en cache négative

Règle de clé de cache

Inclure l'hôte cdnPolicy.cacheKeyPolicy.includeHost Clés de cache
Inclure le protocole cdnPolicy.cacheKeyPolicy.includeProtocol Clés de cache
Inclure la chaîne de requête cdnPolicy.cacheKeyPolicy.includeQueryString Liste d'inclusion de chaîne de requête
Liste noire de chaînes de requête cdnPolicy.cacheKeyPolicy.queryStringBlacklist[] Liste d'exclusion de chaîne de requête
Liste blanche de chaîne de requête cdnPolicy.cacheKeyPolicy.queryStringWhitelist[] Liste d'inclusion de chaîne de requête
Inclure les en-têtes HTTP cdnPolicy.cacheKeyPolicy.includeHttpHeaders[] Paramètres des clés de cache pour les en-têtes HTTP et les cookies HTTP
Inclure des cookies nommés cdnPolicy.cacheKeyPolicy.includeNamedCookies[] Inclure des cookies nommés

Détection des valeurs aberrantes

Durée d'éjection de base (en secondes) outlierDetection.baseEjectionTime.seconds Détection des anomalies pour les NEG sans serveur
Nanos de durée d'éjection de base outlierDetection.baseEjectionTime.nanos Détection des anomalies pour les NEG sans serveur
Erreurs consécutives outlierDetection.consecutiveErrors Détection des anomalies pour les NEG sans serveur
Échecs consécutifs de la passerelle outlierDetection.consecutiveGatewayFailure Détection des anomalies pour les NEG sans serveur
Éjection pour erreurs consécutives outlierDetection.enforcingConsecutiveErrors Détection des anomalies pour les NEG sans serveur
Éjection pour échecs consécutifs liés à la passerelle outlierDetection.enforcingConsecutiveGatewayFailure Détection des anomalies pour les NEG sans serveur
Éjection basée sur le taux de réussite outlierDetection.enforcingSuccessRate Détection des anomalies pour les NEG sans serveur
Intervalle (secondes) outlierDetection.interval.seconds Détection des anomalies pour les NEG sans serveur
Nanos d'intervalle outlierDetection.interval.nanos Détection des anomalies pour les NEG sans serveur
Pourcentage d'éjection maximal outlierDetection.maxEjectionPercent Détection des anomalies pour les NEG sans serveur
Taux de réussite pour le nombre minimal d'hôtes outlierDetection.successRateMinimumHosts Détection des anomalies pour les NEG sans serveur
Taux de réussite pour le volume de requêtes outlierDetection.successRateRequestVolume Détection des anomalies pour les NEG sans serveur
Facteur d'écart-type pour le taux de réussite outlierDetection.successRateStdevFactor Détection des anomalies pour les NEG sans serveur

Vérification de l'état

Hôte http2HealthCheck.host Options supplémentaires pour les vérifications d'état HTTP, HTTPS et HTTP/2
Chemin de requête http2HealthCheck.requestPath Critères de réussite pour HTTP, HTTPS et HTTP/2
Requête sslHealthCheck.request Critères de réussite pour SSL et TCP
Réponse sslHealthCheck.response Options supplémentaires pour les vérifications d'état HTTP, HTTPS et HTTP/2
Port http2HealthCheck.port Catégories, protocoles et ports pour les vérifications d'état
Nom du port http2HealthCheck.portName Ports nommés
En-tête du proxy http2HealthCheck.proxyHeader En-têtes
Spécification du port http2HealthCheck.portSpecification Options de spécification du port
Protocole type Catégories, protocoles et ports pour les vérifications d'état
Intervalle entre deux tests (en secondes) checkIntervalSec Vérifications
Délai avant expiration (s) timeoutSec Vérifications
Seuil opérationnel healthyThreshold État de santé
Seuil de faible capacité unhealthyThreshold État de santé
Journalisation logConfig.enable Informations concernant la journalisation des vérifications d'état
Règles de sécurité périphérique edge_security_policy Règles de sécurité de périphérie
Règle de sécurité security_policy Présentation des règles de sécurité
Firewall Networks réseau Configurer des règles de pare-feu
Projets de pare-feu Noms des projets dans lesquels créer des règles de pare-feu. Configurer des règles de pare-feu
Tags cibles targetTags[] Restreindre les clients autorisés à envoyer du trafic vers l'équilibreur de charge
Comptes de service cibles targetServiceAccounts[] Filtrer la source et la cible par compte de service

Étapes suivantes

Vous devez connecter votre composant backend à un composant frontend. Pour configurer le composant frontal, consultez Configurer un composant frontal Cloud Load Balancing global dans Application Design Center.