En este documento, se muestra cómo crear un balanceador de cargas de aplicaciones externo global con un servicio de backend y un bucket de backend que se encuentran en un proyecto diferente al que se encuentran el frontend del balanceador de cargas y el mapa de URL. Este modelo de implementación se conoce como referencia de servicio entre proyectos.
En el ejemplo que se usa en este documento, no se usa un entorno de VPC compartida para configurar la referencia de servicio entre proyectos. Si deseas obtener más información para configurar la referencia de servicios entre proyectos en un entorno de VPC compartida, consulta Configura un balanceador de cargas de aplicaciones externo global con VPC compartida.
Antes de comenzar
Asegúrate de que tu configuración cumpla con los requisitos.
Permisos y roles de IAM obligatorios
Para seguir esta guía, debes tener los siguientes roles de IAM:
Tarea | Función requerida |
---|---|
Crea un proyecto | Rol de creador del proyecto (roles/resourcemanager.projectCreator )
|
Crea recursos de procesamiento | Rol Compute Network Admin (roles/compute.networkAdmin )
|
Crea buckets de Cloud Storage | Función de administrador de objetos de almacenamiento (roles/storage.objectAdmin )
|
Usa un recurso de otro proyecto (En este ejemplo, el proyecto A hace referencia al servicio de backend y al bucket de backend que se encuentran en el proyecto B). |
En este ejemplo, un administrador del proyecto B debe otorgar el rol de usuario de servicios del balanceador de cargas de Compute ( Para obtener más información sobre cómo asignar este rol, consulta Otorga permisos al administrador del balanceador de cargas de Compute para usar el servicio de backend. |
Crea Google Cloud proyectos
En el ejemplo de este documento, sigue las instrucciones dos veces para crear dos proyectos de Google Cloud .
Console
Para crear un proyecto nuevo, haz lo siguiente:
-
Ve a la página Administrar recursos en la Google Cloud consola.
Los pasos restantes aparecen en la consola de Google Cloud .
- En la lista desplegable Seleccionar una organización, en la parte superior de la página, selecciona el recurso de la organización en la que deseas crear un proyecto. Si eres un usuario de prueba gratuita, omite este paso, ya que no aparece esta lista.
- Haz clic en Crear proyecto.
- En la ventana Proyecto nuevo que aparece, ingresa un nombre de proyecto y selecciona una cuenta de facturación según corresponda. 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.
- Ingresa el recurso de la organización o la carpeta superior en el cuadro Ubicación. Ese recurso será el superior de la jerarquía del proyecto nuevo. Si aparece Sin organización como opción, puedes seleccionarla para crear tu proyecto nuevo como el nivel superior de su propia jerarquía de recursos.
- Cuando hayas terminado de ingresar los detalles del proyecto nuevo, haz clic en Crear.
gcloud
-
In the Google Cloud console, 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.
Para crear un proyecto nuevo, usa el comando
gcloud projects create
:gcloud projects create PROJECT_ID
En este comando, PROJECT_ID es el ID del proyecto que quieres crear. El ID de un proyecto debe comenzar con una letra minúscula, contener solo letras, dígitos y guiones ASCII, y 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 URL de un balanceador de cargas de aplicaciones externo global se crean en un proyecto que es diferente del servicio de backend y el bucket de backend del balanceador de cargas. Este tipo de implementación entre proyectos no usa un entorno de VPC compartida.
En esta configuración, el mapa de URL enruta las solicitudes de contenido estático (/images/*
) a un bucket de backend, mientras que todas las demás solicitudes se enrutan al servicio de backend predeterminado.
En la siguiente tabla, se proporciona una descripción general de los recursos que se crean en el proyecto A y el proyecto B. El frontend y el mapa de URL del balanceador de cargas 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 |
---|---|
|
|
En las siguientes secciones, configuraremos los diferentes recursos que se enumeran en la tabla anterior, comenzando por configurar una red de VPC y una subred para las VMs de backend del balanceador de cargas en el proyecto B.
Configura una red y una subred para las VMs de backend del balanceador de cargas en el proyecto B
A los efectos de este ejemplo, las VMs de backend se crean en la siguiente red y subred:
Red. La red es una red de VPC de modo personalizado llamada
lb-network
.Subred para las VMs de backend del balanceador de cargas Una subred llamada
lb-backend-subnet
en la regiónus-west1
usa10.1.2.0/24
en su rango de IP principal. Los rangos de direcciones IPv4 principales y secundarias de una subred son direcciones IPv4 internas regionales. Para obtener más información, consulta Rangos de IPv4 válidos.
Console
En la consola de Google Cloud , ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En Nombre, ingresa
lb-network
.En la sección Subredes, establece Modo de creación de subred como Personalizado.
En la sección Subred nueva, ingresa la siguiente información:
- Nombre:
lb-backend-subnet
- Selecciona una Región:
us-west1
- Rangos de direcciones IP:
10.1.2.0/24
- Nombre:
Haz clic en Listo.
Haz clic en Crear.
gcloud
Crea una red de VPC personalizada, llamada
lb-network
, con el comandogcloud compute networks create
.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_ID
Crea una subred en la red de VPC
lb-network
en la regiónus-west1
con el comandogcloud 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
Configura un servicio de backend en el proyecto B
Para configurar un servicio de backend, debes hacer lo siguiente:
- Crea una plantilla de instancias.
- Crear un grupo de instancias
- Crea una verificación de estado.
- Crea una regla de firewall.
- Crea un servicio de backend.
Crea una plantilla de instancias
El precursor de la creación de un grupo de instancias administrado es la creación de una plantilla de instancias, que es un recurso que puedes usar a fin de crear instancias de máquinas virtuales (VMs). Las cargas del tráfico de los clientes se balancean a las VMs de un grupo de instancias. El grupo de instancias administrado proporciona las VMs que ejecutan los servidores de backend de un balanceador de cargas de aplicaciones externo. En este ejemplo, los backends entregan sus propios nombres de host.
Console
En la consola de Google Cloud , ve a la página Plantillas de instancias de Compute Engine.
Haz clic en Crear plantilla de instancias.
En Nombre, ingresa
backend-template
.En la sección Disco de arranque, asegúrate de que el disco de arranque esté configurado en una imagen de Debian, como Debian GNU/Linux 12 (bookworm). Haz clic en Cambiar para cambiar la imagen si es necesario.
Expanda la sección Opciones avanzadas.
Expande Herramientas de redes y configura los siguientes campos:
- En Etiquetas de red, ingresa
load-balanced-backend
. - En la sección Interfaces de red, configura los siguientes campos:
- Red:
lb-network
- Subred:
lb-backend-subnet
- Tipo de pila IP: IPv4
- Red:
- Haga clic en Listo
- En Etiquetas de red, ingresa
Expande Administración. En el campo Secuencia de comandos de inicio, ingresa 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' \
Haz clic en Crear.
gcloud
Crea una plantilla de instancias.
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
Crea un grupo de instancias administrado
Console
En la consola de Google Cloud , ve a la página Grupos de instancias de Compute Engine.
Haz clic en Crear grupo de instancias.
En las opciones, selecciona Nuevo grupo de instancias administrado (sin estado).
Para el nombre del grupo de instancias, ingresa
lb-backend
.En la lista Plantilla de instancias, selecciona la plantilla de instancias
backend-template
que creaste en el paso anterior.En la sección Ubicación, selecciona Zona única e ingresa los siguientes valores:
En Región, selecciona
us-west1
.En Zona, selecciona
us-west1-a
.
En la sección Ajuste de escala automático, ingresa los siguientes valores:
En Modo de ajuste de escala automático, selecciona Activado: agrega y quita instancias del grupo.
En Cantidad mínima de instancias, selecciona
2
.En Cantidad máxima de instancias, selecciona
3
.
En la sección Asignación de puertos, haz clic en Agregar puerto e ingresa los siguientes valores:
En Nombre del puerto, ingresa
http
.En Número de puerto, ingresa
80
.
Haz clic en Crear.
gcloud
Crea un grupo de instancias administrado y selecciona la plantilla de instancias que creaste 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
Agrega 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 verificación de estado
Las verificaciones de estado son pruebas que confirman la disponibilidad de los backends. Crea una verificación de estado que use el protocolo HTTP y sondee el puerto 80. Luego, adjuntarás esta verificación de estado al servicio de backend al que hace referencia el balanceador de cargas.
Console
En la consola de Google Cloud , ve a la página Verificaciones de estado de Compute Engine:
Para el nombre de la verificación de estado, ingresa
lb-health-check
.Establece el Protocolo en HTTP.
Haz clic en Crear.
gcloud
Crea una verificación de estado de HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=PROJECT_B_ID
Crea una regla de firewall
Para los sondeos de verificación de estado, debes crear una regla de firewall de permiso de entrada a nivel de la red, que para los fines de este ejemplo es lb-network
. Esta
regla de firewall permite que los sondeos de verificación de estado lleguen a tus instancias de backend. En este ejemplo, se usa la siguiente regla de firewall:
fw-allow-health-check
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite todo el tráfico de TCP de los sistemas de verificación de estado de Google Clouden130.211.0.0/22
y35.191.0.0/16
. En este ejemplo, se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.
Console
En la consola de Google Cloud , ve a la página Políticas de firewall.
Haz clic en Crear regla de firewall para crear la regla que permite conexiones SSH entrantes en la VM del cliente:
- Nombre:
fw-allow-health-check
- Red:
lb-network
- Dirección del tráfico: Entrada
- Acción en caso de coincidencia: Permitir
- Destinos: Etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
130.211.0.0/22
y35.191.0.0/16
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla de verificación TCP y, luego, ingresa
80
para el número de puerto. Como práctica recomendada, limita esta regla solo a los protocolos y puertos que coincidan con los que usa tu verificación de estado. Si usas tcp:80 para el protocolo y el puerto, Google Cloud puede usar HTTP en el puerto 80 para comunicarse con tus VMs, pero no puede usar HTTPS en el puerto 443 para comunicarse con ellas.
- Nombre:
Haz clic en Crear.
gcloud
Crea la regla de firewall
fw-allow-health-check
para permitir las verificaciones de estado deGoogle Cloud . Este ejemplo permite todo el tráfico de TCP proveniente de la verificación de estado. Sin embargo, puedes configurar un conjunto más limitado de puertos 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 de backend
Crea un servicio de backend global para distribuir el tráfico entre backends. Como parte de este paso, debes asignar la verificación de estado que creaste al servicio de backend y agregar el grupo de instancias como backend al servicio de backend.
Console
En la consola de Google Cloud , ve a la página Balanceo de cargas.
Ve a la sección Backends.
Haz clic en Crear servicio de backend.
En Servicio de backend global, haz clic en el botón Crear junto a él.
Para el nombre del servicio de backend, ingresa
cross-ref-backend-service
.En Tipo de backend, selecciona Grupo de instancias.
Configura Protocolo como HTTP.
En el campo Puerto con nombre, ingresa
http
. Este es el mismo nombre de puerto que ingresaste cuando creaste el grupo de instancias administrado.Para agregar backends al servicio de backend, sigue estos pasos:
En la sección Backends, establece el grupo de instancias en
lb-backend
, que es el grupo de instancias administrado que creaste en un paso anterior.En Números de puerto, ingresa
80
.Para agregar el backend, haz clic en Listo.
Para agregar una verificación de estado, en la lista Verificación de estado, selecciona
lb-health-check
, que es la verificación de estado que creaste antes.Para crear el servicio de backend, haz clic en Crear.
gcloud
Crea un servicio de backend global para distribuir el tráfico entre 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
Agrega 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
Configura un bucket de backend en el proyecto B
Para crear un bucket de backend, debes hacer lo siguiente:
- Crea el bucket de Cloud Storage.
- Se copia el contenido en el bucket.
- Haz que el bucket sea de acceso público.
- Crea un bucket de backend y diríjalo al bucket de Cloud Storage.
Cree un bucket de Cloud Storage
Console
- En la Google Cloud consola, ve a la página Buckets de Cloud Storage.
Haga clic en
Crear.En el cuadro Asigna un nombre a tu bucket, ingresa un nombre global único que siga los lineamientos de nomenclatura.
Haz clic en Elige dónde almacenar tus datos.
Configura Tipo de ubicación como Región.
En la lista de regiones, selecciona us-east1.
Haz clic en Crear.
gcloud
Crea un bucket en la región
us-east1
con el comandogcloud 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
Reemplaza la variable BUCKET_NAME por el nombre de tu bucket de Cloud Storage.
Cómo copiar un archivo gráfico en tu bucket de Cloud Storage
Ejecuta el siguiente comando en Cloud Shell y reemplaza las variables de nombre de bucket por el nombre único de tu bucket de Cloud Storage para copiar el archivo gráfico de un bucket público de Cloud Storage a la carpeta images/
en tu propio bucket de Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
Haz que tu bucket de Cloud Storage sea legible de forma pública
Para que todos los objetos de un bucket sean legibles para todos en la Internet pública,
otorga a la principal allUsers
el rol de visualizador de objetos de Storage
(roles/storage.objectViewer
).
Console
A fin de otorgar a todos los usuarios acceso para ver objetos en tus buckets, repite el siguiente procedimiento para cada bucket:
- En la Google Cloud consola, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que deseas hacer público.
Selecciona la pestaña Permisos cerca de la parte superior de la página.
En la sección Permisos, haz clic en el botón
Otorgar acceso. Aparecerá el diálogo Otorgar acceso.En el campo Principales nuevas, ingresa
allUsers
.En el campo Seleccionar un rol, ingresa
Storage Object Viewer
en el cuadro de filtro y selecciona Visualizador de objetos de almacenamiento a partir de los resultados filtrados.Haz clic en Guardar.
Haz clic en Permitir acceso público.
gcloud
Para otorgar a todos los usuarios acceso para ver objetos en tus buckets, ejecuta el comando buckets add-iam-policy-binding
.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Reemplaza las variables de nombre de bucket por los nombres de bucket únicos de Cloud Storage.
Crear un bucket de backend
Los buckets de backend funcionan como wrapper para los buckets de Cloud Storage que creaste antes. Dirigen el tráfico entrante a los buckets de Cloud Storage.
Console
En la consola de Google Cloud , ve a la página Balanceo de cargas.
Ve a la sección Backends.
Haz clic en Crear bucket de backend.
Ingresa un nombre para tu bucket de backend.
Selecciona un bucket de Cloud Storage al que dirigir tu bucket de backend.
Haz clic en Crear.
gcloud
Crea un bucket 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
Configura los componentes de frontend del balanceador de cargas en el proyecto A
En esta sección, se muestra cómo configurar los siguientes componentes de frontend del balanceador de cargas en el proyecto A:
- Dirección IP
- Certificado SSL
- Mapa de URL
- Proxy de destino
- Regla de reenvío
Reserva la dirección IP del balanceador de cargas
Reserva una dirección IP externa estática global que se pueda asignar a la regla de reenvío del balanceador de cargas.
Console
En la consola de Google Cloud , ve a la página Direcciones IP de la VPC.
Haz clic en Reservar dirección IP externa estática.
En Nombre, ingresa
cross-ref-ip-address
.En Nivel de servicio de red, establece Premium.
Configura Versión de IP como IPv4.
Establece Tipo en Global.
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
Configura un recurso de certificado SSL
En este ejemplo, puedes usar HTTP o HTTPS como el protocolo de solicitud y respuesta entre el cliente y el balanceador de cargas. Si quieres crear un balanceador de cargas de HTTPS, debes agregar un recurso de certificado SSL al frontend del balanceador de cargas.
Crea un recurso de certificado SSL como se describe en la siguiente documentación:
Recomendamos que uses un certificado administrado por Google.
Después de crear el certificado, puedes adjuntarlo al proxy de destino HTTPS.
Configura los componentes de un balanceador de cargas de aplicaciones externo global
Console
Inicia tu configuración
En la consola de Google Cloud , ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
- En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo globales y haz clic en Siguiente.
- En Generación de balanceadores de cargas, selecciona Balanceador de cargas de aplicaciones externo global y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Ingresa un nombre para tu balanceador de cargas.
- Mantén la página abierta para continuar.
Configura el frontend
Para HTTP:
- Haz clic en Configuración de frontend.
- Ingresa un nombre para la regla de reenvío.
- Configura el Protocolo en
HTTP
. - Selecciona la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas.
- Configura el Puerto en
80
. - Haz clic en Listo.
Para HTTPS:
Si usas HTTPS entre el cliente y el balanceador de cargas, necesitas uno o más recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL.
- Haz clic en Configuración de frontend.
- Ingresa un nombre para la regla de reenvío.
- En el campo Protocolo, selecciona
HTTPS (includes HTTP/2)
. - Selecciona la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas.
- Asegúrate de que el Puerto esté establecido en
443
para permitir el tráfico HTTPS. - Haz clic en la lista Certificado.
- Selecciona el nombre del certificado SSL que creaste antes.
- Haz clic en Listo.
Configure el backend
- Haga clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En ID del proyecto, ingresa el ID del proyecto para el proyecto B.
- En la lista Seleccionar servicios de backend, selecciona el servicio de backend del proyecto B que deseas usar.
- Haz clic en OK.
Configura las reglas de enrutamiento
Haz clic en Reglas de enrutamiento.
En Modo, selecciona Regla avanzada de host y ruta de acceso.
Selecciona Agregar regla de host y ruta de acceso.
En el campo Hosts, ingresa
*
para que coincida con todos los nombres de host.En la sección Comparador de parches, ingresa 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 de acceso consta de una regla de ruta y un servicio predeterminado. La regla de ruta enruta todas las solicitudes a
/images/*
a un bucket de backend. Todas las demás solicitudes se enrutan al servicio de backend predeterminado.Haz clic en Listo.
Para obtener información sobre la administración del tráfico, consulta Descripción general de la administración del tráfico.
Revise y finalice la configuración
Revisa los diferentes componentes del balanceador de cargas que configuraste en los pasos anteriores. Notarás que la sección Backends hace referencia al servicio de backend y al bucket de backend.
Haz clic en Crear.
gcloud
Para crear los componentes de balanceo de cargas mencionados anteriormente con gcloud CLI, sigue estos pasos:
Crea un mapa de URL 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
Agrega un comparador de rutas de acceso para el mapa de URL. En este ejemplo, el comparador de rutas de acceso se compone de una regla de ruta de acceso y un servicio predeterminado. La regla de ruta enruta todas las solicitudes a
/images/*
a un bucket de backend. Todas las demás solicitudes se enrutan al servicio de 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
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 URL:
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 URL. El proxy es la parte del balanceador de cargas que contiene el certificado SSL para el balanceo de cargas de 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
Reemplaza
CERTIFICATE_NAME
por el nombre del certificado SSL.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 de destino HTTP:
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 de destino HTTPS:
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
Prueba el balanceador de cargas
La configuración del balanceador de cargas puede tardar unos minutos. Luego, podrás enviarle una solicitud. En este ejemplo, la solicitud se envía a la regla de reenvío HTTP del balanceador de cargas.
Obtén la dirección IP de la regla de reenvío HTTP del balanceador de cargas.
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \ --global
Si diriges tu navegador a http://IP_ADDRESS, la solicitud se enruta al servicio de backend, que muestra una página con información mínima sobre la instancia de backend.
Sin embargo, si diriges tu navegador a http://IP_ADDRESS/images/three-cats.jpg, la solicitud a /images/*
se enruta al bucket de backend, que muestra el archivo gráfico.
¿Qué sigue?
- Descripción general del balanceador de cargas de aplicaciones externo
- Certificado SSL
- Limpia una configuración de balanceo de cargas