Antes de seguir con esta guía, familiarízate con la documentación Descripción general de NEG de Internet, incluidas las limitaciones.
En el siguiente diagrama de arquitectura, se muestra un frontend del balanceador de cargas de red de proxy interno regional con un backend externo.
Permisos
Para seguir esta guía, debes crear un NEG de Internet y crear o modificar un balanceador de cargas de red de proxy en un proyecto. Debes ser propietario o editor (roles/owner
o roles/editor
) de proyecto o tener ambos de los siguientes roles de IAM de Compute Engine.
Tarea | Función requerida |
---|---|
Crear y modificar componentes del balanceador de cargas | Administrador de red de Compute ( roles/compute.networkAdmin )
|
Crear y modificar los NEG | Administrador de instancias de Compute ( roles/compute.instanceAdmin )
|
Configura el entorno de backend externo fuera de Google Cloud
Para configurar tu entorno de backend externo, consulta las siguientes secciones.
Configura extremos de red
Configura un extremo de red para exponer tu backend externo a Google Cloud. Asegúrate de que se pueda acceder al extremo a través de Internet, ya sea una combinación de IP:Port o un nombre de dominio completamente calificado (FQDN) y un puerto. Luego, se hace referencia a este extremo desde el NEG de Internet.
A fin de obtener información sobre los requisitos de configuración detallados para los extremos de NEG de Internet, consulta Descripción general de los NEG de Internet.
Permite que el backend externo reciba tráfico de Google Cloud
Este paso se puede completar después de crear la subred de solo proxy y configurar la puerta de enlace de Cloud NAT.
Para permitir que las solicitudes de Google Cloud lleguen a tu backend externo, debes realizar los siguientes pasos:
- Configura una puerta de enlace de Cloud NAT con direcciones IP que se usen para el tráfico de salida de Google Cloud. La puerta de enlace asigna el rango de subred de solo proxy a las direcciones IP externas. Para conocer los pasos, consulta Configura una puerta de enlace de Cloud NAT.
- Asegúrate de que el entorno de backend externo esté configurado para permitir que el tráfico de Google Cloud llegue al backend externo. Por ejemplo, si usaste direcciones IP reservadas con anterioridad para la puerta de enlace de NAT, deberás incluir en la lista de entidades permitidas esas direcciones IP en tu entorno externo. Es probable que debas trabajar con el administrador de red o de seguridad de tu entorno externo para configurar esto.
Configura tu entorno de Google Cloud
Necesitarás una red de VPC con dos subredes: una para los componentes del balanceador de cargas y la otra para la subred de solo proxy de la región. Luego, crearás el balanceador de cargas con un backend de NEG de Internet.
Crea la red y la subred de VPC
Esta subred se usa para crear los componentes del balanceador de cargas.
Consola de Cloud
- En la consola de Google Cloud, ve a la página Redes de VPC.
Ir a las redes de VPC - Haz clic en Crear red de VPC.
- Ingresa un Nombre: LB_NETWORK
- En la sección Subredes, haz lo siguiente:
- Establece Modo de creación de subred en Personalizado.
- En la sección Nueva subred, ingresa la siguiente información:
- Nombre: LB_SUBNET_NAME
- Región: REGION
- Rangos de direcciones IP: LB_SUBNET_RANGE
- Haz clic en Listo.
- Haz clic en Crear.
gcloud
Crea la red de VPC personalizada con el comando
gcloud compute networks create
:gcloud compute networks create LB_NETWORK \ --subnet-mode=custom
Crea una subred en la red LB_NETWORK.
gcloud compute networks subnets create LB_SUBNET_NAME \ --network=LB_NETWORK \ --range=LB_SUBNET_RANGE \ --region=REGION
Configura la subred de solo proxy
Todos los balanceadores de cargas regionales basados en Envoy en la región REGION usan esta subred de solo proxy.
Console
- En la consola de Google Cloud, ve a la página Redes de VPC.
Ir a las redes de VPC - Selecciona una red de la lista.
- Haz clic en Agregar subred.
- Ingresa un Nombre: PROXY_ONLY_SUBNET_NAME
- Selecciona una región: REGION
- Configura Propósito como Proxy administrado regional.
- Ingresa un Rango de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
- Haz clic en Agregar.
gcloud
Crea la subred de solo proxy con el comando gcloud compute networks subnets
create
.
gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=LB_NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
Configura una puerta de enlace de Cloud NAT
Antes de configurar la puerta de enlace de Cloud NAT, asegúrate de haber revisado las limitaciones y las consideraciones de precios asociadas. Para obtener más detalles, consulta NEG regionales: Usa una puerta de enlace de Cloud NAT.Los siguientes comandos describen cómo configurar una puerta de enlace de Cloud NAT. La puerta de enlace de Cloud NAT se puede configurar para usar direcciones IP externas automáticas de NAT, en las que la asignación se basa en la demanda, o bien para usar un conjunto de direcciones IP externas reservadas de forma manual. La puerta de enlace asigna el rango de subred de solo proxy a las direcciones IP externas.
Configura direcciones IP con NAT asignadas automáticamente
Cuando creas una puerta de enlace de Cloud NAT con la asignación de dirección IP de NAT automática, puedes especificar los niveles de servicio de red (nivel Premium o Estándar) desde los que la puerta de enlace de Cloud NAT asigna las direcciones IP.
Console
En la consola de Google Cloud, ve a la página de Cloud NAT.
Haz clic en Comenzar o Crear la puerta de enlace de Cloud NAT.
Ingresa un nombre de puerta de enlace LB_NAT_CONFIG.
Para Tipo de NAT, seleccionaPública.
En la lista Red, selecciona LB_NETWORK.
En la lista Región, selecciona REGION.
Crea un Cloud Router en la región.
En Tipo de extremo de origen, selecciona Balanceadores de cargas de proxy administrados.
En la lista Origen, selecciona Personalizado.
- En Subredes, selecciona PROXY_ONLY_SUBNET_NAME.
En la lista Direcciones IP de Cloud NAT, selecciona Automáticas (recomendado).
En Nivel de servicio de red, elige Premium o Estándar.
Haz clic en Crear.
gcloud
Usa direcciones IP asignadas de forma dinámica si tu entorno de backend externo no requiere que incluyas direcciones IP específicas de Google Cloud en la lista de entidades permitidas que puedan enviar tráfico al backend externo.
Crea un Cloud Router:
gcloud beta compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Configura la puerta de enlace de Cloud NAT.
gcloud beta compute routers nats create LB_NAT_CONFIG \ --router=ROUTER_NAME \ --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \ --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \ --auto-allocate-nat-external-ips \ --region=REGION
Reemplaza lo siguiente:
LB_NAT_CONFIG
: Es el nombre de tu configuración de NAT.ROUTER_NAME
: Es el nombre de tu Cloud Router.REGION
: la región de la NAT que se creará. Si no se especifica, es posible que se te solicite seleccionar una región (solo modo interactivo).PROXY_ONLY_SUBNET_NAME
: El nombre de tu subred de solo proxy.
Configura direcciones IP asignadas manualmente
Usa direcciones IP asignadas de forma manual solo si el entorno de backend externo requiere que uses una lista de entidades permitidas para direcciones IP de Google Cloud específicas. Si el entorno de backend externo no necesita una lista de entidades permitidas, usa la asignación dinámica como se mostró antes.
Cuando creas una puerta de enlace de Cloud NAT, puedes asignar direcciones IP de NAT de forma manual desde el nivel Premium, el nivel Estándar o ambos, sujetas a ciertas condiciones.
Console
En la consola de Google Cloud, ve a la página de Cloud NAT.
Haz clic en Comenzar o Crear la puerta de enlace de Cloud NAT.
Ingresa un nombre de puerta de enlace LB_NAT_CONFIG.
En la lista Red, selecciona LB_NETWORK.
En la lista Región, selecciona REGION.
Selecciona o crea un Cloud Router en la región.
En Tipo de extremo de origen, selecciona Balanceadores de cargas de proxy administrados.
En la lista Origen, selecciona Personalizado.
- En Subredes, selecciona PROXY_ONLY_SUBNET_NAME.
En la lista Direcciones IP de Cloud NAT, selecciona Manuales.
En Nivel de servicio de red, elige Premium o Estándar.
Selecciona o crea una dirección IP externa reservada estática para usar en NAT.
Si quieres especificar direcciones IP adicionales, haz clic en Agregar dirección IP y, luego, selecciona o crea una dirección IP externa reservada estática adicional.
Haz clic en Crear.
gcloud
Crea las direcciones IP. Debido a que la puerta de enlace realiza la traducción de NAT uno a uno, debes asegurarte de que el grupo de direcciones IP reservadas sea lo suficientemente grande como para manejar la cantidad de tráfico que esperas. Las direcciones IP de NAT asignadas de manera insuficiente podrían provocar la pérdida de tráfico.
gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \ --region=REGION
Crea un Cloud Router:
gcloud compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Configura la puerta de enlace de Cloud NAT.
gcloud beta compute routers nats create LB_NAT_CONFIG \ --router=ROUTER_NAME \ --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \ --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \ --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \ --region=REGION
Reemplaza lo siguiente:
LB_NAT_CONFIG
: Es el nombre de tu configuración de NAT.ROUTER_NAME
: Es el nombre de tu Cloud Router.PROXY_ONLY_SUBNET_NAME
: El nombre de tu subred de solo proxy.REGION
: la región de la NAT que se creará. Si no se especifica, es posible que se te solicite seleccionar una región (solo modo interactivo).
Si deseas obtener más información, consulta Especifica los rangos de subred para NAT en la documentación de Cloud NAT.
Asegúrate de usar una lista de entidades permitidas para los rangos de direcciones IP de NAT en tu entorno de backend externo, de modo que tu backend externo pueda recibir tráfico de Google Cloud.
Reserva la dirección IP del balanceador de cargas
Reserva una dirección IP interna para el balanceador de cargas.
Console
Puedes reservar una dirección IP interna independiente con la consola de Google Cloud.
- Ir a la página de redes de VPC
- Haz clic en la red que se usó para configurar la conectividad híbrida entre los entornos.
- Haz clic en Direcciones IP internas estáticas y, luego, en Reservar dirección estática.
- Ingresa un Nombre: LB_IP_ADDRESS
- En Subred, selecciona LB_SUBNET_NAME.
- Si deseas especificar qué dirección IP deseas reservar, en Dirección IP estática, selecciona Permitirme elegir y, luego, completa una Dirección IP personalizada. De lo contrario, el sistema asignará de forma automática una dirección IP en la subred.
- Si deseas usar esta dirección IP con varias reglas de reenvío, en Propósito, elige Compartido.
- Haz clic en Reservar para finalizar el proceso.
gcloud
Con la CLI de gcloud, ejecuta el comando
compute addresses create
:gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME \
Usa el comando
compute addresses describe
para ver la dirección IP asignada:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Configura el NEG de Internet
Puedes crear un NEG de Internet con extremos INTERNET_FQDN_PORT
o INTERNET_IP_PORT
.
Console
Crea un NEG con extremos INTERNET_FQDN_PORT
En la consola de Google Cloud, ve a la página Grupo de extremos de red.
Haz clic en Crear un grupo de extremos de red.
Especifica un INTERNET_NEG_NAME para tu NEG de Internet. Para obtener más información, consulta Convención de asignación de nombres de recursos.
En la lista Tipo de grupo de extremos de red, selecciona Grupo de extremos de red (Internet) y, luego, haz lo siguiente:
- En la lista Alcance, selecciona Regional.
- Opcional: En la lista Región, cambia el REGION para este NEG.
- En la lista Red, selecciona LB_NETWORK.
- En el cuadro Puerto predeterminado, ingresa DEFAULT_PORT_NUMBER.
- En la lista Agregar extremos a través de, selecciona Nombre y puerto de dominio completamente calificados.
- Seleccione Crear.
Agrega extremos INTERNET_FQDN_PORT
al NEG
En la consola de Google Cloud, ve a la página Grupo de extremos de red.
- Haz clic en INTERNET_NEG_NAME.
Ingresa el nombre de dominio completamente calificado, como
myorg.example.com
. Debes especificar los objetos de FQDN en la sintaxis de FQDN estándar.En Tipo de puerto, selecciona Personalizado. Si el Tipo de puerto es
Default
, se usa el puerto predeterminado del NEG.- En el cuadro Número de puerto, ingresa PORT_NUMBER_1.
- Seleccione Crear.
Crea un NEG con extremos INTERNET_IP_PORT
En la consola de Google Cloud, ve a la página Grupo de extremos de red.
Haz clic en Crear un grupo de extremos de red.
Especifica un nombre para tu NEG de Internet INTERNET_NEG_NAME. Para obtener más información, consulta Convención de asignación de nombres de recursos.
En la lista Tipo de grupo de extremos de red, selecciona Grupo de extremos de red (Internet) y, luego, haz lo siguiente:
- En la lista Alcance, selecciona Regional.
- Opcional: En la lista Región, cambia el REGION para este NEG.
- En la lista Red, selecciona LB_NETWORK.
- En el cuadro Puerto predeterminado, ingresa DEFAULT_PORT_NUMBER.
- En la lista Agregar extremos a través de, selecciona IP y puerto.
- Seleccione Crear.
Agrega extremos INTERNET_IP_PORT
al NEG
En la consola de Google Cloud, ve a la página Grupo de extremos de red.
- Haz clic en INTERNET_NEG_NAME.
- En el campo Dirección IP, ingresa IP_ADDRESS_1.
Opcional: En la lista Tipo de puerto, selecciona Personalizado. Si el Tipo de puerto es
Default
, se usa el puerto predeterminado del NEG.- En el campo Número de puerto, ingresa un PORT_NUMBER_1.
- Seleccione Crear.
gcloud
Para crear un NEG con extremos INTERNET_FQDN_PORT
, haz lo siguiente:
Crea el recurso de NEG.
gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type=INTERNET_FQDN_PORT \ --default-port=DEFAULT_PORT_NUMBER \ --network=LB_NETWORK \ --region=REGION
Agrega extremos al NEG. Si no se especifica un puerto, se usa el puerto predeterminado del NEG.
gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \ [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \] --region=REGION
Reemplaza lo siguiente:
FULLY_QUALIFIED_DOMAIN_NAME
: es el nombre de dominio completamente calificado para el extremo.PORT_NUMBER
: es el número de puerto del el extremo.
Puedes agregar hasta 256 extremos por NEG.
Si tu dominio se puede resolver en Internet, no se necesita ninguna otra configuración para configurar DNS. Sin embargo, si usas FQDN privados, deberás configurar Cloud DNS para facilitar la resolución de DNS. El nombre debe estar alojado en Cloud DNS o debe poder resolverse con el reenvío de DNS desde Cloud DNS a un DNS local.
Primero, crea una zona de Cloud DNS para alojar los registros DNS en tu proyecto. Luego, agrégale los registros DNS. Consulta la documentación de Cloud DNS para conocer los pasos de configuración específicos.
Para crear un NEG con extremos INTERNET_IP_PORT
, haz lo siguiente:
Crea el recurso de NEG.
gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type=INTERNET_IP_PORT \ --default-port=DEFAULT_PORT_NUMBER \ --network=LB_NETWORK \ --region=REGION
Agrega extremos al NEG. Si no se especifica un puerto, se usa el puerto predeterminado del NEG.
gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \ [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \] --region=REGION
Reemplaza lo siguiente:
IP_ADDRESS
: es la dirección IP del extremo.PORT_NUMBER
: es el número de puerto del el extremo.
Puedes repetir este paso para agregar hasta 256 extremos por NEG.
Crea el balanceador de cargas
Console
Inicia la 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 red (TCP/UDP/SSL) y haz clic en Siguiente.
- En Proxy o transferencia, selecciona Balanceador de cargas de proxy y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Interno y haz clic en Siguiente.
- En Implementación entre regiones o de una sola región, selecciona Ideal para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Ingresa un nombre de balanceador de cargas.
- En Región, selecciona REGION.
- En Red, selecciona LB_NETWORK.
Reserva una subred de solo proxy
Sigue estos pasos para reservar una subred de solo proxy:
- Haz clic en Reservar subred.
- En Nombre, ingresa PROXY_ONLY_SUBNET_NAME.
- En Rango de direcciones IP, ingresa PROXY_ONLY_SUBNET_RANGE.
- Haz clic en Agregar.
Configuración de frontend
- Haz clic en Configuración de frontend.
- Ingresa un Nombre.
- En Subred, selecciona LB_SUBNET_NAME.
- En Dirección IP, selecciona la dirección IP que se reservó antes: LB_IP_ADDRESS.
- En Número de puerto, especifica un solo número de puerto entre 1 y 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.
- Haz clic en Listo.
Configuración de backend
- Haz clic en Configuración de backend.
- Haz clic en Servicios y buckets de backend.
- Haz clic en Crear un servicio de backend.
- Ingresa un nombre.
- En Tipo de backend, selecciona Grupo de extremos de red de Internet.
- En Protocol, selecciona TCP.
- En Backends, en la ventana Nuevo backend, selecciona el grupo de extremos de red de Internet regional que se creó en el paso anterior.
- Haz clic en Listo.
- Configura la verificación de estado:
- En Verificación de estado, seleccione Crear una verificación de estado.
- Establece el nombre de la verificación de estado como TCP_HEALTH_CHECK_NAME.
- En Protocol, selecciona TCP.
- Configura el Puerto como
80
. - Conserva los valores predeterminados restantes y haz clic en Guardar.
- Haz clic en Crear.
Revisa y finaliza
- Haz clic en Revisar y finalizar.
- Si todo parece correcto, haz clic en Crear.
gcloud
- Crea una verificación de estado (opcional). Los sondeos de verificación de estado para backends externos usan las verificaciones de estado distribuidas de Envoy y, luego, se traducen por medio de NAT.
gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- Crea un servicio de backend:
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --health-checks=TCP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- Agrega el NEG de Internet al servicio de backend:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
Crea un proxy TCP de destino para enrutar las solicitudes a tu servicio de backend.
gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --region=REGION
Crea una regla de reenvío para enrutar las solicitudes entrantes al proxy. Para `--ports`, especifica un solo número de puerto, de 1 a 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --region=REGION \ --ports=PORT_NUMBER
Prueba el balanceador de cargas
Ahora que ya configuraste el balanceador de cargas, puedes comenzar a enviar tráfico a la dirección IP del balanceador de cargas.
Crea una VM de cliente
En este ejemplo, se crea una VM de cliente (vm-client
) en la misma región que el balanceador de cargas. El cliente se usa para validar la configuración del balanceador de cargas y demostrar el comportamiento esperado.
gcloud
La VM de cliente puede estar en cualquier zona de la misma REGION que el balanceador de cargas y puede usar cualquier subred de la misma red de VPC.
gcloud compute instances create vm-client \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --zone=ZONE
Envía tráfico al balanceador de cargas
Es posible que la configuración del balanceador de cargas tarde unos minutos en propagarse a nivel global después de implementarla por primera vez.
Conéctate mediante SSH a la instancia de cliente.
gcloud compute ssh vm-client \ --zone=ZONE
Verifica que el balanceador de cargas entregue los nombres de host del backend como se esperaba.
Usa el comando
compute addresses describe
para ver la dirección IP del balanceador de cargas:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Anota la dirección IP.
Puedes usar
curl
para enviar tráfico al balanceador de cargas en la dirección IP y el puerto especificados cuando creas la regla de reenvío del balanceador de cargas. Las pruebas para ver si los backends de NEG de Internet responden a las solicitudes dependen del servicio que se ejecuta en los extremos externos.
Opciones de configuración adicionales
Para habilitar aún más capacidades para el balanceador de cargas de aplicaciones interno regional, como el acceso global (si tus clientes están en una región diferente), consulta Configura un balanceador de cargas de aplicaciones interno con backends de grupos de instancias de VM: Configuración adicional.
¿Qué sigue?
- Para configurar la supervisión del balanceador de cargas de red del proxy interno regional, consulta Usa la supervisión.
- Limpia la configuración del balanceador de cargas.