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 ( 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:
-
Ve a la página Gestionar recursos de la Google Cloud consola.
Los pasos restantes aparecen en la Google Cloud consola.
- 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.
- Haz clic en Crear proyecto.
- 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.
- 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.
- Cuando hayas terminado de introducir los detalles del nuevo proyecto, 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, 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.
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 |
---|---|
|
|
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ónus-west1
usa10.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
En la Google Cloud consola, ve a la página Redes de VPC.
Haz clic en Crear red VPC.
En Nombre, escribe
lb-network
.En la sección Subredes, selecciona Personalizado en Modo de creación de subredes.
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
- Nombre:
Haz clic en Listo.
Haz clic en Crear.
gcloud
Crea una red 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
de 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
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
En la consola de Google Cloud , ve a la página de plantillas de instancias de Compute Engine.
Haz clic en Crear plantilla de instancia.
En Nombre, escribe
backend-template
.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.
Expande la sección Opciones avanzadas.
Despliega Redes y configura los siguientes campos:
- En Etiquetas de red, introduzca
load-balanced-backend
. - En la sección Interfaces de red, configure los siguientes campos:
- Red:
lb-network
- Subred:
lb-backend-subnet
- Tipo de pila de IP: IPv4
- Red:
- Haz clic en Hecho.
- En Etiquetas de red, introduzca
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' \
Haz clic en Crear.
gcloud
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
En la Google Cloud consola, ve a la página de Compute Engine Grupos de instancias.
Haz clic en Crear grupo de instancias.
En las opciones, selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado).
En el nombre del grupo de instancias, introduce
lb-backend
.En la lista Plantilla de instancia, selecciona la plantilla de instancia
backend-template
que has creado en el paso anterior.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
.
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
.
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
.
Haz clic en Crear.
gcloud
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
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
En la Google Cloud consola, ve a la página de Compute Engine Comprobaciones de estado.
En el nombre de la comprobación del estado, introduce
lb-health-check
.Define el protocolo como HTTP.
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
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.
Consola
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
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
y35.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.
- Nombre:
Haz clic en Crear.
gcloud
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
En la Google Cloud consola, ve a la página Balanceo de carga.
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 situado junto a él.
En el nombre del servicio backend, introduce
cross-ref-backend-service
.En Tipo de backend, selecciona Grupo de instancias.
En Protocol (Protocolo), selecciona HTTP.
En el campo Puerto con nombre, introduce
http
. Es el mismo nombre de puerto que introdujiste al crear el grupo de instancias gestionado.Para añadir backends al servicio de backend, sigue estos pasos:
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.En Números de puerto, introduce
80
.Para añadir el backend, haz clic en Hecho.
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.Para crear el servicio de backend, haz clic en Crear.
gcloud
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
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:
- Crea el segmento de Cloud Storage.
- Copia el contenido en el contenedor.
- Hacer que el segmento sea accesible públicamente.
- Crea un segmento de backend y dirígelo al segmento de Cloud Storage.
Crea un segmento de Cloud Storage
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
Haz clic en
Crear.En el cuadro Ponle nombre al segmento, escribe un nombre único a nivel global que cumpla las directrices de nomenclatura.
Haz clic en Elige dónde quieres almacenar los datos.
En Tipo de ubicación, selecciona Región.
En la lista de regiones, selecciona us-east1.
Haz clic en Crear.
gcloud
Crea un segmento 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
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:
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento que quiera hacer público.
Seleccione la pestaña Permisos, situada en la parte superior de la página.
En la sección Permisos, haz clic en el botón
Dar acceso. Aparecerá el cuadro de diálogo Dar acceso.En el campo Nuevos directores, introduce
allUsers
.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.Haz clic en Guardar.
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
En la Google Cloud consola, ve a la página Balanceo de carga.
Ve a la sección Backends.
Haz clic en Crear segmento de backend.
Asigna un nombre al backend.
Selecciona un segmento de Cloud Storage al que dirigir tu segmento de backend.
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
En la Google Cloud consola, ve a la página de direcciones IP de VPC.
Haz clic en Reservar dirección IP estática externa.
En Nombre, escribe
cross-ref-ip-address
.Configure Nivel de servicio de red como Premium.
Configura Versión de IP como IPv4.
En Tipo, seleccione 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
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
En la Google Cloud consola, ve a la página Balanceo de carga.
- Haga clic en Crear balanceador de carga.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
- En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
- 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.
- En Generación del balanceador de carga, selecciona Balanceador de carga de aplicación externo global y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Escribe un nombre para el balanceador de carga.
- Mantén la página abierta para continuar.
Configurar el frontend
En HTTP:
- Haz clic en Configuración de frontend.
- Introduce un nombre para la regla de reenvío.
- Define Protocol (Protocolo) como
HTTP
. - Selecciona la dirección IP que has creado en Reservar la dirección IP del balanceador de carga.
- Asigna el valor
80
a Port. - 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.
- Haz clic en Configuración de frontend.
- Introduce un nombre para la regla de reenvío.
- En el campo Protocol (Protocolo), selecciona
HTTPS (includes HTTP/2)
. - Selecciona la dirección IP que has creado en Reservar la dirección IP del balanceador de carga.
- Asegúrate de que el Puerto esté configurado como
443
para permitir el tráfico HTTPS. - Haz clic en la lista Certificado.
- Selecciona el nombre del certificado SSL que has creado anteriormente.
- Haz clic en Listo.
Configurar el backend
- Haz clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En ID de proyecto, introduce el ID de proyecto del proyecto B.
- En la lista Seleccionar servicios backend, elige el servicio backend del proyecto B que quieras usar.
- Haz clic en Aceptar.
Configurar las reglas de enrutamiento
Haz clic en Reglas de enrutamiento.
En Modo, selecciona Regla de host y ruta avanzada.
Seleccione Añadir regla de host y ruta.
En el campo Hosts (Hosts), introduce
*
para que coincida con todos los nombres de host.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.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
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.
Haz clic en Crear.
gcloud
Para crear los componentes de balanceo de carga mencionados anteriormente con la CLI de gcloud, sigue estos pasos:
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
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
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.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
- Descripción general del balanceador de carga de aplicaciones externo
- Certificados SSL
- Limpiar una configuración de balanceo de carga