Configura un servicio de backend global de Cloud Load Balancing

Para crear un balanceador de cargas en tu aplicación, configura y conecta componentes de frontend y backend de Cloud Load Balancing distintos, que te ayudan a aplicar controles independientes para el tráfico interno y externo, y a evitar el acceso directo a los datos. En App Design Center, el componente de servicio de backend de Cloud Load Balancing global administra la configuración de distribución del tráfico, incluidos los protocolos, la afinidad de sesión, las verificaciones de estado y los tiempos de espera, para los grupos de extremos de red (NEG) sin servidores y los grupos de instancias administrados (MIG) de Compute Engine, con conexiones y parámetros de configuración basados en el módulo de Terraform terraform-google-lb-http.

Conexiones de componentes

Para crear un componente de Cloud Load Balancing completo, conecta tu backend de Cloud Load Balancing global a, al menos, un frontend de Cloud Load Balancing global. Los componentes de Cloud Load Balancing conectados se muestran como un grupo en el lienzo de diseño.

En la siguiente tabla, se enumeran los componentes que conectas a un backend global de Cloud Load Balancing y las actualizaciones resultantes en tu aplicación y su código de Terraform generado.

Componente conectado

Actualizaciones de la aplicación

Información general

Cloud Run

  • El balanceador de cargas puede distribuir el tráfico entrante al servicio de Cloud Run.
  • El servicio de Cloud Run se agrega como un extremo de backend en la configuración de backends de NEG sin servidores de Cloud Load Balancing.
Configura un balanceador de cargas de aplicaciones externo global con Cloud Run

Frontend de Cloud Load Balancing global (obligatorio)

  • El frontend de Cloud Load Balancing, que controla las solicitudes entrantes, está vinculado al backend de Cloud Load Balancing, que procesa las solicitudes.
  • La información del servicio de backend se agrega a la entrada del mapa de URLs del frontend.
Descripción general de los mapas de URLs

MIG de Compute Engine

  • El balanceador de cargas puede distribuir el tráfico entrante al MIG de Compute Engine.
  • El MIG de Compute Engine se agrega al campo de grupos de servicios de backend de Cloud Load Balancing.
Configura un balanceador de cargas de aplicaciones clásico con un backend de grupo de instancias administrado

Parámetros de configuración obligatorios

Si tu plantilla incluye un componente de backend de Cloud Load Balancing global, configura los siguientes parámetros antes de realizar la implementación.

Nombre del parámetro

Descripción y restricciones

Información general

Nombre

Es el nombre del servicio de backend del balanceador de cargas. name

ID del proyecto

Es el proyecto en el que deseas implementar el servicio de backend de Cloud Load Balancing.

Configura componentes

Parámetros de configuración opcionales

Los siguientes parámetros son opcionales. Para mostrar los parámetros avanzados, en el área Configuración, selecciona Mostrar campos avanzados.

Función

Nombre del parámetro

Información sobre la descripción y la restricción

Información general

Asignaciones de rutas de acceso del host

Host Configura mapas de URL Usa mapas de URLs
Ruta Configura mapas de URL Usa mapas de URLs
Esquema de balanceo de cargas loadBalancingScheme Descripción general de los servicios de backend
Protocolo protocol Protocolo para los backends
Nombre del puerto portName Puertos con nombre
Descripción Es una descripción del servicio de backend. description
Habilita la CDN enableCDN Descripción general de Cloud CDN
Modo de compresión compressionMode La compresión no funciona
Encabezados de solicitud personalizados customRequestHeaders[] Crea encabezados personalizados en servicios de backend
Encabezados de respuesta personalizados customResponseHeaders[] Crea encabezados personalizados en servicios de backend
Tiempo de espera para el vaciado de conexiones (s) connectionDraining.drainingTimeoutSec Habilita el vaciado de conexiones
Afinidad de sesión sessionAffinity Afinidad de sesión
TTL de cookie de afinidad en segundos affinityCookieTtlSec Afinidad de cookie generada
Política de LB de localidad localityLbPolicy Política de balanceo de cargas de la localidad
Tiempo de espera en segundos timeoutSec Tiempo de espera del servicio de backend

Configuración de registros

Habilitar logConfig.enable Logging
Tasa de muestreo logConfig.sampleRate Logging

Grupos

Grupo backends[].group Backends
Descripción Es una descripción del grupo de backends. backends[].description
Modo de balanceo backends[].balancingMode Modos de balanceo y configuración de la capacidad objetivo
Escalador de capacidad backends[].capacityScaler Escalador de capacidad
Cantidad máxima de conexiones backends[].maxConnections Modo de balanceo de conexiones
Cantidad máxima de conexiones por instancia backends[].maxConnectionsPerInstance Modo de balanceo de conexiones
Cantidad máxima de conexiones por extremo backends[].maxConnectionsPerEndpoint Modo de balanceo de conexiones
Frecuencia máxima backends[].maxRate Modo de balanceo de tarifas
Tasa máxima por instancia backends[].maxRatePerInstance Modo de balanceo de tarifas
Tasa máxima por extremo backends[].maxRatePerEndpoint Modo de balanceo de tarifas
Uso máximo backends[].maxUtilization Modo de balanceo de uso

Backends de NEG sin servidores

Región region Descripción general de los grupos de extremos de red sin servidores
Tipo Es el tipo de backend sin servidores. Los valores posibles son cloud-run, cloud-function o app-engine. Balanceadores de cargas compatibles
Nombre del servicio appEngine.service Descripción general de los grupos de extremos de red sin servidores
Versión del servicio appEngine.version Descripción general de los grupos de extremos de red sin servidores

Configuración de IAP

Habilitar iap.enabled Descripción general de Identity-Aware Proxy
ID de cliente de OAuth2 iap.oauth2ClientId Cómo compartir clientes de OAuth
Secreto del cliente de OAuth2 iap.oauth2ClientSecret Cómo compartir clientes de OAuth

Política de CDN

Modo de almacenamiento en caché cdnPolicy.cacheMode Descripción general del almacenamiento en caché
Antigüedad máxima de la caché de la URL firmada en segundos cdnPolicy.signedUrlCacheMaxAgeSec Personaliza el tiempo máximo del almacenamiento en caché
TTL predeterminado cdnPolicy.defaultTtl Cambia la configuración y las anulaciones de TTL
TTL máximo cdnPolicy.maxTtl Cambia la configuración y las anulaciones de TTL
TTL de cliente cdnPolicy.clientTtl Cambia la configuración y las anulaciones de TTL
Almacenamiento en caché negativo cdnPolicy.negativeCaching Usa el almacenamiento en caché negativo
Entregar durante el estado de inactividad cdnPolicy.serveWhileStale Entrega contenido inactivo
Omite la caché en los encabezados de la solicitud cdnPolicy.bypassCacheOnRequestHeaders[] Evita la caché

Política de almacenamiento en caché negativo

Código cdnPolicy.negativeCachingPolicy[].code Usa el almacenamiento en caché negativo
TTL cdnPolicy.negativeCachingPolicy[].ttl Usa el almacenamiento en caché negativo

Política de clave de caché

Incluir host cdnPolicy.cacheKeyPolicy.includeHost Claves de caché
Incluir protocolo cdnPolicy.cacheKeyPolicy.includeProtocol Claves de caché
Incluir cadena de consulta cdnPolicy.cacheKeyPolicy.includeQueryString Lista de inclusiones de la cadena de consulta
Lista de bloqueo de cadenas de consulta cdnPolicy.cacheKeyPolicy.queryStringBlacklist[] Lista de exclusiones de la cadena de consulta
Lista de cadenas de consulta permitidas cdnPolicy.cacheKeyPolicy.queryStringWhitelist[] Lista de inclusiones de la cadena de consulta
Incluye encabezados HTTP cdnPolicy.cacheKeyPolicy.includeHttpHeaders[] Configuración de la clave de caché de cookies HTTP y encabezados HTTP
Incluye cookies con nombre cdnPolicy.cacheKeyPolicy.includeNamedCookies[] Incluye cookies con nombre

Detección de valores atípicos

Segundos del tiempo de expulsión base outlierDetection.baseEjectionTime.seconds Detección de valores atípicos para NEG sin servidores
Nanosegundos del tiempo de expulsión base outlierDetection.baseEjectionTime.nanos Detección de valores atípicos para NEG sin servidores
Errores consecutivos outlierDetection.consecutiveErrors Detección de valores atípicos para NEG sin servidores
Error de puerta de enlace consecutivo outlierDetection.consecutiveGatewayFailure Detección de valores atípicos para NEG sin servidores
Aplicación de errores consecutivos outlierDetection.enforcingConsecutiveErrors Detección de valores atípicos para NEG sin servidores
Aplicación de errores de puerta de enlace consecutivos outlierDetection.enforcingConsecutiveGatewayFailure Detección de valores atípicos para NEG sin servidores
Aplicación de tasa de éxito outlierDetection.enforcingSuccessRate Detección de valores atípicos para NEG sin servidores
Segundos de intervalo outlierDetection.interval.seconds Detección de valores atípicos para NEG sin servidores
Intervalo en nanosegundos outlierDetection.interval.nanos Detección de valores atípicos para NEG sin servidores
Porcentaje de expulsión máximo outlierDetection.maxEjectionPercent Detección de valores atípicos para NEG sin servidores
Cantidad mínima de hosts para la tasa de éxito outlierDetection.successRateMinimumHosts Detección de valores atípicos para NEG sin servidores
Volumen de solicitudes de tasa de éxito outlierDetection.successRateRequestVolume Detección de valores atípicos para NEG sin servidores
Factor de desviación estándar de la tasa de éxito outlierDetection.successRateStdevFactor Detección de valores atípicos para NEG sin servidores

Verificación de estado

Host http2HealthCheck.host Marcas adicionales para las verificaciones de estado de HTTP, HTTPS y HTTP/2
Ruta de la solicitud http2HealthCheck.requestPath Criterios de éxito para HTTP, HTTPS y HTTP/2
Solicitud sslHealthCheck.request Criterios de éxito para SSL y TCP
Respuesta sslHealthCheck.response Marcas adicionales para las verificaciones de estado de HTTP, HTTPS y HTTP/2
Puerto http2HealthCheck.port Protocolos, puertos y categorías de verificación de estado
Nombre del puerto http2HealthCheck.portName Puertos con nombre
Encabezado de proxy http2HealthCheck.proxyHeader Encabezados
Especificación de puerto http2HealthCheck.portSpecification Marcas de especificación de puerto
Protocolo type Protocolos, puertos y categorías de verificación de estado
Intervalo de verificación en segundos checkIntervalSec Sondeos
Tiempo de espera (s) timeoutSec Sondeos
Umbral de buen estado healthyThreshold Estado de salud
Umbral de mal estado unhealthyThreshold Estado de salud
Logging logConfig.enable Información de registros de verificaciones de estado
Política de seguridad perimetral edge_security_policy Políticas de seguridad perimetral
Política de seguridad security_policy Descripción general de la política de seguridad
Redes de firewall network Configura reglas de firewall
Proyectos de firewall Son los nombres de los proyectos en los que se crearán las reglas de firewall. Configura reglas de firewall
Target tags (Etiquetas de destino) targetTags[] Restringe qué clientes pueden enviar tráfico al balanceador de cargas
Cuentas de servicio de destino targetServiceAccounts[] Filtra origen y objetivo por cuenta de servicio

¿Qué sigue?

Conecta tu componente de backend a un componente de frontend. Para configurar el componente de frontend, consulta Configura un frontend de Cloud Load Balancing global en Application Design Center.