Configurar un balanceador de carga de aplicación externo global con un servicio de backend y un backend de almacenamiento entre proyectos

En este documento se explica cómo crear un balanceador de carga de aplicación externo global con un servicio de backend y un bucket de backend que se encuentran en un proyecto distinto de aquel en el que están ubicados el frontend del balanceador de carga y el mapa de URLs. Este modelo de implementación se conoce como referencia de servicios entre proyectos.

En el ejemplo que se usa en este documento no se utiliza un entorno de VPC compartida para configurar la referencia de servicios entre proyectos. Para obtener más información sobre cómo configurar la referencia de servicios entre proyectos en un entorno de VPC compartida, consulta Configurar un balanceador de carga de aplicaciones externo global con VPC compartida.

Antes de empezar

Asegúrate de que tu configuración cumpla los siguientes requisitos previos.

Roles y permisos de gestión de identidades y accesos necesarios

Para seguir esta guía, debes tener los siguientes roles de gestión de identidades y accesos:

Tarea Rol necesario
Crear un proyecto Rol de creador de proyectos (roles/resourcemanager.projectCreator)
Crear recursos de computación Rol Administrador de red de Compute (roles/compute.networkAdmin)
Crear segmentos de Cloud Storage Rol Administrador de objetos de Storage (roles/storage.objectAdmin)

Usar un recurso de otro proyecto

En este ejemplo, el proyecto A hace referencia al servicio de backend y al segmento de backend que se encuentran en el proyecto B.

En este ejemplo, un administrador del proyecto B debe conceder el rol de usuario de servicios de balanceador de carga de Compute (roles/compute.loadBalancerServiceUser) al administrador del proyecto A para permitir el acceso al servicio de backend y al backend de almacenamiento del proyecto B. Este rol se puede conceder a nivel de proyecto o de recurso.

Para obtener más información sobre cómo asignar este rol, consulta Conceder permisos de administrador de balanceador de carga de Compute para usar el servicio de backend.

Crear Google Cloud proyectos

En el ejemplo de este documento, sigue las instrucciones dos veces para crear dos proyectos. Google Cloud

Consola

Para crear un proyecto, sigue estos pasos:

  1. Ve a la página Gestionar recursos de la Google Cloud consola.

    Ir a Gestionar recursos

    Los pasos restantes aparecen en la Google Cloud consola.

  2. En la lista desplegable Seleccionar organización, que aparece en la parte superior de la página, selecciona el recurso de organización en el que quieras crear un proyecto. Si estás usando la prueba gratuita, sáltate este paso, ya que esta lista no aparece.
  3. Haz clic en Crear proyecto.
  4. En la ventana Nuevo proyecto que aparece, introduce el nombre de un proyecto y selecciona una cuenta de facturación, si procede. El nombre de un proyecto solo puede contener letras, números, comillas simples, guiones, espacios o signos de exclamación, y debe tener entre 4 y 30 caracteres.
  5. Introduce el recurso de la organización o carpeta principal en el cuadro Ubicación. Ese recurso será el padre jerárquico del nuevo proyecto. Si la opción No hay ninguna organización está disponible, selecciónala para crear tu nuevo proyecto como nivel superior de su propia jerarquía de recursos.
  6. Cuando hayas terminado de introducir los detalles del nuevo proyecto, haz clic en Crear.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para crear un proyecto, usa el comando gcloud projects create:

    gcloud projects create PROJECT_ID
    

    Donde PROJECT_ID es el ID del proyecto que quieres crear. Un ID de proyecto debe empezar por una letra minúscula y solo puede contener letras ASCII, dígitos y guiones, y debe tener entre 6 y 30 caracteres.

Descripción general de la configuración

Como se muestra en el siguiente diagrama, el frontend y el mapa de URLs de un balanceador de carga de aplicaciones externo global se crean en un proyecto diferente del servicio de backend y del bucket de backend del balanceador de carga. Este tipo de implementación entre proyectos no usa un entorno de VPC compartida.

En esta configuración, el mapa de URLs dirige las solicitudes de contenido estático (/images/*) a un bucket de backend, mientras que todas las demás solicitudes se dirigen al servicio de backend predeterminado.

Un balanceador de carga de aplicaciones interno entre regiones envía tráfico a un servicio de backend de Cloud Storage y a un segmento de backend que se encuentran en un proyecto diferente.
Despliegue entre proyectos (haz clic en la imagen para ampliarla).

En la siguiente tabla se ofrece un resumen de los recursos que se crean en el proyecto A y el proyecto B. El frontend y el mapa de URLs del balanceador de carga se crean en el proyecto A, mientras que los componentes de backend se crean en el proyecto B.

Recursos creados en el proyecto A Recursos creados en el proyecto B
  • Dirección IP
  • Certificado SSL
  • Mapa de URLs
  • Proxy de destino
  • Regla de reenvío
  • Red VPC
  • Subred
  • Servicio de backend

    El servicio de backend hace referencia a las instancias de backend de un grupo de instancias. Los siguientes recursos se usan para crear las instancias de backend. En este ejemplo, las instancias de backend se crean en una subred llamada lb-backend-subnet en la región us-west1.

    • Plantilla de instancia
    • Grupo de instancias
    • Comprobación del estado
    • Regla de cortafuegos
  • Segmento de backend
    • El segmento de backend hace referencia a un segmento de Cloud Storage.

En las secciones siguientes, configuraremos los distintos recursos que se indican en la tabla anterior. Empezaremos por configurar una red VPC y una subred para las VMs de backend del balanceador de carga en el proyecto B.

Configurar una red y una subred para las VMs de backend del balanceador de carga en el proyecto B

En este ejemplo, las VMs de backend se crean en la siguiente red y subred:

  • Red. La red es una red de VPC en modo personalizado llamada lb-network.

  • Subred de las VMs de backend 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. Los intervalos de direcciones IPv4 principales y secundarias de una subred son direcciones IPv4 internas regionales. Para obtener más información, consulta Intervalos de IPv4 válidos.

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, selecciona Personalizado en Modo de creación de subredes.

  5. En la sección Nueva subred, introduce la siguiente información:

    • Nombre: lb-backend-subnet
    • Selecciona una región: us-west1
    • Intervalo de direcciones IP: 10.1.2.0/24
  6. Haz clic en Listo.

  7. Haz clic en Crear.

gcloud

  1. Crea una red VPC personalizada llamada lb-network con el comando gcloud compute networks create.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=PROJECT_B_ID
    
  2. Crea una subred en la red de VPC lb-network de la región us-west1 con el comando gcloud compute networks subnets create.

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

Configurar un servicio de backend en el proyecto B

Para configurar un servicio de backend, debes hacer lo siguiente:

  • Crea una plantilla de instancia.
  • Crea un grupo de instancias.
  • Crea una comprobación del estado.
  • Crea una regla de cortafuegos.
  • Crea un servicio de backend.

Crear una plantilla de instancia

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

  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 Redes y configura los siguientes campos:

    1. En Etiquetas de red, introduzca load-balanced-backend.
    2. En la sección Interfaces de red, configure los siguientes campos:
      • Red: lb-network
      • Subred: lb-backend-subnet
      • Tipo de pila de IP: IPv4
    3. Haz clic en Hecho.
  7. Despliega Gestión. En el campo Secuencia de comandos de inicio, introduce la siguiente secuencia de comandos:

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

gcloud

  1. Crea una plantilla de instancia.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --region=us-west1 \
        --network=projects/PROJECT_B_ID/global/networks/lb-network \
        --subnet=projects/PROJECT_B_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
        # Retrieve the instance name from metadata
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        # Create an index file
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        # Restart Apache to apply changes
        systemctl restart apache2' \
        --project=PROJECT_B_ID
    

Crear un grupo de instancias gestionado

Consola

  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 un grupo de instancias gestionado y selecciona la plantilla de instancia que has creado en el paso anterior:

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

    gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=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=PROJECT_B_ID

Crear una regla de cortafuegos

En el caso de las sondas de comprobación del estado, debes crear una regla de cortafuegos de entrada permitida a nivel de red, que en este ejemplo es lb-network. Esta regla de cortafuegos permite que las sondas de comprobación del estado lleguen a tus instancias de backend. 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.

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 conexiones SSH entrantes en la VM cliente:

    • Nombre: fw-allow-health-check
    • Red: lb-network
    • Sentido del tráfico: entrada
    • Acción tras coincidencia: Permitir
    • Objetivos: 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.
      • Selecciona la casilla TCP y, a continuación, 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 puede usar HTTP en el puerto 80 para ponerse en contacto con tus VMs, pero no puede usar HTTPS en el puerto 443 para hacerlo.
  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 FIREWALL_RULE_NAME \
       --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 \
       --project=PROJECT_B_ID
    

Crear un servicio backend

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. 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 BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=HEALTH_CHECK_NAME \
        --global \
        --project=PROJECT_B_ID
    
  2. Añade tu grupo de instancias como backend al servicio de backend:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --instance-group=INSTANCE_GROUP_NAME \
        --instance-group-zone=us-west1-a \
        --global \
        --project=PROJECT_B_ID
    

Configurar un segmento de backend en el proyecto B

Para crear un segmento de backend, debes hacer lo siguiente:

  1. Crea el segmento de Cloud Storage.
  2. Copia el contenido en el contenedor.
  3. Hacer que el segmento sea accesible públicamente.
  4. Crea un segmento de backend y dirígelo al segmento de Cloud Storage.

Crea un segmento de Cloud Storage

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. Haz clic en Crear.

  3. En el cuadro Ponle nombre al segmento, escribe un nombre único a nivel global que cumpla las directrices de nomenclatura.

  4. Haz clic en Elige dónde quieres almacenar los datos.

  5. En Tipo de ubicación, selecciona Región.

  6. En la lista de regiones, selecciona us-east1.

  7. Haz clic en Crear.

gcloud

  1. Crea un segmento en la región us-east1 con el comando gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=PROJECT_B_ID
    

Sustituye la variable BUCKET_NAME por el nombre de tu segmento de Cloud Storage.

Copiar un archivo gráfico en un segmento de Cloud Storage

Ejecuta el siguiente comando en Cloud Shell. Sustituye las variables del nombre del segmento por el nombre único de tu segmento de Cloud Storage para copiar el archivo gráfico de un segmento de Cloud Storage público a la carpeta images/ de tu segmento de Cloud Storage:

gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/

Hacer que tu segmento de Cloud Storage se pueda leer públicamente

Para que todos los objetos de un segmento sean legibles para cualquier usuario de Internet público, concede al principal allUsers el rol Lector de objetos de Storage (roles/storage.objectViewer).

Consola

Para conceder a todos los usuarios acceso para ver los objetos de tus cubos, repite el siguiente procedimiento para cada cubo:

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento que quiera hacer público.

  3. Seleccione la pestaña Permisos, situada en la parte superior de la página.

  4. En la sección Permisos, haz clic en el botón Dar acceso. Aparecerá el cuadro de diálogo Dar acceso.

  5. En el campo Nuevos directores, introduce allUsers.

  6. En el campo Seleccionar un rol, introduce Storage Object Viewer en el cuadro de filtro y selecciona Visor de objetos de Storage en los resultados filtrados.

  7. Haz clic en Guardar.

  8. Haz clic en Permitir acceso público.

gcloud

Para conceder a todos los usuarios acceso para ver objetos en tus cubos, ejecuta el comando buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer

Sustituye las variables de nombre de segmento por los nombres únicos de tus segmentos de Cloud Storage.

Crear un segmento de backend

Los segmentos de backend actúan como envoltorio de los segmentos de Cloud Storage que has creado anteriormente. Dirigen el tráfico entrante a los segmentos de Cloud Storage.

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 segmento de backend.

  4. Asigna un nombre al backend.

  5. Selecciona un segmento de Cloud Storage al que dirigir tu segmento de backend.

  6. Haz clic en Crear.

gcloud

Crea un segmento de backend con el comando gcloud compute backend-buckets create en el proyecto B.

gcloud compute backend-buckets create BACKEND_BUCKET_NAME \
  --gcs-bucket-name=BUCKET_NAME \
  --project=PROJECT_B_ID

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

En esta sección se muestra cómo configurar los siguientes componentes de frontend del balanceador de carga en el proyecto 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 IP_ADDRESS_NAME \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=PROJECT_A_ID

Configurar un recurso de certificado SSL

En este ejemplo, puedes usar HTTP o HTTPS como protocolo de solicitud y respuesta entre el cliente y el balanceador de carga. Para crear un balanceador de carga HTTPS, debes añadir un recurso de certificado SSL al frontend del balanceador de carga.

Crea un recurso de certificado SSL como se describe en la siguiente documentación:

Te recomendamos que uses un certificado gestionado por Google.

Una vez que hayas creado el certificado, podrás adjuntarlo al proxy de destino HTTPS.

Configurar los componentes de un balanceador de carga de aplicación externo global

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. Escribe un nombre para el balanceador de carga.
  2. Mantén la página abierta para continuar.

Configurar el frontend

En HTTP:

  1. Haz clic en Configuración de frontend.
  2. Introduce un nombre para la regla de reenvío.
  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.
  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.

  1. Haz clic en Configuración de frontend.
  2. Introduce un nombre para la regla de reenvío.
  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.
  5. Asegúrate de que el Puerto esté configurado como 443 para permitir el tráfico HTTPS.
  6. Haz clic en la lista Certificado.
  7. Selecciona el nombre del certificado SSL que has creado anteriormente.
  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 de proyecto, introduce el ID de proyecto del proyecto B.
  4. En la lista Seleccionar servicios backend, elige el servicio backend del proyecto B que quieras usar.
  5. Haz clic en Aceptar.

Configurar las reglas de enrutamiento

  1. Haz clic en Reglas de enrutamiento.

  2. En Modo, selecciona Regla de host y ruta avanzada.

  3. Seleccione Añadir regla de host y ruta.

  4. En el campo Hosts (Hosts), introduce * para que coincida con todos los nombres de host.

  5. En la sección Patch matcher (Coincidencia de parches), introduce la siguiente configuración de YAML.

    defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME
    name: PATH_MATCHER_NAME
    pathRules:
    - paths:
      - /images/*
      service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    

    En este ejemplo, el comparador de rutas se compone de una regla de ruta y un servicio predeterminado. La regla de ruta dirige todas las solicitudes a /images/* a un segmento de backend. El resto de las solicitudes se enrutan al servicio de backend predeterminado.

  6. Haz clic en Listo.

Para obtener información sobre la gestión del tráfico, consulte el artículo Información general sobre la gestión del tráfico.

Revisar y finalizar la configuración

  1. Revisa los diferentes componentes del balanceador de carga que has configurado en los pasos anteriores. Verá que en la sección Backends se hace referencia tanto al servicio de backend como al segmento de backend.

  2. Haz clic en Crear.

gcloud

Para crear los componentes de balanceo de carga mencionados anteriormente con la CLI de gcloud, sigue estos pasos:

  1. Crea un mapa de URLs con el comando gcloud compute url-maps create.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \
      --global \
      --project=PROJECT_A_ID
    
  2. Añade un comparador de rutas al mapa de URLs. El comparador de rutas, en este ejemplo, se compone de una regla de ruta y un servicio predeterminado. La regla de ruta dirige todas las solicitudes a /images/* a un segmento de backend. El resto de las solicitudes se dirigen al servicio backend predeterminado.

    gcloud compute url-maps add-path-matcher URL_MAP_NAME \
      --path-matcher-name=PATH_MATCHER_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME  \
      --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    
  3. Crea un proxy de destino con el comando gcloud compute target-http-proxies create.

    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 TARGET_HTTP_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --global \
      --project=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. Después de crear el certificado, puedes adjuntarlo al proxy HTTPS de destino.

    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE_NAME \
      --global \
      --project=PROJECT_A_ID
    

    Sustituye CERTIFICATE_NAME por el nombre del certificado SSL.

  4. Crea una regla de reenvío global con el comando gcloud compute forwarding-rules create.

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

    gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-http-proxy=TARGET_HTTP_PROXY_NAME \
      --ports=80 \
      --project=PROJECT_A_ID
    

    Para el tráfico HTTPS, crea las reglas de reenvío globales para enrutar las solicitudes entrantes al proxy HTTPS de destino:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
      --ports=443 \
      --project=PROJECT_A_ID
    

Probar el balanceador de carga

El balanceador de carga puede tardar unos minutos en configurarse. Después, podrás enviarle una solicitud. En este ejemplo, la solicitud se envía a la regla de reenvío HTTP del balanceador de carga.

Obtén la dirección IP de la regla de reenvío HTTP del balanceador de carga.

gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \
    --global

Si diriges tu navegador a http://IP_ADDRESS, la solicitud se enruta al servicio backend, que devuelve una página con información mínima sobre la instancia backend.

Sin embargo, si dirigiera su navegador a http://IP_ADDRESS/images/three-cats.jpg, la solicitud a /images/* se dirigiría al backend, que devolvería el archivo gráfico.

Siguientes pasos