Configura un servicio de backend global de Cloud Load Balancing en Application Design Center

Para crear un balanceador de cargas en tu aplicación, debes configurar y conectar distintos componentes de frontend y backend de Cloud Load Balancing. Los componentes separados te ayudan a aplicar controles distintos para el tráfico externo e interno, y a evitar el acceso directo a los datos.

El componente de backend de Cloud Load Balancing global te ayuda a administrar la configuración de distribución del tráfico del balanceador de cargas, incluido el protocolo que se usa para conectarse a los backends, la configuración de sesión, las verificaciones de estado y los tiempos de espera. Puedes configurar los siguientes backends:

  • NEG sin servidores: Es una lista de aplicaciones sin servidores de Cloud Run o Cloud Run Functions como backends.

  • Grupo de instancias administrado (MIG): Es una lista de grupos de instancias de Compute Engine como backends.

Para obtener más información, consulta Descripción general de los servicios de backend.

En este documento, se describen las conexiones y los parámetros que puedes configurar cuando usas el Centro de diseño de aplicaciones para crear un backend global de Cloud Load Balancing. Los parámetros de configuración se basan en el módulo de Terraform terraform-google-lb-http.

Conexiones de componentes

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

En la siguiente tabla, se incluyen los componentes que puedes conectar 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 URL de frontend.
Descripción general de los mapas de URL

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, debes configurar los siguientes parámetros antes de la implementación.

Nombre del parámetro

Descripción y restricciones

Información general

Nombre

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 de descripción y restricción

Información general

Asignaciones de rutas de host

Host Configura mapas de URL Usa mapas de URL
Ruta Configura mapas de URL Usa mapas de URL
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 vaciado de conexiones (en segundos) 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 registro

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[].capcityScaler Escalador de capacidad
Máximo 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áx. backends[].maxRate Modo de balanceo de tarifas
Tarifa 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é
Signed URL Cache Max Age Sec cdnPolicy.signedUrlCacheMaxAgeSec Personaliza el tiempo máximo de caché
TTL predeterminado cdnPolicy.defaultTtl Cambiar la configuración y las anulaciones de TTL
TTL máximo cdnPolicy.maxTtl Cambiar la configuración y las anulaciones de TTL
TTL de cliente cdnPolicy.clientTtl Cambiar la configuración y las anulaciones de TTL
Almacenamiento en caché negativo cdnPolicy.negativeCaching Usa el almacenamiento en caché negativo
Entrega de contenido inactivo cdnPolicy.serveWhileStale Entrega de contenido inactivo
Omitir la caché en los encabezados de la solicitud cdnPolicy.bypassCacheOnRequestHeaders[] Cómo omitir 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 inclusión de la cadena de consulta
Lista negra de la cadena de consulta cdnPolicy.cacheKeyPolicy.queryStringBlacklist[] Lista de exclusiones de la cadena de consulta
Lista blanca de la cadena de consulta cdnPolicy.cacheKeyPolicy.queryStringWhitelist[] Lista de inclusión de la cadena de consulta
Incluir encabezados HTTP cdnPolicy.cacheKeyPolicy.includeHttpHeaders[] Configuración de la clave de caché de cookies HTTP y encabezados HTTP
Incluir cookies con nombre cdnPolicy.cacheKeyPolicy.includeNamedCookies[] Incluye cookies con nombre

Detección de valores atípicos

Tiempo de expulsión base en segundos outlierDetection.baseEjectionTime.seconds Detección de valores atípicos para NEGs sin servidores
Nanosegundos del tiempo de expulsión base outlierDetection.baseEjectionTime.nanos Detección de valores atípicos para NEGs sin servidores
Errores consecutivos outlierDetection.consecutiveErrors Detección de valores atípicos para NEGs sin servidores
Error consecutivo de puerta de enlace outlierDetection.consecutiveGatewayFailure Detección de valores atípicos para NEGs sin servidores
Aplicación de errores consecutivos outlierDetection.enforcingConsecutiveErrors Detección de valores atípicos para NEGs sin servidores
Aplicación de errores de puerta de enlace consecutivos outlierDetection.enforcingConsecutiveGatewayFailure Detección de valores atípicos para NEGs sin servidores
Aplica la tasa de éxito outlierDetection.enforcingSuccessRate Detección de valores atípicos para NEGs sin servidores
Interval Seconds outlierDetection.interval.seconds Detección de valores atípicos para NEGs sin servidores
Interval Nanos outlierDetection.interval.nanos Detección de valores atípicos para NEGs sin servidores
Porcentaje de expulsión máximo outlierDetection.maxEjectionPercent Detección de valores atípicos para NEGs sin servidores
Hosts mínimos de tasa de éxito outlierDetection.successRateMinimumHosts Detección de valores atípicos para NEGs sin servidores
Volumen de solicitudes de tasa de éxito outlierDetection.successRateRequestVolume Detección de valores atípicos para NEGs sin servidores
Factor stdev de tasa de éxito outlierDetection.successRateStdevFactor Detección de valores atípicos para NEGs sin servidores

Verificación de estado

Host http2HealthCheck.host Marcas adicionales para las verificaciones de estado 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 HTTP, HTTPS y HTTP/2
Puerto http2HealthCheck.port Categorías, protocolos y puertos de verificaciones 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 Categorías, protocolos y puertos de verificaciones de estado
Intervalo de verificación (seg.) checkIntervalSec Sondeos
Tiempo de espera (en segundos) 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 reglas de firewall. Configura reglas de firewall
Target Tags targetTags[] Restringe qué clientes pueden enviar tráfico al balanceador de cargas
Cuentas de servicio objetivo targetServiceAccounts[] Filtra la fuente y el destino por cuenta de servicio

¿Qué sigue?

Debes conectar el 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.