Configurer un service de backend Cloud Load Balancing global

Vous créez un équilibreur de charge dans votre application en configurant et en connectant des composants d'interface et de backend Cloud Load Balancing distincts, qui vous aident à appliquer des contrôles distincts pour le trafic externe et interne, et à empêcher l'accès direct aux données. Dans App Design Center, le composant de service de backend Cloud Load Balancing global gère les paramètres de distribution du trafic, y compris les protocoles, l'affinité de session, les vérifications d'état et les délais avant expiration, pour les groupes de points de terminaison du réseau (NEG) sans serveur et les groupes d'instances gérés (MIG) Compute Engine, avec des connexions et des paramètres de configuration basés sur le module Terraform terraform-google-lb-http.

Connexions des composants

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

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

Composant connecté

Mises à jour de l'application

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 global avec Cloud Run

Interface Cloud Load Balancing globale (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 répartir le trafic entrant vers le MIG Compute Engine.
  • Le MIG Compute Engine est ajouté au champ des groupes de service de backend 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, configurez les paramètres suivants avant de procéder au déploiement.

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'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 localité localityLbPolicy Règle d'équilibrage de charge de la localité
Délai avant expiration (secondes) timeoutSec Délai avant expiration du service de backend

Configuration de 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[].capacityScaler 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 de 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 d'IAP

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

Règle 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
Mise en cache négative cdnPolicy.negativeCaching Utiliser la mise en cache négative
Diffusion d'informations 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 d'exclusion de chaîne de requête cdnPolicy.cacheKeyPolicy.queryStringBlacklist[] Liste d'exclusion de chaîne de requête
Liste d'autorisation de chaînes 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 anomalies

Durée d'éjection de base en secondes outlierDetection.baseEjectionTime.seconds Détection des anomalies pour les NEG sans serveur
Temps d'exclusion de base en nanosecondes 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
Échec consécutif 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
Nanosecondes de l'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
Volume de requêtes pour le taux de réussite 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 des 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 des vérifications d'état
Intervalle de vérification (en secondes) checkIntervalSec Vérifications
Délai avant expiration (secondes) timeoutSec Vérifications
Seuil opérationnel healthyThreshold État de santé
Seuil de faible capacité unhealthyThreshold État de santé
Journalisation logConfig.enable Informations concernant les journaux de vérification d'état
Règles de sécurité périphérique edge_security_policy Stratégies de sécurité de périphérie
Règle de sécurité security_policy Présentation des stratégies de sécurité
Réseaux de pare-feu 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[] Limiter 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

Connectez votre composant de backend à un composant d'interface. Pour configurer le composant d'interface, consultez Configurer une interface Cloud Load Balancing globale dans Application Design Center.