Antes de seguir esta guía, familiarízate con la documentación de Descripción general de NEG de Internet, incluidas las limitaciones.
En el siguiente diagrama de arquitectura se muestra un frontend de balanceador de carga de red de proxy externo regional con un backend externo.
Permisos
Para seguir esta guía, debes crear un NEG de Internet y crear o modificar un balanceador de carga de red proxy en un proyecto. Debes ser propietario o editor (roles/owner
o roles/editor
) de un proyecto, o bien tener los dos roles de gestión de identidades y accesos de Compute Engine que se indican a continuación.
Tarea | Rol necesario |
---|---|
Crear y modificar componentes de balanceadores de carga | Administrador de red de Compute ( roles/compute.networkAdmin )
|
Crear y modificar grupos de puntos de conexión de red | Administrador de instancias de Compute ( roles/compute.instanceAdmin )
|
Configurar el entorno de backend externo fuera de Google Cloud
Para configurar tu entorno de backend externo, consulta las secciones siguientes.
Configurar endpoints de red
Configura un endpoint de red para exponer tu backend externo aGoogle Cloud. Asegúrate de que se pueda acceder al endpoint (una combinación de IP y puerto, o un nombre de dominio completo y un puerto) a través de Internet. Este endpoint se referencia más adelante desde el NEG de Internet.
Para obtener información detallada sobre los requisitos de configuración de los endpoints de los NEGs de Internet, consulta la descripción general de los NEGs de Internet.
Permitir que el backend externo reciba tráfico de Google Cloud
Puedes completar este paso después de crear la subred solo proxy y configurar la puerta de enlace Cloud NAT.
Para permitir que las solicitudes de Google Cloud lleguen a tu backend externo, debes seguir estos pasos:
- Configura una pasarela Cloud NAT con direcciones IP que se utilicen para el tráfico de salida de Google Cloud. La pasarela asigna el intervalo de subred solo proxy a las direcciones IP externas. Para ver los pasos, consulta Configurar una pasarela Cloud NAT.
- Asegúrate de que tu entorno de backend externo esté configurado para permitir que el tráfico de Google Cloud llegue al backend externo. Por ejemplo, si has usado direcciones IP reservadas previamente para la pasarela NAT, debes incluir esas direcciones IP en la lista de permitidas de tu entorno externo. Es probable que tengas que colaborar con el administrador de la red o de la seguridad de tu entorno externo para configurarlo.
Configurar el Google Cloud entorno
Necesitarás una red de VPC con dos subredes: una para los componentes del balanceador de carga y otra para la subred de solo proxy de la región. A continuación, creará el balanceador de carga con un backend de NEG de Internet.
Crear la red VPC y la subred
Esta subred se usa para crear los componentes del balanceador de carga.
consola de Cloud
- En la Google Cloud consola, ve a la página Redes de VPC.
Ve a Redes de VPC. - Haz clic en Crear red VPC.
- Escribe un nombre: LB_NETWORK.
- En la sección Subredes, haz lo siguiente:
- Elige Personalizado en Modo de creación de subred.
- En la sección Nueva subred, introduce la siguiente información:
- Nombre: LB_SUBNET_NAME
- Región: REGION
- Intervalo 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
Configurar la subred de solo proxy
Todos los balanceadores de carga regionales basados en Envoy de la región REGION usan esta subred solo de proxy.
Consola
- En la Google Cloud consola, ve a la página Redes de VPC.
Ve a Redes de VPC. - Selecciona una red de la lista.
- Haz clic en Añadir subred.
- Escribe un nombre: PROXY_ONLY_SUBNET_NAME.
- Selecciona una región: REGION.
- En Propósito, selecciona Proxy gestionado regional.
- Introduce un intervalo de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
- Haz clic en Añadir.
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
Configurar una pasarela de Cloud NAT
Antes de configurar la pasarela Cloud NAT, asegúrate de haber consultado las limitaciones asociadas y los precios. Para obtener más información, consulta NEGs regionales: usar una puerta de enlace Cloud NAT.En los siguientes comandos se describe cómo configurar una pasarela Cloud NAT. La puerta de enlace Cloud NAT se puede configurar para usar direcciones IP externas NAT automáticas, en las que la asignación se basa en la demanda, o para usar un conjunto de direcciones IP externas reservadas manualmente. La pasarela asigna el intervalo de la subred de solo proxy a las direcciones IP externas.
Configurar direcciones IP asignadas de NAT automáticas
Cuando creas una pasarela Cloud NAT con asignación automática de direcciones IP de NAT, puedes especificar los niveles de servicio de red (nivel Premium o nivel Estándar) desde los que la pasarela Cloud NAT asigna las direcciones IP.
Consola
En la Google Cloud consola, ve a la página Cloud NAT.
Haz clic en Empezar o en Crear pasarela de Cloud NAT.
Introduce el nombre de la pasarela LB_NAT_CONFIG.
En Tipo de NAT, selecciona Público.
En la lista Red, selecciona LB_NETWORK.
En la lista Región, selecciona REGION.
Crea un router de Cloud Router en la región.
En Tipo de endpoint de origen, selecciona Balanceadores de carga de proxy gestionados.
En la lista Fuente, selecciona Personalizada.
- En Subredes, selecciona PROXY_ONLY_SUBNET_NAME.
En la lista Direcciones IP de Cloud NAT, selecciona Automático (recomendado).
En Nivel de servicio de red, elija Premium o Estándar.
Haz clic en Crear.
gcloud
Usa direcciones IP asignadas dinámicamente si tu entorno de backend externo no requiere que incluyas en una lista de permitidos direcciones IP específicas que puedan enviar tráfico al backend externo. Google Cloud
Crea un router de Cloud Router:
gcloud beta compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Configura la pasarela 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
Haz los cambios siguientes:
LB_NAT_CONFIG
: el nombre de tu configuración de NAT.ROUTER_NAME
: el nombre de tu Cloud Router.REGION
: la región de la NAT que se va a crear. Si no se especifica, es posible que se te pida que selecciones una región (solo en modo interactivo).PROXY_ONLY_SUBNET_NAME
: el nombre de tu proxy solo subred.
Configurar direcciones IP asignadas manualmente
Usa direcciones IP asignadas manualmente solo si tu entorno de backend externo requiere que uses una lista de permitidos para direcciones IP específicas. Google Cloud Si el entorno backend externo no necesita una lista de permitidos, utilice la asignación dinámica como se ha mostrado anteriormente.
Cuando creas una pasarela Cloud NAT, puedes asignar manualmente direcciones IP de NAT de los niveles Premium o Estándar, o de ambos, siempre que se cumplan ciertas condiciones.
Consola
En la Google Cloud consola, ve a la página Cloud NAT.
Haz clic en Empezar o en Crear pasarela de Cloud NAT.
Introduce el nombre de la pasarela 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 endpoint de origen, selecciona Balanceadores de carga de proxy gestionados.
En la lista Fuente, selecciona Personalizada.
- En Subredes, selecciona PROXY_ONLY_SUBNET_NAME.
En la lista Direcciones IP de Cloud NAT, selecciona Manual.
En Nivel de servicio de red, elija Premium o Estándar.
Selecciona o crea una dirección IP externa estática reservada para usarla en NAT.
Si quieres especificar más direcciones IP, haz clic en Añadir dirección IP y, a continuación, selecciona o crea otra dirección IP externa estática reservada.
Haz clic en Crear.
gcloud
Crea las direcciones IP. Como la pasarela realiza una traducción NAT de uno a uno, debes asegurarte de que el conjunto de direcciones IP reservadas sea lo suficientemente grande para gestionar el volumen de tráfico que esperas. Si no se asignan suficientes direcciones IP de NAT, se puede perder tráfico.
gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \ --region=REGION
Crea un router de Cloud Router:
gcloud compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
Configura la pasarela 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
Haz los cambios siguientes:
LB_NAT_CONFIG
: el nombre de tu configuración de NAT.ROUTER_NAME
: el nombre de tu Cloud Router.PROXY_ONLY_SUBNET_NAME
: el nombre de tu proxy solo subred.REGION
: la región de la NAT que se va a crear. Si no se especifica, es posible que se te pida que selecciones una región (solo en modo interactivo).
Configurar la asignación dinámica de puertos
Actualiza la pasarela de Cloud NAT para que use el modo de asignación dinámica de puertos y así poder usar todas las direcciones IP asignadas.
gcloud
Actualiza la pasarela de Cloud NAT. Te recomendamos que definas el número mínimo de puertos en 2048 y el máximo en 4096.
gcloud compute routers nats update LB_NAT_CONFIG \ --router=ROUTER_NAME \ --enable-dynamic-port-allocation \ --min-ports-per-vm=MIN_PORTS_PER_VM \ --max-ports-per-vm=MAX_PORTS_PER_VM \ --region=REGION
Comprueba que la asignación dinámica de puertos esté habilitada y que se hayan definido el número mínimo y máximo de puertos.
gcloud compute routers nats describe LB_NAT_CONFIG \ --router=ROUTER_NAME \ --region=REGION
El resultado debería ser similar al siguiente:
enableDynamicPortAllocation: true enableEndpointIndependentMapping: false endpointTypes: ‐ ENDPOINT_TYPE_MANAGED_PROXY_LB logConfig: enable: true filter: ALL maxPortsPerVm: 4096 minPortsPerVm: 2048 name: LB_NAT_CONFIG natIpAllocateOption: MANUAL_ONLY natIps: ‐ https://www.googleapis.com/compute/projects/PROJECT_NAME/regions/REGION/addresses/ADDRESS sourceSubnetworkIpRangesToNat: ALL_SUBNETWORKS_ALL_IP_RANGES type: PUBLIC
Para obtener más información, consulta Especificar intervalos de subredes para NAT en la documentación de Cloud NAT.
Asegúrate de usar una lista de permitidos para los intervalos de direcciones IP de NAT en tu entorno de backend externo para que este pueda recibir tráfico de Google Cloud.
Reservar la dirección IP del balanceador de carga
Reserva una dirección IP estática para el balanceador de carga.
Consola
En la Google Cloud consola, ve a la página Reservar una dirección estática.
Elige un nombre para la nueva dirección.
En Nivel de servicio de red, selecciona Estándar.
En Versión de IP, selecciona IPv4. Las direcciones IPv6 solo pueden ser globales y solo se pueden usar con balanceadores de carga globales.
En Type (Tipo), selecciona Regional (Regional).
Selecciona una región.
Deje la opción Adjunto a configurada como Ninguno. Una vez que hayas creado el balanceador de carga, esta dirección IP se adjuntará a la regla de reenvío del balanceador de carga.
Haz clic en Reservar para reservar la dirección IP.
gcloud
Para reservar una dirección IP externa estática con
gcloud compute
, usa el comandocompute addresses create
.gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --network-tier=STANDARD
Haz los cambios siguientes:
LB_IP_ADDRESS
: el nombre que quieras darle a esta dirección.REGION
: la región en la que quieres reservar esta dirección. Esta región debe ser la misma que la del balanceador de carga. Todas las direcciones IP regionales sonIPv4
.
Usa el comando
compute addresses describe
para ver el resultado:gcloud compute addresses describe LB_IP_ADDRESS
Configurar el NEG de Internet
Puede crear un NEG de Internet con INTERNET_FQDN_PORT
puntos finales o INTERNET_IP_PORT
puntos finales.
Consola
Crea un NEG con INTERNET_FQDN_PORT
puntos finales.
En la Google Cloud consola, ve a la página Grupo de extremos de red.
Haz clic en Crear grupo de endpoints de red.
Especifica un INTERNET_NEG_NAME para tu NEG de Internet. Para obtener más información, consulta el artículo Convenciones para asignar nombres de recursos.
En la lista Tipo de grupo de endpoints de red, selecciona Grupo de endpoints de red (Internet) y, a continuación, haz lo siguiente:
- En la lista Ámbito, selecciona Regional.
- Opcional: En la lista Región, cambia el REGION de este NEG.
- En la lista Red, selecciona LB_NETWORK.
- En el cuadro Puerto predeterminado, introduce DEFAULT_PORT_NUMBER.
- En la lista Añadir endpoints mediante, selecciona Nombre de dominio cualificado y puerto.
- Selecciona Crear.
Añadir puntos finales INTERNET_FQDN_PORT
al NEG
En la Google Cloud consola, ve a la página Grupo de extremos de red.
- Haz clic en INTERNET_NEG_NAME.
Introduce el nombre de dominio completo, como
myorg.example.com
. Debe especificar los objetos FQDN con la sintaxis FQDN estándar.Opcional: 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, introduce PORT_NUMBER_1.
- Selecciona Crear.
Crea un NEG con INTERNET_IP_PORT
puntos finales.
En la Google Cloud consola, ve a la página Grupo de extremos de red.
Haz clic en Crear grupo de endpoints de red.
Especifica un nombre INTERNET_NEG_NAME para tu NEG de Internet. Para obtener más información, consulta el artículo Convenciones para asignar nombres de recursos.
En la lista Tipo de grupo de endpoints de red, selecciona Grupo de endpoints de red (Internet) y, a continuación, haz lo siguiente:
- En la lista Ámbito, selecciona Regional.
- Opcional: En la lista Región, cambia el REGION de este NEG.
- En la lista Red, selecciona LB_NETWORK.
- En el cuadro Puerto predeterminado, introduce DEFAULT_PORT_NUMBER.
- En la lista Añadir endpoints mediante, selecciona IP y puerto.
- Selecciona Crear.
Añadir puntos finales INTERNET_IP_PORT
al NEG
En la Google Cloud consola, ve a la página Grupo de extremos de red.
- Haz clic en INTERNET_NEG_NAME.
- En el campo Dirección IP, introduce 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, introduce PORT_NUMBER_1.
- Selecciona Crear.
gcloud
Para crear un NEG con endpoints INTERNET_FQDN_PORT
, sigue estos pasos:
Crea el recurso 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
Añade endpoints al NEG. Si no se especifica ningún 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
Haz los cambios siguientes:
FULLY_QUALIFIED_DOMAIN_NAME
: nombre de dominio completo del endpointPORT_NUMBER
: número de puerto del endpoint.
Puedes añadir hasta 256 endpoints por NEG.
Si tu dominio se puede resolver en Internet, no es necesario realizar ninguna otra configuración para configurar el DNS. Sin embargo, si usas FQDNs privados, tendrás que configurar Cloud DNS para facilitar la resolución de DNS. El nombre debe estar alojado en Cloud DNS o resolverse mediante el reenvío de DNS de Cloud DNS a un DNS local.
Empieza creando una zona de Cloud DNS para alojar los registros DNS de tu proyecto. A continuación, añade los registros DNS. Consulta la documentación de Cloud DNS para ver los pasos de configuración específicos.
Para crear un NEG con endpoints INTERNET_IP_PORT
, sigue estos pasos:
Crea el recurso 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
Añade endpoints al NEG. Si no se especifica ningún 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
Haz los cambios siguientes:
IP_ADDRESS
: la dirección IP del endpointPORT_NUMBER
: número de puerto del endpoint.
Puede repetir este paso para añadir hasta 256 endpoints por NEG.
Crear el balanceador de carga
Consola
Iniciar la configuración
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 red (TCP/UDP/SSL) y haz clic en Siguiente.
- En Proxy o pasarela, selecciona Balanceador de carga de proxy y haz clic en Siguiente.
- En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
- Para la implementación global o en una sola región, selecciona La mejor opción para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Introduce un nombre de balanceador de carga.
- En Región, selecciona REGION.
- En Red, selecciona LB_NETWORK.
Reservar una subred de solo proxy
Para reservar una subred de solo proxy, sigue estos pasos:
- Haz clic en Reservar subred.
- En Nombre, escribe PROXY_ONLY_SUBNET_NAME.
- En Intervalo de direcciones IP, introduce PROXY_ONLY_SUBNET_RANGE.
- Haz clic en Añadir.
Configuración de frontend
- Haz clic en Configuración de frontend.
- Escribe un nombre.
- En Nivel de servicio de red, selecciona Estándar.
- En Dirección IP, selecciona la dirección IP reservada anteriormente: LB_IP_ADDRESS.
- En Número de puerto, especifica un 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 segmentos de backend.
- Haz clic en Crear un servicio de backend.
- Escribe un nombre.
- En Tipo de backend, selecciona Grupo de endpoints de red de Internet.
- En Protocolo, selecciona TCP.
- En Backends (Backends), en la ventana New backend (Nuevo backend), selecciona el Regional internet network endpoint group (Grupo de endpoints de red de Internet regional) creado en el paso anterior.
- Haz clic en Listo.
- Configura la comprobación del estado:
- En Comprobación del estado, selecciona Crear una comprobación del estado.
- Asigna el nombre TCP_HEALTH_CHECK_NAME a la comprobación del estado.
- En Protocolo, selecciona TCP.
- Define Puerto como
80
. - Mantenga el resto de los valores predeterminados y haga clic en Guardar.
- Haz clic en Crear.
Revisar y finalizar
- Haz clic en Revisar y finalizar.
- Si todo es correcto, haz clic en Crear.
gcloud
- Opcional: Crea una comprobación del estado. Las comprobaciones del estado de los backends externos usan las comprobaciones del estado de Envoy distribuidas y se traducen mediante NAT más adelante.
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=EXTERNAL_MANAGED \ --health-checks=TCP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- Añade 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 dirigir las solicitudes entrantes al proxy. En `--ports`, especifica un número de puerto único entre 1 y 65535. La regla de reenvío solo reenvía paquetes con un puerto de destino coincidente.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=LB_NETWORK \ --address=LB_IP_ADDRESS \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --region=REGION \ --ports=PORT_NUMBER
Probar el balanceador de carga
Ahora que ha configurado el balanceador de carga, puede probar a enviar tráfico a la dirección IP del balanceador de carga.
Obtén la dirección IP del balanceador de carga.
Para obtener la dirección IPv4, ejecuta el siguiente comando:
gcloud compute addresses describe LB_IP_ADDRESS
Envía el tráfico al balanceador de carga en la dirección IP y el puerto especificados al crear la regla de reenvío del balanceador de carga. Para comprobar si los backends de NEG de Internet responden a las solicitudes, depende del servicio que se ejecute en los endpoints externos.
Siguientes pasos
- Para configurar el registro y la monitorización de tu balanceador de carga, consulta Registro y monitorización de balanceadores de carga de red de proxy.
- Para eliminar los recursos que has creado y que no se te facture por ellos en el futuro, consulta Limpiar la configuración del balanceador de carga.