Configurar un balanceador de carga de aplicación externo global con VPC compartida

En este documento se muestran dos configuraciones de ejemplo para configurar un balanceador de carga de aplicaciones externo global con back-ends de grupos de instancias de VM en un entorno de VPC compartida:

  • En el primer ejemplo, los componentes de frontend y backend del balanceador de carga se crean en un proyecto de servicio.
  • En el segundo ejemplo, los componentes de frontend y el mapa de URLs del balanceador de carga se crean en un proyecto de servicio, mientras que el servicio de backend y los backends del balanceador de carga se crean en otro proyecto de servicio. Este tipo de implementación, en el que el mapa de URLs de un proyecto hace referencia a un servicio de backend de otro proyecto, se denomina referencia de servicio entre proyectos.

En ambos ejemplos se requiere la misma configuración inicial para conceder permisos, configurar la red y la subred en el proyecto host y configurar la VPC compartida antes de poder crear balanceadores de carga.

Estas no son las únicas configuraciones de VPC compartida compatibles con el balanceador de carga de aplicaciones externo global. Para ver otras arquitecturas de VPC compartida válidas, consulta Arquitectura de VPC compartida.

Si no quieres usar una red de VPC compartida, consulta el artículo Configurar un balanceador de carga de aplicación externo global con back-ends de grupo de instancias de VM.

Antes de empezar

Los permisos que requiere

Para configurar un balanceador de carga en una red de VPC compartida, un administrador debe llevar a cabo una configuración y un aprovisionamiento iniciales. Tras la configuración inicial, el propietario de un proyecto de servicio puede hacer lo siguiente:

  • Despliega todos los componentes del balanceador de carga y sus backends en un proyecto de servicio.
  • Implementa los componentes de backend del balanceador de carga (servicio de backend y backends) en proyectos de servicio a los que se pueda hacer referencia mediante un mapa de URLs en otro proyecto de servicio o de host.

En esta sección se resumen los permisos necesarios para seguir esta guía y configurar un balanceador de carga en una red de VPC compartida.

Configurar VPC compartida

Se necesitan los siguientes roles para llevar a cabo las tareas que se indican a continuación:

  1. Realizar tareas administrativas puntuales, como configurar la VPC compartida y habilitar un proyecto host.
  2. Realizar tareas administrativas que deben repetirse cada vez que quieras incorporar un nuevo proyecto de servicio. Esto incluye vincular el proyecto de servicio, aprovisionar y configurar recursos de red, y conceder acceso al administrador del proyecto de servicio.

Estas tareas deben realizarse en el proyecto host de la VPC compartida. Te recomendamos que el administrador de la VPC compartida también sea el propietario del proyecto host de la VPC compartida. De esta forma, se conceden automáticamente los roles Administrador de red y Administrador de seguridad.

Tarea Rol necesario
Configurar la VPC compartida, habilitar el proyecto del host y dar acceso a los administradores del proyecto de servicio Administrador de VPC compartida
Crea subredes en el proyecto host de la VPC compartida y concede acceso a los administradores del proyecto de servicio Administrador de red
Añadir y eliminar reglas de cortafuegos Administrador de seguridad

Una vez que se hayan aprovisionado las subredes, el propietario del proyecto host debe conceder el rol Usuario de red en el proyecto host a cualquier persona (normalmente, administradores, desarrolladores o cuentas de servicio del proyecto de servicio) que necesite usar estos recursos.

Tarea Rol necesario
Usar redes y subredes de VPC que pertenezcan al proyecto host Usuario de red

Este rol se puede asignar a nivel de proyecto o a subredes concretas. Te recomendamos que asignes el rol a subredes concretas. Si se asigna el rol en el proyecto, se concede acceso a todas las subredes actuales y futuras de la red VPC del proyecto host.

Desplegar un balanceador de carga y backends

Los administradores de proyectos de servicio necesitan los siguientes roles en el proyecto de servicio para crear recursos de balanceo de carga y backends. Estos permisos se conceden automáticamente al propietario o editor del proyecto de servicio.

Roles concedidos en el proyecto de servicio
Tarea Rol necesario
Crear componentes de balanceador de carga Administrador de red
Crear instancias Administrador de instancias
Crear y modificar certificados SSL Administrador de seguridad

Hacer referencia a servicios de backend entre proyectos

Si tu balanceador de carga necesita hacer referencia a servicios de backend de otros proyectos de servicio (también conocido como referencia de servicio entre proyectos), los administradores del balanceador de carga necesitarán el siguiente rol en el proyecto de servicio en el que se cree el servicio de backend.

Roles concedidos en el proyecto de servicio
Tarea Rol necesario
Permisos para usar servicios en otros proyectos Usuario de servicios de balanceador de carga

Este rol se puede asignar a nivel de proyecto o a servicios backend concretos. Para obtener instrucciones sobre cómo conceder este rol, consulta el ejemplo de referencia de servicio entre proyectos de esta página.

Para obtener más información sobre IAM, consulta las siguientes guías:

Requisitos previos

En esta sección, debes seguir estos pasos:

  1. Configura la red y las subredes en el proyecto del host.
  2. Configura la VPC compartida en el proyecto host.

No es necesario que sigas los pasos de esta sección cada vez que quieras crear un balanceador de carga. Sin embargo, debes asegurarte de que tienes acceso a los recursos que se describen aquí antes de crear el balanceador de carga.

Configurar la red y las subredes en el proyecto del host

Necesitas una red de VPC compartida con una subred para los back-ends del balanceador de carga.

En este ejemplo se usan la red, la región y la subred siguientes:

  • Red. La red se llama lb-network.

  • Subred de los backends del balanceador de carga. Una subred llamada lb-backend-subnet en la región us-west1 usa 10.1.2.0/24 para su intervalo de IP principal.

Configurar la subred de los backends del balanceador de carga

No es necesario realizar este paso cada vez que quieras crear un balanceador de carga. Solo tienes que asegurarte de que el proyecto de servicio tenga acceso a una subred de la red de VPC compartida.

Todos los pasos de esta sección deben realizarse en el proyecto host.

Consola

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.
  3. En Nombre, escribe lb-network.
  4. En la sección Subredes:

    1. Elige Personalizado en Modo de creación de subred.
    2. En la sección Nueva subred, introduce la siguiente información:

      • Nombre: lb-backend-subnet
      • Región: us-west1

      • Intervalo de direcciones IP: 10.1.2.0/24

    3. Haz clic en Listo.

  5. Haz clic en Crear.

gcloud

  1. Crea una red de VPC con el comando gcloud compute networks create:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Crea una subred en la red lb-network de la región us-west1:

    gcloud compute networks subnets create lb-backend-subnet 
    --network=lb-network
    --range=10.1.2.0/24
    --region=us-west1

Dar acceso a la subred backend a los administradores del proyecto de servicio

Los administradores del proyecto de servicio necesitan acceso a la subred lb-backend-subnet para poder aprovisionar los back-ends del balanceador de carga.

Un administrador de VPC compartida debe conceder acceso a la subred de backend a los administradores de proyectos de servicio (o a los desarrolladores que implementen recursos y backends que utilicen la subred). Para obtener instrucciones, consulta Administradores de proyectos de servicio para algunas subredes.

Configurar reglas de cortafuegos en el proyecto host

En este ejemplo se usa la siguiente regla de cortafuegos:
  • fw-allow-health-check. Una regla de entrada, aplicable a las instancias que se van a balancear, que permite todo el tráfico TCP de los sistemas de comprobación del estado de Google Cloud, 130.211.0.0/22 y 35.191.0.0/16. En este ejemplo se usa la etiqueta de destino load-balanced-backend para identificar las instancias a las que se debe aplicar.
Sin esta regla de cortafuegos, la regla denegar predeterminada de entrada bloquea el tráfico entrante a las instancias de backend.

Todos los pasos de esta sección deben realizarse en el proyecto host.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de cortafuegos.

    Ir a Políticas de cortafuegos

  2. Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
    • Nombre: fw-allow-health-check
    • Red: lb-network
    • Dirección del tráfico: entrada
    • Acción tras coincidencia: permitir
    • Destinos: etiquetas de destino especificadas
    • Etiquetas de destino: load-balanced-backend
    • Filtro de origen: intervalos de IPv4
    • Intervalos de IPv4 de origen: 130.211.0.0/22 y 35.191.0.0/16
    • Protocolos y puertos:
      • Elige Protocolos y puertos especificados.
      • Marca TCP e introduce 80 como número de puerto.
      • Como práctica recomendada, limita esta regla a los protocolos y puertos que coincidan con los que usa tu comprobación del estado. Si usas tcp:80 para el protocolo y el puerto, Google Cloud puedes usar HTTP en el puerto 80 para comunicarte con tus VMs, pero no puedes usar HTTPS en el puerto 443 para comunicarte con ellas.

  3. Haz clic en Crear.

gcloud

  1. Crea la regla de cortafuegos fw-allow-health-check para permitir las comprobaciones del estadoGoogle Cloud . En este ejemplo, se permite todo el tráfico TCP de los verificadores de comprobación del estado. Sin embargo, puedes configurar un conjunto de puertos más reducido para satisfacer tus necesidades.

    gcloud compute firewall-rules create fw-allow-health-check \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=130.211.0.0/22,35.191.0.0/16 \
       --target-tags=load-balanced-backend \
       --rules=tcp
    

Configurar la VPC compartida en el proyecto host

En este paso, se habilita un proyecto host de VPC compartida, se comparten subredes del proyecto host y se vinculan proyectos de servicio al proyecto host para que los proyectos de servicio puedan usar la red de VPC compartida. Para configurar la VPC compartida en el proyecto host, consulta las siguientes páginas:

En el resto de estas instrucciones se da por hecho que ya has configurado la VPC compartida. Esto incluye configurar políticas de gestión de identidades y accesos para tu organización y designar los proyectos host y de servicio.

No continúes hasta que hayas configurado la VPC compartida y habilitado los proyectos host y de servicio.

Una vez que hayas completado los pasos definidos en esta sección de requisitos previos, puedes llevar a cabo una de las siguientes configuraciones:

Configurar un balanceador de carga en un proyecto de servicio

Una vez que hayas configurado la red VPC en el proyecto host y la VPC compartida, puedes centrarte en el proyecto de servicio, en el que debes crear todos los componentes de balanceo de carga (servicio de backend, mapa de URLs, proxy de destino y regla de reenvío) y los backends.

En esta sección se da por hecho que has completado los pasos previos descritos en la sección anterior del proyecto host. En esta sección, los componentes de frontend y backend del balanceador de carga, junto con los backends, se crean en un proyecto de servicio.

En la siguiente figura se muestran los componentes de un balanceador de carga de aplicaciones externo global en un proyecto de servicio, que está vinculado al proyecto host en una red de VPC compartida.

Componentes de frontend y backend del balanceador de carga en un proyecto de servicio
Imagen 1. Componentes de frontend y backend del balanceador de carga en un proyecto de servicio

El administrador del proyecto de servicio (o un desarrollador que trabaje en el proyecto de servicio) debe seguir estos pasos, que no requieren la participación del administrador del proyecto host. Los pasos de esta sección son similares a los pasos estándar para configurar un balanceador de carga de aplicación externo global.

En el ejemplo de esta página se define explícitamente una dirección IP reservada para la regla de reenvío del balanceador de carga de aplicaciones externo global, en lugar de permitir que se asigne una dirección IP efímera. Como práctica recomendada, te sugerimos que reserves direcciones IP para las reglas de reenvío.

Crear un backend de grupo de instancias gestionado

Antes de crear un grupo de instancias gestionado, debes crear una plantilla de instancia, que es un recurso que puedes usar para crear instancias de máquina virtual (VM). El tráfico de los clientes se balancea entre las VMs de un grupo de instancias. El grupo de instancias gestionadas proporciona las VMs que ejecutan los servidores backend de un balanceador de carga de aplicaciones externo. En este ejemplo, los back-ends sirven sus propios nombres de host.

Consola

Crear una plantilla de instancia

  1. En la consola de Google Cloud , ve a la página de plantillas de instancias de Compute Engine.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancia.

  3. En Nombre, escribe backend-template.

  4. En la sección Disco de arranque, asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). Haz clic en Cambiar para cambiar la imagen si es necesario.

  5. Expande la sección Opciones avanzadas.

  6. Despliega la sección Redes y, en el campo Etiquetas de red, introduce load-balanced-backend.

  7. En Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: HOST_PROJECT_ID).

  8. En la lista Subred compartida, selecciona la lb-backend-subnet subred de la red lb-network.

  9. Despliega la sección Gestión y, en el campo Automatización, especifica la siguiente secuencia de comandos de inicio:

     #! /bin/bash
     apt-get update
     apt-get install apache2 -y
     a2ensite default-ssl
     a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://metadata.google.internal/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2
    
  10. Haz clic en Crear.

Crear un grupo de instancias gestionado

  1. En la Google Cloud consola, ve a la página de Compute Engine Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en Crear grupo de instancias.

  3. En las opciones, selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado).

  4. En el nombre del grupo de instancias, introduce lb-backend.

  5. En la lista Plantilla de instancia, selecciona la plantilla de instancia backend-template que has creado en el paso anterior.

  6. En la sección Ubicación, selecciona Zona única e introduce los siguientes valores:

    • En Región, selecciona us-west1.

    • En Zona, selecciona us-west1-a.

  7. En la sección Escalado automático, introduce los siguientes valores:

    • En Modo de autoescalado, selecciona Activado: añade y quita instancias del grupo.

    • En Número mínimo de instancias, selecciona 2.

    • En Número máximo de instancias, selecciona 3.

  8. En la sección Asignación de puertos, haz clic en Añadir puerto e introduce los siguientes valores:

    • En Nombre de la portabilidad, introduce http.

    • En Número de puerto, introduce 80.

  9. Haz clic en Crear.

gcloud

  1. Crea una plantilla de instancia:

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_ID
    
  2. Crea un grupo de instancias gestionado y selecciona la plantilla de instancia que has creado en el paso anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_ID
    
  3. Añade un puerto con nombre al grupo de instancias:

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_PROJECT_ID
    

Crear una comprobación del estado

Las comprobaciones del estado son pruebas que confirman la disponibilidad de los backends. Crea una comprobación del estado que use el protocolo HTTP y compruebe el puerto 80. Más adelante, asociará esta comprobación de estado al servicio de backend al que hace referencia el balanceador de carga.

Consola

  1. En la Google Cloud consola, ve a la página de Compute Engine Comprobaciones de estado.

    Ir a Comprobaciones del estado

  2. En el nombre de la comprobación del estado, introduce lb-health-check.

  3. Define el protocolo como HTTP.

  4. Haz clic en Crear.

gcloud

Crea una comprobación del estado de HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=SERVICE_PROJECT_ID

Reservar la dirección IP del balanceador de carga

Reserva una dirección IP externa estática global que se pueda asignar a la regla de reenvío del balanceador de carga.

Consola

  1. En la Google Cloud consola, ve a la página de direcciones IP de VPC.

    Ir a direcciones IP

  2. Haz clic en Reservar dirección IP estática externa.

  3. En Nombre, escribe lb-ipv4-1.

  4. Configure Nivel de servicio de red como Premium.

  5. Configura Versión de IP como IPv4.

  6. En Tipo, seleccione Global.

  7. Haz clic en Reservar.

gcloud

Crea una dirección IP externa estática global.

gcloud compute addresses create lb-ipv4-1 \
  --ip-version=IPV4 \
  --network-tier=PREMIUM \
  --global
  --project=SERVICE_PROJECT_ID

Configurar un recurso de certificado SSL

En el caso de un balanceador de carga que use HTTPS como protocolo de solicitud y respuesta, crea un recurso de certificado SSL tal como se describe en los siguientes recursos:

Te recomendamos que uses un certificado gestionado por Google.

En este ejemplo se da por hecho que has creado un certificado SSL llamado lb-ssl-cert. El certificado SSL se adjunta al proxy de destino que crearás en uno de los pasos siguientes.

Configurar el balanceador de carga

En esta sección se muestra cómo crear los siguientes recursos para un balanceador de carga de aplicación externo global:

  • Servicio de backend con un grupo de instancias gestionado como backend
  • Mapa de URLs
  • Certificado SSL (solo es necesario para el tráfico HTTPS)
  • Proxy de destino
  • Regla de reenvío

En este ejemplo, puedes usar HTTP o HTTPS como protocolo de solicitud y respuesta entre el cliente y el balanceador de carga. Para HTTPS, necesitas un recurso de certificado SSL para configurar el proxy. Te recomendamos que uses un certificado gestionado por Google.

Consola

Selecciona el tipo de balanceador de carga

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haga clic en Crear balanceador de carga.
  3. En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
  4. En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
  5. En Implementación global o en una sola región, selecciona La mejor opción para cargas de trabajo globales y haz clic en Siguiente.
  6. En Generación del balanceador de carga, selecciona Balanceador de carga de aplicación externo global y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. En el nombre del balanceador de carga, introduce l7-xlb-shared-vpc.

Configurar el frontend del balanceador de carga

Para el tráfico HTTP:

  1. Haz clic en Configuración de frontend.

  2. En el nombre del frontend del balanceador de carga, introduce http-fw-rule.

  3. En Protocol (Protocolo), selecciona HTTP.

  4. Configura Versión de IP como IPv4.

  5. En Dirección IP, selecciona lb-ipv4-1, que es la dirección IP que has reservado antes.

  6. Define el Puerto como 80 para permitir el tráfico HTTP.

  7. Para completar la configuración del frontend, haz clic en Hecho.

  8. Comprueba que haya una marca de verificación azul junto a Configuración de frontend antes de continuar.

Para el tráfico HTTPS:

  1. Haz clic en Configuración de frontend.

  2. En el nombre del frontend del balanceador de carga, introduce https-fw-rule.

  3. En Protocolo, selecciona HTTPS.

  4. Configura Versión de IP como IPv4.

  5. En Dirección IP, selecciona lb-ipv4-1, que es la dirección IP que has reservado antes.

  6. Define el Puerto como 443 para permitir el tráfico HTTPS.

  7. En la lista Certificado, selecciona el certificado SSL que has creado.

  8. Para completar la configuración del frontend, haz clic en Hecho.

  9. Comprueba que haya una marca de verificación azul junto a Configuración del frontend antes de continuar.

Configurar el backend

  1. Haz clic en Configuración de backend.

  2. En el menú Servicios y segmentos de backend, haz clic en Crear un servicio de backend.

  3. En el nombre del servicio backend, introduce lb-backend-service.

  4. En Tipo de backend, selecciona Grupo de instancias.

  5. En Protocol (Protocolo), selecciona HTTP.

  6. En el campo Puerto con nombre, introduce http. Es el mismo nombre de puerto que introdujiste al crear el grupo de instancias gestionado.

  7. Para añadir backends al servicio de backend, sigue estos pasos:

    1. En la sección Backends (Back-ends), defina Instance group (Grupo de instancias) en lb-backend, que es el grupo de instancias gestionado que ha creado en un paso anterior.

    2. En Números de puerto, introduce 80.

    3. Para añadir el backend, haz clic en Hecho.

  8. Para añadir una comprobación del estado, en la lista Comprobación del estado, selecciona lb-health-check, que es la comprobación del estado que has creado anteriormente.

  9. Para crear el servicio de backend, haz clic en Crear.

  10. Comprueba que haya una marca de verificación azul junto a Configuración del backend antes de continuar.

Configurar las reglas de enrutamiento

  • Haz clic en Reglas de enrutamiento. Asegúrate de que lb-backend-service sea el servicio de backend predeterminado para cualquier host o ruta sin coincidencia.

Para obtener información sobre la gestión del tráfico, consulta Configurar la gestión del tráfico.

Revisar y finalizar la configuración

  1. Haz clic en Revisar y finalizar.

  2. Revisa la configuración de frontend y backend del balanceador de carga para asegurarte de que está configurado correctamente.

  3. Haz clic en Crear y espera a que se cree el balanceador de carga.

gcloud

  1. Crea un servicio de backend para distribuir el tráfico entre los backends:

    gcloud compute backend-services create lb-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Añade tu grupo de instancias como backend al servicio de backend:

    gcloud compute backend-services add-backend lb-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_ID
    
  3. Crea un mapa de URLs para enrutar las solicitudes entrantes al servicio de backend:

    gcloud compute url-maps create lb-map \
        --default-service=lb-backend-service \
        --global \
        --project=SERVICE_PROJECT_ID
    
  4. Crea un proxy de destino.

    Para el tráfico HTTP, crea un proxy HTTP de destino para enrutar las solicitudes al mapa de URLs:

    gcloud compute target-http-proxies create http-proxy \
        --url-map=lb-map \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Para el tráfico HTTPS, crea un proxy HTTPS de destino para enrutar las solicitudes al mapa de URLs. El proxy es la parte del balanceador de carga que contiene el certificado SSL de un balanceador de carga HTTPS, por lo que también debes cargar tu certificado SSL en este paso:

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --ssl-certificates=lb-ssl-cert
        --global \
        --project=SERVICE_PROJECT_ID
    
  5. Crea una regla de reenvío.

    Para el tráfico HTTP, crea una regla de reenvío global para enrutar las solicitudes entrantes al proxy de destino:

    gcloud compute forwarding-rules create http-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-http-proxy=http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_ID
    

    Para el tráfico HTTPS, cree una regla de reenvío global para enrutar las solicitudes entrantes al proxy de destino:

    gcloud compute forwarding-rules create https-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_ID
    

Probar el balanceador de carga

Cuando el servicio de balanceo de carga esté en funcionamiento, puedes enviar tráfico a la regla de reenvío y ver cómo se dispersa el tráfico a diferentes instancias.

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haz clic en el balanceador de carga que acabas de crear.

  3. Anota la dirección IP del balanceador de carga. En los pasos siguientes, nos referiremos a esta dirección IP como LB_IP_ADDRESS.

  4. En la sección Backend, comprueba que las VMs estén en buen estado.

    La columna Estado correcto debe rellenarse para indicar que las VMs están en buen estado. Por ejemplo, si se crean dos instancias, debería ver un mensaje que indique 2 of 2 con una marca de verificación verde junto a él. Si no es así, prueba a volver a cargar la página. La consola Google Cloud puede tardar unos minutos en indicar que las VMs están en buen estado. Si los back-ends no parecen estar en buen estado al cabo de unos minutos, revisa la configuración del cortafuegos y la etiqueta de red asignada a tus VMs de backend.

  5. Una vez que la consola muestre que las instancias de backend están en buen estado, puede probar el balanceador de carga dirigiendo su navegador web a Google Cloud https://LB_IP_ADDRESS (o http://LB_IP_ADDRESS). Sustituya LB_IP_ADDRESS por la dirección IP del balanceador de carga.

  6. Si has usado un certificado autofirmado para probar HTTPS, tu navegador mostrará una advertencia. Debes indicar explícitamente a tu navegador que acepte un certificado autofirmado.

  7. Tu navegador debería renderizar una página con contenido que muestre el nombre de la instancia que ha servido la página (por ejemplo, Page served from: lb-backend-example-xxxx). Si tu navegador no renderiza esta página, revisa los ajustes de configuración de esta guía.

gcloud

Anota la dirección IP que se ha reservado:

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global

Para probar el balanceador de carga, dirija su navegador web a https://LB_IP_ADDRESS (o http://LB_IP_ADDRESS). Sustituya LB_IP_ADDRESS por la dirección IP del balanceador de carga.

Si has usado un certificado autofirmado para probar HTTPS, tu navegador mostrará una advertencia. Debes indicar explícitamente a tu navegador que acepte un certificado autofirmado.

Tu navegador debería renderizar una página con información mínima sobre la instancia de backend. Si tu navegador no renderiza esta página, consulta los ajustes de configuración de esta guía.

Configurar un balanceador de carga con un servicio de backend entre proyectos

En esta sección se muestra cómo configurar un balanceador de carga con un servicio de backend entre proyectos en un entorno de VPC compartida.

Antes de empezar

En el ejemplo anterior de esta página se muestra cómo configurar una implementación de VPC compartida en la que todos los componentes del balanceador de carga y sus backends se crean en un proyecto de servicio. Los balanceadores de carga de aplicaciones externos globales también te permiten configurar implementaciones de VPC compartida en las que un mapa de URLs de un proyecto de host o de servicio hace referencia a servicios de backend (y backends) ubicados en varios proyectos de servicio del entorno de VPC compartida.

Puede usar los pasos de esta sección como referencia para configurar cualquiera de las combinaciones admitidas que se indican a continuación:

  • Regla de reenvío, proxy de destino y mapa de URLs en el proyecto host, y servicio de backend en un proyecto de servicio
  • Regla de reenvío, proxy de destino y mapa de URLs en un proyecto de servicio, y servicio de backend en otro proyecto de servicio

Aunque en esta sección se usa un entorno de VPC compartida para configurar un despliegue entre proyectos, no es obligatorio usar un entorno de VPC compartida. En el caso de los balanceadores de carga de aplicación externos globales, el frontend del balanceador de carga puede hacer referencia a servicios de backend o a cubos de backend de cualquier proyecto de la misma organización.

Requisitos de la configuración

Si aún no lo has hecho, debes completar todos los pasos previos para configurar la VPC compartida y configurar la red, las subredes y las reglas de firewall necesarias para este ejemplo. Para obtener instrucciones, consulta las siguientes secciones al principio de esta página:

En esta configuración, la regla de reenvío, el proxy de destino y el mapa de URLs se encuentran en un proyecto de servicio, mientras que el servicio de backend y los backends se encuentran en otro proyecto de servicio.

  1. En el proyecto de servicio B, configurará los siguientes recursos de backend:
    • Backend de grupo de instancias gestionado
    • Comprobación del estado
    • Servicio backend global
  2. En el proyecto de servicio A, configurará los siguientes recursos de frontend:
    • Dirección IP
    • Certificado SSL
    • Mapa de URLs
    • Proxy de destino
    • Regla de reenvío

En la siguiente figura se muestra un balanceador de carga de aplicaciones externo global en el que se hace referencia al servicio de backend de un balanceador de carga en un proyecto de servicio mediante un mapa de URLs en otro proyecto de servicio.

Componentes de frontend y backend del balanceador de carga en diferentes proyectos de servicio
Imagen 2. Componentes de frontend y backend del balanceador de carga en diferentes proyectos de servicio

Para hacer referencia a servicios entre proyectos con un balanceador de carga de aplicación externo global, no es necesario que las instancias de backend formen parte de la misma red de VPC ni de una red de VPC compartida.

En este ejemplo, las VMs de backend del proyecto de servicio forman parte de la red de VPC compartida que se crea en el proyecto del host. Sin embargo, también puedes configurar una red de VPC independiente (es decir, una red de VPC no compartida) junto con las reglas de cortafuegos necesarias en un proyecto de servicio. Después, puede crear instancias de backend (por ejemplo, un grupo de instancias) que formen parte de esta red de VPC independiente. Una vez que hayas creado las instancias de backend, puedes seguir los pasos restantes, tal como se muestra en este ejemplo, para crear un servicio de backend en el proyecto de servicio y conectarlo a un mapa de URLs de otro proyecto de servicio mediante referencias de servicio entre proyectos.

Configurar los componentes de backend del balanceador de carga en el proyecto de servicio B

En esta sección, debe configurar los siguientes recursos de backend en el proyecto de servicio B:

  • Grupo de instancias administrado
  • Comprobación del estado
  • Servicio backend global

Crear un backend de grupo de instancias gestionado

Antes de crear un grupo de instancias gestionado, debes crear una plantilla de instancia, que es un recurso que puedes usar para crear instancias de máquina virtual (VM). El tráfico de los clientes se balancea entre las VMs de un grupo de instancias. El grupo de instancias gestionadas proporciona máquinas virtuales que ejecutan los servidores backend de un balanceador de carga de aplicaciones externo. En este ejemplo, los backends sirven sus propios nombres de host.

Consola

Crear una plantilla de instancia

  1. En la consola de Google Cloud , ve a la página de plantillas de instancias de Compute Engine.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancia.

  3. En Nombre, escribe backend-template.

  4. En la sección Disco de arranque, asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). Haz clic en Cambiar para cambiar la imagen si es necesario.

  5. Expande la sección Opciones avanzadas.

  6. Despliega la sección Redes y, en el campo Etiquetas de red, introduce load-balanced-backend.

  7. En Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: HOST_PROJECT_ID).

  8. En la lista Subred compartida, selecciona la lb-backend-subnet subred de la red lb-network.

  9. Despliega la sección Gestión y, en el campo Automatización, especifica la siguiente secuencia de comandos de inicio:

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
    
  10. Haz clic en Crear.

Crea un grupo de instancias gestionado

  1. En la Google Cloud consola, ve a la página de Compute Engine Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en Crear grupo de instancias.

  3. En las opciones, selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado).

  4. En el nombre del grupo de instancias, introduce lb-backend.

  5. En la lista Plantilla de instancia, selecciona la plantilla de instancia backend-template que has creado en el paso anterior.

  6. En la sección Ubicación, selecciona Zona única e introduce los siguientes valores:

    • En Región, selecciona us-west1.

    • En Zona, selecciona us-west1-a.

  7. En la sección Escalado automático, introduce los siguientes valores:

    • En Modo de autoescalado, selecciona Activado: añade y quita instancias del grupo.

    • En Número mínimo de instancias, selecciona 2.

    • En Número máximo de instancias, selecciona 3.

  8. En la sección Asignación de puertos, haz clic en Añadir puerto e introduce los siguientes valores:

    • En Nombre de la portabilidad, introduce http.

    • En Número de puerto, introduce 80.

  9. Haz clic en Crear.

gcloud

  1. Crea una plantilla de instancia:

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_B_ID
    
  2. Crea un grupo de instancias gestionado y selecciona la plantilla de instancia que has creado en el paso anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_B_ID
    
  3. Añade un puerto con nombre al grupo de instancias:

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_PROJECT_B_ID
    

Crear una comprobación del estado

Las comprobaciones del estado son pruebas que confirman la disponibilidad de los backends. Crea una comprobación del estado que use el protocolo HTTP y compruebe el puerto 80. Más adelante, asociará esta comprobación de estado al servicio de backend al que hace referencia el balanceador de carga.

Consola

  1. En la Google Cloud consola, ve a la página de Compute Engine Comprobaciones de estado.

    Ir a Comprobaciones del estado

  2. En el nombre de la comprobación del estado, introduce lb-health-check.

  3. Define el protocolo como HTTP.

  4. Haz clic en Crear.

gcloud

Crea una comprobación del estado de HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=SERVICE_PROJECT_B_ID

Crear un servicio de backend global

Crea un servicio de backend global para distribuir el tráfico entre los backends. Como parte de este paso, debes asignar la comprobación de estado que has creado al servicio de backend y añadir el grupo de instancias como backend al servicio de backend.

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Ve a la sección Backends.

  3. Haz clic en Crear servicio de backend.

  4. En Servicio de backend global, haz clic en el botón Crear situado junto a él.

  5. En el nombre del servicio backend, introduce cross-ref-backend-service.

  6. En Tipo de backend, selecciona Grupo de instancias.

  7. En Protocol (Protocolo), selecciona HTTP.

  8. En el campo Puerto con nombre, introduce http. Es el mismo nombre de puerto que introdujiste al crear el grupo de instancias gestionado.

  9. Para añadir backends al servicio de backend, sigue estos pasos:

    1. En la sección Backends (Back-ends), defina Instance group (Grupo de instancias) en lb-backend, que es el grupo de instancias gestionado que ha creado en un paso anterior.

    2. En Números de puerto, introduce 80.

    3. Para añadir el backend, haz clic en Hecho.

  10. Para añadir una comprobación del estado, en la lista Comprobación del estado, selecciona lb-health-check, que es la comprobación del estado que has creado anteriormente.

  11. Opcional: En la sección Añadir permisos, introduzca las entidades de gestión de identidades y accesos de otros proyectos (normalmente, una dirección de correo electrónico) que tengan el rol de administrador de balanceador de carga de Compute (roles/compute.loadBalancerAdmin) para que puedan usar este servicio de backend en los balanceadores de carga de sus propios proyectos. Sin este permiso, no puedes usar referencias de servicios entre proyectos.

    Si no tienes permiso para definir políticas de control de acceso para los servicios de backend de este proyecto, puedes crear el servicio de backend ahora y un usuario autorizado puede realizar este paso más adelante, tal como se describe en la sección Conceder permisos al administrador de balanceadores de carga de Compute para usar el servicio de backend. En esa sección también se describe cómo conceder acceso a todos los servicios de backend de este proyecto para que no tengas que hacerlo cada vez que crees un nuevo servicio de backend.

  12. Para crear el servicio de backend, haz clic en Crear.

gcloud

  1. Crea un servicio de backend global para distribuir el tráfico entre los backends:

    gcloud compute backend-services create cross-ref-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Añade tu grupo de instancias como backend al servicio de backend:

    gcloud compute backend-services add-backend cross-ref-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_B_ID
    

Configurar los componentes de frontend del balanceador de carga en el proyecto de servicio A

En esta sección, debe configurar los siguientes recursos de frontend en el proyecto de servicio A:

  • Dirección IP
  • Certificado SSL
  • Mapa de URLs
  • Proxy de destino
  • Regla de reenvío

Reservar la dirección IP del balanceador de carga

Reserva una dirección IP externa estática global que se pueda asignar a la regla de reenvío del balanceador de carga.

Consola

  1. En la Google Cloud consola, ve a la página de direcciones IP de VPC.

    Ir a direcciones IP

  2. Haz clic en Reservar dirección IP estática externa.

  3. En Nombre, escribe cross-ref-ip-address.

  4. Configure Nivel de servicio de red como Premium.

  5. Configura Versión de IP como IPv4.

  6. En Tipo, seleccione Global.

  7. Haz clic en Reservar.

gcloud

Crea una dirección IP externa estática global.

gcloud compute addresses create cross-ref-ip-address \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=SERVICE_PROJECT_A_ID

Configurar un recurso de certificado SSL

En el caso de un balanceador de carga que use HTTPS como protocolo de solicitud y respuesta, crea un recurso de certificado SSL tal como se describe en los siguientes recursos:

Te recomendamos que uses un certificado gestionado por Google.

En este ejemplo se da por hecho que has creado un certificado SSL llamado lb-ssl-cert. El certificado SSL se adjunta al proxy de destino que crearás en uno de los pasos siguientes.

Crear los componentes del frontend

Consola

Selecciona el tipo de balanceador de carga

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haga clic en Crear balanceador de carga.
  3. En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
  4. En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
  5. En Implementación global o en una sola región, selecciona La mejor opción para cargas de trabajo globales y haz clic en Siguiente.
  6. En Generación del balanceador de carga, selecciona Balanceador de carga de aplicación externo global y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. Introduce el nombre del balanceador de carga: cross-ref-lb-shared-vpc.
  2. Mantén la página abierta para continuar.

Configurar el frontend

En HTTP:

  1. Haz clic en Configuración de frontend.
  2. Escribe un nombre para la regla de reenvío: cross-ref-http-forwarding-rule.
  3. Define Protocol (Protocolo) como HTTP.
  4. Selecciona la dirección IP que has creado en Reservar la dirección IP del balanceador de carga, llamada cross-ref-ip-address.
  5. Asigna el valor 80 a Port.
  6. Haz clic en Listo.

Para HTTPS:

Si usas HTTPS entre el cliente y el balanceador de carga, necesitas uno o varios recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Los certificados gestionados por Google no se admiten con los balanceadores de carga de aplicaciones externos regionales.

  1. Haz clic en Configuración de frontend.
  2. Escribe un nombre para la regla de reenvío: cross-ref-https-forwarding-rule.
  3. En el campo Protocol (Protocolo), selecciona HTTPS (includes HTTP/2).
  4. Selecciona la dirección IP que has creado en Reservar la dirección IP del balanceador de carga, llamada cross-ref-ip-address.
  5. Asegúrate de que el Puerto esté configurado como 443 para permitir el tráfico HTTPS.
  6. Haz clic en la lista Certificado.
    1. Si ya tienes un recurso de certificado SSL autogestionado que quieras usar como certificado SSL principal, selecciónalo en el menú.
    2. De lo contrario, selecciona Crear un certificado.
      1. Introduce un nombre para el certificado SSL.
      2. En los campos correspondientes, sube los archivos con formato PEM:
        • Certificado de clave pública
        • Cadena de certificados
        • Clave privada
      3. Haz clic en Crear.
  7. Para añadir recursos de certificado además del recurso de certificado SSL principal, sigue estos pasos:
    1. Haz clic en Añadir certificado.
    2. Selecciona un certificado de la lista Certificados o haz clic en Crear un certificado y sigue las instrucciones anteriores.
  8. Haz clic en Listo.

Configurar el backend

  1. Haz clic en Configuración de backend.
  2. Haz clic en Servicios de backend entre proyectos.
  3. En ID del proyecto, introduce el ID del proyecto del proyecto de servicio B.
  4. En la lista Seleccionar servicios backend, elige los servicios backend del proyecto de servicio B que quieras usar. En este ejemplo, escribe cross-ref-backend-service.
  5. Haz clic en Aceptar.

Configurar las reglas de enrutamiento

  • Haz clic en Reglas de enrutamiento. Asegúrate de que cross-ref-backend-service sea el único servicio de backend para cualquier host y ruta sin coincidencia.

Para obtener información sobre la gestión del tráfico, consulta el artículo Configurar la gestión del tráfico.

Revisar y finalizar la configuración

  • Haz clic en Crear.

gcloud

  1. Opcional: Antes de crear un balanceador de carga con servicios de backend de referencia cruzada, averigua si los servicios de backend a los que quieres hacer referencia se pueden referenciar mediante un mapa de URLs:

    gcloud compute backend-services list-usable \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Crea un mapa de URLs para enrutar las solicitudes entrantes al servicio de backend:

    gcloud compute url-maps create cross-ref-url-map \
        --default-service=projects/SERVICE_PROJECT_B_ID/global/backendServices/cross-ref-backend-service \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  3. Crea un proxy de destino.

    Para el tráfico HTTP, crea un proxy HTTP de destino para enrutar las solicitudes al mapa de URLs:

    gcloud compute target-http-proxies create cross-ref-http-proxy \
        --url-map=cross-ref-url-map \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Para el tráfico HTTPS, crea un proxy HTTPS de destino para enrutar las solicitudes al mapa de URLs. El proxy es la parte del balanceador de carga que contiene el certificado SSL de un balanceador de carga HTTPS, por lo que también debes cargar tu certificado SSL en este paso:

    gcloud compute target-https-proxies create cross-ref-https-proxy \
        --url-map=cross-ref-url-map \
        --ssl-certificates=lb-ssl-cert \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  4. Crea una regla de reenvío.

    Para el tráfico HTTP, crea una regla de reenvío global para enrutar las solicitudes entrantes al proxy de destino:

    gcloud compute forwarding-rules create cross-ref-http-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-http-proxy=cross-ref-http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_A_ID
    

    Para el tráfico HTTPS, cree una regla de reenvío global para enrutar las solicitudes entrantes al proxy de destino:

    gcloud compute forwarding-rules create cross-ref-https-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-https-proxy=cross-ref-https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_A_ID
    

Concede permisos al administrador de balanceadores de carga de Compute para usar el servicio de backend

Si quieres que los balanceadores de carga hagan referencia a servicios de backend de otros proyectos de servicio, el administrador del balanceador de carga debe tener el permiso compute.backendServices.use. Para conceder este permiso, puedes usar el rol de gestión de identidades y accesos predefinido llamado Usuario de servicios de balanceador de carga de Compute (roles/compute.loadBalancerServiceUser). El administrador del proyecto de servicio debe conceder este rol, que se puede aplicar a nivel de proyecto o a nivel de servicio de backend individual.

Este paso no es obligatorio si ya has concedido los permisos necesarios a nivel del servicio backend al crear el servicio backend. Puedes saltarte esta sección o seguir leyendo para saber cómo conceder acceso a todos los servicios de backend de este proyecto para que no tengas que conceder acceso cada vez que crees un nuevo servicio de backend.

En este ejemplo, un administrador del proyecto de servicio B debe ejecutar uno de los siguientes comandos para conceder el permiso compute.backendServices.use a un administrador del balanceador de carga del proyecto de servicio A. Puedes hacerlo a nivel de proyecto (para todos los servicios de backend del proyecto) o por servicio de backend.

Consola

Permisos de nivel de proyecto

Sigue estos pasos para conceder permisos a todos los servicios backend de tu proyecto.

Para completar este paso, necesitas los permisos compute.backendServices.setIamPolicy y resourcemanager.projects.setIamPolicy.

  1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

    Ir a IAM

  2. Selecciona el proyecto.

  3. Haz clic en Conceder acceso.

  4. En el campo Nuevos principales, introduce la dirección de correo u otro identificador del principal.

  5. En la lista Seleccionar un rol, selecciona Usuario de servicios de balanceador de carga de Compute.

  6. Opcional: Añade una condición al rol.

  7. Haz clic en Guardar.

Permisos a nivel de recurso para servicios de backend concretos

Sigue estos pasos para conceder permisos a servicios backend concretos de tu proyecto.

Necesitas el permiso compute.backendServices.setIamPolicy para completar este paso.

  1. En la Google Cloud consola, ve a la página Backends.

    Ir a Backends

  2. En la lista de back-ends, selecciona el servicio de back-end al que quieras dar acceso y haz clic en Permisos.

  3. Haz clic en Añadir principal.

  4. En el campo Nuevos principales, introduce la dirección de correo u otro identificador del principal.

  5. En la lista Seleccionar un rol, selecciona Usuario de servicios de balanceador de carga de Compute.

  6. Haz clic en Guardar.

gcloud

Permisos de nivel de proyecto

Sigue estos pasos para conceder permisos a todos los servicios backend de tu proyecto.

Para completar este paso, necesitas los permisos compute.backendServices.setIamPolicy y resourcemanager.projects.setIamPolicy.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser"

Permisos a nivel de recurso para servicios de backend concretos

A nivel de servicio backend, los administradores del proyecto de servicio pueden usar cualquiera de los siguientes comandos para conceder el rol Usuario de servicios de balanceador de carga de Compute (roles/compute.loadBalancerServiceUser).

Necesitas el permiso compute.backendServices.setIamPolicy para completar este paso.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'

o

gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --project=SERVICE_PROJECT_B_ID \
    --region=us-west1

Para usar estos comandos, sustituye LOAD_BALANCER_ADMIN por el principal del usuario. Por ejemplo, test-user@gmail.com.

También puedes configurar permisos de gestión de identidades y accesos para que solo se apliquen a un subconjunto de servicios backend regionales mediante condiciones y especificando atributos de condición.

Probar el balanceador de carga

El balanceador de carga puede tardar varios minutos en configurarse. Cuando el servicio de balanceo de carga esté en ejecución, puedes enviar tráfico a la regla de reenvío en el proyecto de servicio A y ver cómo se dispersa el tráfico a diferentes instancias de VM en el proyecto de servicio B.

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga del proyecto de servicio A.

    Ir a Balanceo de carga

  2. Haz clic en el balanceador de carga que acabas de crear.

  3. Anota la dirección IP del balanceador de carga. En los pasos siguientes, nos referiremos a esta dirección IP como LB_IP_ADDRESS.

  4. Para probar el balanceador de carga, dirija su navegador web a https://LB_IP_ADDRESS (o http://LB_IP_ADDRESS). Sustituya LB_IP_ADDRESS por la dirección IP del balanceador de carga.

  5. Si has usado un certificado autofirmado para probar HTTPS, tu navegador mostrará una advertencia. Debes indicar explícitamente a tu navegador que acepte un certificado autofirmado.

  6. Tu navegador debería renderizar una página con contenido que muestre el nombre de la instancia que ha servido la página (por ejemplo, Page served from: lb-backend-example-xxxx). Si tu navegador no renderiza esta página, revisa los ajustes de configuración de esta guía.

gcloud

Anota la dirección IP que se ha reservado:

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global
    --project=SERVICE_PROJECT_A_ID

Para probar el balanceador de carga, dirija su navegador web a https://LB_IP_ADDRESS (o http://LB_IP_ADDRESS). Sustituya LB_IP_ADDRESS por la dirección IP del balanceador de carga.

Si has usado un certificado autofirmado para probar HTTPS, tu navegador mostrará una advertencia. Debes indicar explícitamente a tu navegador que acepte un certificado autofirmado.

Tu navegador debería renderizar una página con información mínima sobre la instancia de backend. Si tu navegador no renderiza esta página, consulta los ajustes de configuración de esta guía.

Siguientes pasos