Accede a las APIs regionales de Google a través de backends
En esta guía, se describe cómo configurar un balanceador de cargas de aplicaciones interno con un backend de Private Service Connect para acceder a una API de Google de regional.
Para obtener más información sobre los backends, consulta Acerca de los backends.
Se puede acceder a un balanceador de cargas de aplicaciones interno que se usa para Private Service Connect desde las redes de VPC compartidas y desde las redes conectadas.
Funciones
El rol de administrador de balanceadores de cargas de Compute (roles/compute.loadBalancerAdmin
) contiene el permiso necesario para realizar las tareas descritas en esta guía.
Servicios compatibles
Consulta la lista de extremos de servicio regional admitidos.
Antes de comenzar
Habilita la API de Compute Engine en tu proyecto.
Si deseas registrar la regla de reenvío del balanceo de cargas con el Directorio de servicios, habilita la API de Service Directory en tu proyecto. Para configurar el Directorio de servicio, debes crear la regla de reenvío con la CLI de Google Cloud o la API.
Crea una subred de solo proxy si aún no tienes una. Debe haber una única subred de solo proxy en la región y la red de VPC en las que deseas crear el balanceador de cargas de aplicaciones interno. Todos los balanceadores de cargas de aplicaciones internos dentro de esa red y región usan esta subred.
Si aún no los tienes, crea una clave privada y un certificado autoadministrado para tu dominio. Consulta el paso 1 sobre el uso de certificados SSL autoadministrados. Necesitas una clave privada y un certificado para crear el proxy HTTPS de destino cuando configuras el balanceador de cargas.
Crea un grupo de extremos de red
Para cada servicio que desees que esté disponible mediante el balanceador de cargas, crea un grupo de extremos de red (NEG) de Private Service Connect.
Console
En la consola de Google Cloud, ve a la página Grupos de extremos de red.
Haz clic en Crear un grupo de extremos de red.
Ingresa un nombre para el grupo de extremos de red.
En Tipo de grupo de extremos de red, selecciona Grupo de extremos de red (Private Service Connect).
Selecciona una región para el grupo de extremos de red.
Selecciona el Servicio de destino para el grupo de extremos de red.
Haz clic en Crear.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION
Reemplaza lo siguiente:
NEG_NAME
: un nombre para el grupo de extremos de red.TARGET_SERVICE
: el servicio de destino al que deseas conectarte Consulta la lista de extremos de servicio regional admitidos.REGION
: la región en la que se creará el grupo de extremos de red. La región debe ser la misma que la del servicio al que deseas conectarte.
Configura el balanceador de cargas
Todos los componentes del balanceador de cargas deben crearse en la misma región que el grupo de extremos de red de Private Service Connect.
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 aplicaciones (HTTP/HTTPS) 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 para el balanceador de cargas.
- Selecciona una región para el balanceador de cargas.
Selecciona una red para el balanceador de cargas.
La red debe contener una subred de solo proxy en la región en la que crearás el NEG y el balanceador de cargas. Si no tienes una, puedes hacer clic en Reservar subred para crearla.
Mantén la ventana abierta para continuar.
Configuración de backend
El grupo de extremos de red de Private Service Connect es un tipo de backend del balanceador de cargas. Debes crear un servicio de backend para cada backend que desees configurar.
- Haga clic en Configuración de backend.
Crea un servicio de backend para cada grupo de extremos de red de Private Service Connect que desees configurar.
- En el menú Crear o seleccionar servicios de backend, selecciona Crear un servicio de backend.
- Ingresa un Nombre para el servicio de backend.
- Configura el Tipo de backend como Grupo de extremos de red de Private Service Connect.
- Configura el Tipo de destino de Private Service Connect como API de Google regional.
Selecciona HTTPS para el protocolo.
En la sección Backends, haz clic en el menú Nuevo backend y selecciona el grupo de extremos de red de Private Service Connect.
Si necesitas crear un nuevo grupo de extremos de red de Private Service Connect, haz clic en Crear un grupo de extremos de red de Private Service Connect.
Reglas de enrutamiento
El conjunto de reglas para enrutar las solicitudes HTTPS entrantes a servicios de backend o buckets de backend específicos se denomina mapa de URL. Para obtener más información sobre los mapas de URL, consulta la Descripción general de los mapas de URL.
Si configuras solo un servicio de backend para el balanceador de cargas, la regla de enrutamiento predeterminada es suficiente y puedes pasar a la Configuración de frontend.
- Si tienes más de un servicio de backend, haz clic en Reglas de enrutamiento.
- Selecciona Regla sencilla de host y ruta de acceso.
- Para cada backend, haz lo siguiente:
- Agrega la regla de host y ruta de acceso.
- En Host, ingresa el nombre de host que se usará para enviar solicitudes a este servicio, por ejemplo,
pubsub.example.com
. - En Rutas de acceso, ingresa la ruta de acceso, por ejemplo,
/*
. - En Backends, selecciona el servicio de backend.
Configuración de frontend
- Haga clic en Configuración de frontend.
- Haz clic en Agregar IP y puerto de frontend.
- Ingresa un Nombre para el balanceador de cargas.
- En el campo Protocolo, selecciona HTTPS (incluye HTTP/2).
- Selecciona una Subred para el balanceador de cargas.
- Asegúrate de que el Puerto esté establecido en
443
para permitir el tráfico HTTPS. En Dirección IP, selecciona una dirección IP del menú.
Si quieres reservar una dirección IP nueva, haz clic en Crear dirección IP.
Haz clic en la lista desplegable Certificado.
- Si ya tienes un recurso de certificado SSL autoadministrado que deseas usar, selecciónalo en el menú.
- De lo contrario, selecciona Crear un nuevo certificado.
- Ingresa un Nombre para el recurso de certificado.
- En los campos correspondientes, sube los archivos con formato PEM:
- Certificado
- Clave privada
- Haz clic en Crear.
Haz clic en Listo.
Revisa y finaliza
- Haz clic en Revisar y finalizar para revisar la configuración.
- Haz clic en Crear.
gcloud
Para cada grupo de extremos de red que creaste, crea un servicio de backend.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=REGION
Reemplaza lo siguiente:
BACKEND_SERVICE_NAME
: el nombre del servicio de backend.REGION
: es la región en la que se creará el servicio de backend.
Para cada servicio de backend que hayas creado, agrega el NEG correspondiente al servicio de backend.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=REGION
Reemplaza lo siguiente:
BACKEND_SERVICE_NAME
: el nombre del servicio de backend.NEG_NAME
: es el nombre del grupo de extremos de red.REGION
: es la región del backend.
Crea un mapa de URL para el balanceador de cargas.
Un mapa de URL debe hacer referencia a un servicio de backend predeterminado. Si configuras tu balanceador de cargas con un servicio de backend, establece ese servicio de backend como el predeterminado. Si configuras el balanceador de cargas para usar varios servicios de backend, a los que se hace referencia mediante reglas de host y comparadores de rutas de acceso que crearás en el siguiente paso, elige uno de los servicios de backend como predeterminado para el mapa de URL.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=REGION
Reemplaza lo siguiente:
URL_MAP_NAME
: un nombre para el mapa de URLDEFAULT_BACKEND_SERVICE_NAME
: el nombre del balanceador de cargas predeterminado. El valor predeterminado se usa cuando ninguna regla de host coincide con el nombre de host solicitado.REGION
: es la región en la que se creará el mapa de URL.
Agrega servicios de backend adicionales al mapa de URL.
Si tu mapa de URL necesita hacer referencia a dos o más servicios de backend, completa los siguientes pasos. Si el mapa de URL solo hace referencia a un servicio de backend, omite este paso.
Para cada servicio de backend, agrega un comparador de rutas de acceso. Debes crear un comparador de rutas de acceso para cada servicio de backend.
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
Reemplaza lo siguiente:
URL_MAP_NAME
: el nombre del mapa de URL.PATH_MATCHER
: un nombre para el comparador de rutas de acceso.BACKEND_SERVICE_NAME
: el nombre del servicio de backend.REGION
: la región del mapa de URL.
Para cada nombre de host, agrega una regla de host.
Cada regla de host puede hacer referencia solo a un comparador de rutas de acceso, pero dos o más reglas de host pueden hacer referencia al mismo comparador de rutas de acceso.
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=HOST \ --path-matcher-name=PATH_MATCHER \ --region=REGION
Reemplaza lo siguiente:
URL_MAP_NAME
: el nombre del mapa de URL.HOST
: el nombre de host al que se enviarán solicitudes para este servicio. Por ejemplo,pubsub.example.com
.PATH_MATCHER
: el nombre del comparador de rutas de acceso.REGION
: la región del mapa de URL.
Crea el proxy HTTPS de destino.
Crea un recurso de certificado SSL regional mediante el comando
gcloud compute ssl-certificates create
. Los certificados administrados por Google no son compatibles con los balanceadores de cargas de aplicaciones internos.gcloud compute ssl-certificates create CERTIFICATE \ --certificate=LB_CERT \ --private-key=LB_PRIVATE_KEY \ --region=REGION
Reemplaza lo siguiente:
CERTIFICATE
: un nombre para el certificadoLB_CERT
: la ruta al archivo del certificado con formato PEM para tu certificado autoadministrado.LB_PRIVATE_KEY
: la ruta al archivo de claves privadas con formato PEM para tu certificado autoadministrado.REGION
: la región del certificado.
Usa el recurso de certificado SSL regional para crear un proxy HTTPS de destino con el comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION \ --ssl-certificates=CERTIFICATE
Reemplaza lo siguiente:
PROXY_NAME
: un nombre para el proxy HTTPS de destino.URL_MAP_NAME
: el nombre del mapa de URL.REGION
: la región para el recurso del certificado.CERTIFICATE
: el nombre del recurso de certificado.
Reserva una dirección IPv4 interna regional para la regla de reenvío.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 \ --region=REGION \ --subnet=SUBNETWORK
Reemplaza lo siguiente:
ADDRESS_NAME
: un nombre para el recurso de dirección IPREGION
: la región en la que se creará la dirección IPSUBNET
: la subred en la que se creará la dirección IP
Ejecuta este comando para ver la dirección IP reservada. Después de crear el balanceador de cargas, puedes usar la dirección IP para verificar la configuración.
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=REGION
Crea la regla de reenvío.
Crea la regla de reenvío con el comando
gcloud compute forwarding-rules create
.gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --address=ADDRESS_NAME \ --ports=443 \ --region=REGION \ --target-https-proxy=PROXY_NAME \ --target-https-proxy-region=PROXY_REGION \ [--service-directory-registration=SD_SERVICE_NAME]
Reemplaza lo siguiente:
FWD_RULE
: un nombre para la regla de reenvío.NETWORK
: la red en la que se creará la regla de reenvío.ADDRESS_NAME
: la dirección IP reservadaREGION
: la región para la regla de reenvío.PROXY_NAME
: el nombre del proxy HTTPS de destino.PROXY_REGION
: la región del proxy HTTPS de destino.SD_SERVICE_NAME
: el URI del servicio del Directorio de servicios con el que deseas registrar el balanceador de cargas, en este formato:projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME
. Especificar--service-directory-registration
es opcional.
Verifica la configuración
Crea la instancia de VM.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-12 \ --zone=ZONE
Reemplaza lo siguiente:
VM_NAME
: un nombre para la máquina virtual.NETWORK
: la red de la VM.ZONE
: La zona para la VM.
Conéctate a la VM.
gcloud compute ssh VM_NAME --zone=ZONE
Usa
curl
para verificar la configuración. Con este comando, se establece el encabezadoHost
y se omite la resolución de DNS mediante la especificación de una dirección IP definida por el usuario. Puedes omitir el puerto si usas el puerto predeterminado para el protocolo, por ejemplo, si usas el puerto 443 en HTTPS.Si es necesario, puedes omitir la validación del certificado con la marca
-k
. Es posible que debas omitir la validación si usaste un certificado autofirmado para configurar el proxy HTTPS de destino o si la VM no tiene el certificado de la autoridad certificadora que firmó el certificado.curl -iv --resolve HOSTNAME:443:IP_ADDRESS \ 'https://HOSTNAME/RESOURCE_URI'
Reemplaza lo siguiente:
HOSTNAME
: el nombre de host que configuraste en el mapa de URL, por ejemplo,pubsub.example.com
.IP_ADDRESS
: la dirección IP de la regla de reenvío del balanceador de cargas.RESOURCE_URI
: el resto del URI del recurso que deseas usar para la verificación. Por ejemplo, si el balanceador de cargas reenvía las solicitudes a un extremo regional para Pub/Sub, puedes usarrest?version=v1
.
Configura registros DNS
Configura los registros DNS para cada host que agregaste al mapa de URL y apunta a la dirección IP de la regla de reenvío. Si usas Cloud DNS para administrar DNS, consulta Agrega, modifica y borra registros. De lo contrario, configura los registros DNS en tu servidor DNS.
Por ejemplo, supongamos que creaste las siguientes configuraciones:
Un NEG de Private Service Connect que usa el servicio de destino
pubsub.europe-west3.rep.googleapis.com
.Un balanceador de cargas de aplicaciones interno que usa ese NEG de Private Service Connect como un backend.
Un mapa de URL que define una regla de host para
pubsub.example.com
.
Para que esta configuración funcione de forma correcta, debes crear un registro DNS que apunte pubsub.example.com
a la dirección IP de la regla de reenvío.
Con esta configuración, las solicitudes enviadas a pubsub.example.com
se envían al balanceador de cargas, que reenvía la solicitud a pubsub.europe-west3.rep.googleapis.com
.
Configura los clientes para que envíen solicitudes al backend
Para enviar solicitudes a través del backend en lugar de los extremos de servicio público, debes configurar los clientes para que envíen solicitudes al nombre de host que definiste en el mapa de URL del balanceador de cargas, por ejemplo, pubsub.example.com
. Consulta la documentación de tu cliente o biblioteca cliente para obtener información sobre cómo configurarla con el fin de usar extremos personalizados. En las siguientes páginas, se incluyen los pasos de configuración para algunos clientes comunes:
Python: puedes configurar
api_endpoint
en Opciones del cliente.Go: puedes configurar
WithEndpoint
en ClientOptions..NET: puedes configurar
Endpoint
en la clase de compilador del cliente.gcloud: Puedes configurar
api_endpoint_overrides
en la gcloud CLI.
Accede al backend desde hosts locales
Si tu red local está conectada a una red de VPC, puedes enviar tráfico al backend de Private Service Connect.
Tu red local debe estar conectada a la red de VPC que contiene tu balanceador de cargas de aplicaciones interno con túneles de Cloud VPN o adjuntos de VLAN en la misma región que el balanceador de cargas de aplicaciones interno.
La red local debe tener rutas adecuadas para tu balanceador de cargas de aplicaciones interno. Asegúrate de que cada Cloud Router que administra la sesión de BGP para el túnel de Cloud VPN o el adjunto de VLAN se haya configurado para anunciar el rango de direcciones IP principal de la subred que usa la regla de reenvío del balanceador de cargas de aplicaciones interno. Los Cloud Routers anuncian rutas de subred de forma predeterminada.
Debes configurar los sistemas locales para que los nombres de host en el mapa de URL de tu balanceador de cargas de aplicaciones interno se resuelvan en la dirección IP de la regla de reenvío del balanceador de cargas de aplicaciones interno. Puedes crear los registros DNS en los servidores de nombres locales o usar Cloud DNS.
Si creaste los registros DNS con las zonas privadas administradas de Cloud DNS, completa los siguientes pasos:
Crea una política del servidor de entrada en la red de VPC a la que se conecta tu red local.
Identifica los puntos de entrada de reenvío entrantes, en las regiones en las que se encuentran los túneles de Cloud VPN y los adjuntos de VLAN, en la red de VPC a la que tu red local se conecta.
Configura los servidores de nombres DNS locales para reenviar las solicitudes DNS para los nombres de host en el mapa de URL a un punto de entrada de reenvío entrante de Cloud DNS.