Configurar un balanceador de carga de aplicación externo global con conectividad híbrida

En esta página se muestra cómo implementar un balanceador de carga de aplicación externo global para balancear la carga del tráfico a los endpoints de red que se encuentran en entornos on-premise o en otras nubes públicas y a los que se puede acceder mediante conectividad híbrida.

Una vez que hayas completado estas tareas, puedes habilitar otros servicios (como Cloud CDN y Google Cloud Armor) y funciones avanzadas de gestión del tráfico.

Si aún no lo has hecho, consulta la descripción general de los NEG de conectividad híbrida para conocer los requisitos de red necesarios para configurar el balanceo de carga híbrido.

Descripción general de la configuración

En el ejemplo de esta página se configura la siguiente implementación de muestra:

Ejemplo de balanceador de carga de aplicación externo para la conectividad híbrida.
Ejemplo de balanceador de carga de aplicación externo para la conectividad híbrida (haz clic en la imagen para ampliarla).

Debes configurar la conectividad híbrida antes de intentar configurar una implementación de equilibrio de carga híbrida. Este documento no incluye la configuración de la conectividad híbrida.

En función del producto de conectividad híbrida que elijas (Cloud VPN o Cloud Interconnect [Dedicated o Partner]), consulta la documentación del producto correspondiente para configurarlo.

Permisos

Para configurar el balanceo de carga híbrido, debes tener los siguientes permisos:

  • Activado Google Cloud

  • En tu entorno local u otro entorno que no sea deGoogle Cloud cloud

    • Permisos para configurar endpoints de red que permitan que los servicios de tu entorno local u otros entornos de nube sean accesibles desdeGoogle Cloud mediante una combinación de IP:Port. Para obtener más información, ponte en contacto con el administrador de red de tu entorno.
    • Permisos para crear reglas de cortafuegos en tu entorno local u otros entornos de nube para permitir que las sondas de comprobación del estado de Google lleguen a los endpoints.

Además, para completar las instrucciones de esta página, debe crear un NEG de conectividad híbrida, un balanceador de carga y NEGs zonales (y sus endpoints) para que actúen como back-ends basados en Google Clouddel balanceador de carga.

Debes tener el rol de propietario o editor del proyecto, o bien los siguientes roles de gestión de identidades y accesos de Compute Engine.

Tarea Rol necesario
Crear redes, subredes y componentes de balanceador de carga Administrador de red de Compute (roles/compute.networkAdmin)
Añadir y eliminar reglas de cortafuegos Administrador de seguridad de Compute (roles/compute.securityAdmin)
Crear instancias Administrador de instancias de Compute (roles/compute.instanceAdmin)

Establecer una conectividad híbrida

Tu entorno Google Cloud y el entorno on-premise u otros entornos de nube deben conectarse mediante conectividad híbrida usando vinculaciones de VLAN de Cloud Interconnect o túneles de Cloud VPN con Cloud Router o VMs de dispositivo router. Te recomendamos que uses una conexión de alta disponibilidad.

Un Cloud Router habilitado con enrutamiento dinámico global obtiene información sobre el endpoint específico mediante el protocolo de pasarela fronteriza (BGP) y lo programa en tu Google Cloud red de VPC. No se admite el enrutamiento dinámico regional. Tampoco se admiten las rutas estáticas.

Puedes usar la misma red de VPC o una diferente en el mismo proyecto para configurar tanto la red híbrida (Cloud Interconnect, Cloud VPN o una VM de dispositivo Router) como el balanceador de carga. Ten en cuenta lo siguiente:

  • Si usas redes de VPC diferentes, las dos redes deben estar conectadas mediante el emparejamiento entre redes de VPC o deben ser radios de VPC en el mismo hub de Network Connectivity Center.

  • Si usas la misma red de VPC, asegúrate de que los intervalos CIDR de las subredes de tu red de VPC no entren en conflicto con los intervalos CIDR remotos. Cuando las direcciones IP se superponen, se priorizan las rutas de subred sobre la conectividad remota.

Para obtener instrucciones, consulta la siguiente documentación:

Configurar un entorno externo Google Cloud

Sigue estos pasos para configurar tu entorno local u otro entorno de nube para el balanceo de carga híbrido:

  • Configura los endpoints de red para exponer los servicios locales aGoogle Cloud (IP:Port).
  • Configura reglas de cortafuegos en tu entorno local u otro entorno de nube.
  • Configura Cloud Router para que anuncie determinadas rutas necesarias a tu entorno privado.

Configurar endpoints de red

Después de configurar la conectividad híbrida, configura uno o varios endpoints de red en tu entorno local u otros entornos de nube a los que se pueda acceder a través de Cloud Interconnect, Cloud VPN o el dispositivo Router mediante una combinación de IP:port. Esta IP:portcombinación se configura como uno o varios endpoints para el NEG de conectividad híbrida que se crea Google Cloud más adelante en este proceso.

Si hay varias rutas al endpoint IP, el enrutamiento sigue el comportamiento descrito en la descripción general de Cloud Router.

Configurar reglas de cortafuegos

Debes crear las siguientes reglas de cortafuegos en tu entorno local u otro entorno de nube:

  • Crea una regla de cortafuegos de entrada para permitir el tráfico de las comprobaciones del estado de Google a tus endpoints. Los intervalos de direcciones IP de origen que se van a permitir son 35.191.0.0/16 y 130.211.0.0/22. Para obtener más información, consulta Intervalos de IPs de sondeo y reglas de cortafuegos.

Configura Cloud Router para anunciar los siguientes intervalos de IP personalizados a tu entorno local u otro entorno de nube:

  • Los intervalos que usan las sondas de comprobación del estado de Google son 35.191.0.0/16 y 130.211.0.0/22.

Configurar el Google Cloud entorno

En los pasos siguientes, asegúrate de usar la misma red de VPC (llamada NETWORK en este procedimiento) que se usó para configurar la conectividad híbrida entre los entornos.

Crea la subred para los backends

Esta subred se usa para crear los back-ends de NEG zonales del balanceador de carga, el frontend y la dirección IP interna.

Crea esta subred en la NETWORK red que se usó para configurar la conectividad híbrida entre los entornos.

Consola

Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Ve a la red que se ha usado para configurar la conectividad híbrida entre los entornos.

    • Haz clic en Editar.
    • En Modo de creación de subred, elige Personalizado.
    • Haz clic en Guardar.
  3. Opcional: Si quieres configurar intervalos de direcciones IPv6 internas en subredes de esta red, sigue estos pasos:

    1. En Intervalo IPv6 interno ULA de la red VPC, selecciona Habilitado.
    2. En Asignar intervalo de IPv6 interno, selecciona Automáticamente o Manualmente.

      Si selecciona Manualmente, introduzca un intervalo /48 dentro del intervalo fd20::/20. Si el intervalo está en uso, se te pedirá que proporciones otro.

  4. En la pestaña Subredes, haz clic en Añadir subred.

  5. En el panel Añadir una subred, configure los siguientes campos:

    1. En el campo Nombre, asigna un nombre a la subred.
    2. En el campo Región, selecciona una región.
    3. En el campo Intervalo de direcciones IP, introduce un intervalo de direcciones IP.
    4. En Tipo de pila de IP, selecciona IPv4 e IPv6 (pila dual).
    5. En el campo Tipo de acceso IPv6, selecciona Externo.
    6. Haz clic en Añadir.

Para admitir el tráfico IPv4, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Ve a la red que se ha usado para configurar la conectividad híbrida entre los entornos.

    • Haz clic en Editar.
    • En Modo de creación de subred, elige Personalizado.
    • Haz clic en Guardar.
  3. En la pestaña Subredes, haz clic en Añadir subred.

  4. En el panel Añadir una subred, introduce la siguiente información:

    • En el campo Nombre, asigna un nombre a la subred.
    • En el campo Región, selecciona una región.
    • En el campo Intervalo de direcciones IP, introduce un intervalo de direcciones IP.
    • En el campo Tipo de pila de IP, selecciona IPv4 (pila única).
    • Haz clic en Añadir.

gcloud

Crea una subred en la red NETWORK que se usó para configurar la conectividad híbrida entre los entornos.

Para el tráfico IPv4 e IPv6, usa el siguiente comando:

gcloud compute networks update NETWORK \
    [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
    --switch-to-custom-subnet-mode
gcloud compute networks subnets create LB_SUBNET_NAME \
    --network=NETWORK \
    --range=LB_SUBNET_RANGE \
    --region=REGION \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=EXTERNAL

Para el tráfico IPv4, usa el siguiente comando:

gcloud compute networks subnets create LB_SUBNET_NAME \
    --network=NETWORK \
    --range=LB_SUBNET_RANGE \
    --region=REGION

Haz los cambios siguientes:

  • NETWORK: nombre de la red de VPC.

  • LB_SUBNET_NAME: nombre de la subred.

  • REGION: el nombre de la región.

  • ULA_IPV6_RANGE: un prefijo /48 del intervalo fd20::/20 que usa Google para los intervalos de subredes IPv6 internos. Si no usas la marca --internal-ipv6-range, Google selecciona un prefijo /48 para la red.

Crear regla de cortafuegos

En este ejemplo, se crea la siguiente regla de cortafuegos:

  • fw-allow-health-check: una regla de entrada, aplicable a las instancias con balanceo de carga, que permite el tráfico del balanceador de carga y los sistemas de comprobación del estado (130.211.0.0/22 y 35.191.0.0/16). En este ejemplo se usa la etiqueta de destino allow-health-check para identificar las VMs de backend a las que se debe aplicar. Google CloudGoogle Cloud

Consola

  1. En la Google Cloud consola, ve a la página Políticas de cortafuegos.

    Ir a Políticas de cortafuegos

  2. Haz clic en Crear regla de cortafuegos:

    1. Asigne un Nombre de fw-allow-health-check.
    2. En la sección Red, selecciona NETWORK.
    3. En Objetivos, seleccione Etiquetas de destino especificadas.
    4. Rellene el campo Etiquetas de destino con allow-health-check.
    5. En Filtro de origen, elija Intervalos de IPv4.
    6. Asigna los valores 130.211.0.0/22 y 35.191.0.0/16 a Intervalos de IPv4 de origen.
    7. En Protocolos y puertos, selecciona Protocolos y puertos especificados.
    8. Seleccione la casilla situada junto a TCP y escriba 80 en los números de puerto.
  3. Haz clic en Crear.

  4. Para permitir el tráfico de subred IPv6, haz clic de nuevo en Crear regla de cortafuegos e introduce la siguiente información:

    1. Nombre: fw-allow-lb-access-ipv6
    2. Red: NETWORK
    3. Prioridad: 1000
    4. Sentido del tráfico: entrada
    5. Objetivos: Etiquetas de destino especificadas
    6. En el campo Etiquetas de segmentación, introduce allow-health-check-ipv6.
    7. Filtro de origen: Intervalos de IPv6
    8. Intervalos de IPv6 de origen: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    9. Protocolos y puertos: Permitir todo
  5. Haz clic en Crear.

gcloud

  1. Crea la regla fw-allow-health-check-and-proxy para permitir que el balanceador de carga y las comprobaciones del estado Google Cloud se comuniquen con las instancias de backend en el puerto TCP 80.

    Sustituye NETWORK por el nombre de la red de VPC que se ha usado para configurar la conectividad híbrida.

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Crea la regla fw-allow-health-check-ipv6 para permitir Google Cloud comprobaciones del estado de IPv6.

    gcloud compute firewall-rules create fw-allow-health-check-ipv6 \
       --network=NETWORK \
       --action=allow \
       --direction=ingress \
       --target-tags=allow-health-check-ipv6 \
       --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
       --rules=tcp,udp,icmp
    

Configurar el NEG de zona

En el caso de los back-ends basados en Google Cloud, le recomendamos que configure varios NEG zonales en la misma región en la que haya configurado la conectividad híbrida.

Los NEGs zonales con uno o varios endpoints de tipo GCE_VM_IP_PORT admiten el doble pila.

En este ejemplo, hemos configurado un NEG zonal (con puntos finales de tipo GCE_VM_IP_PORT) en la región REGION. Primero, crea las VMs en la zona GCP_NEG_ZONE. A continuación, crea un NEG por zonas en el mismo GCP_NEG_ZONE y añade los endpoints de red de las VMs al NEG.

Crear VMs

Consola

  1. Ve a la página Instancias de VM de la Google Cloud consola.
    Ir a instancias de VM

  2. Haz clic en Crear instancia.

  3. Asigna el valor vm-a1 a Nombre.

  4. En Región, elija REGION.

  5. En Zona, elija GCP_NEG_ZONE.

  6. En la sección Disco de arranque, asegúrate de que la opción Debian GNU/Linux 12 (bookworm) esté seleccionada para el disco de arranque. Haz clic en Elegir para cambiar la imagen si es necesario.

  7. Haz clic en Opciones avanzadas y haz los siguientes cambios:

    • Haz clic en Redes y añade las siguientes etiquetas de red: allow-health-check.
    • Haz clic en Editar en Interfaces de red y haz los siguientes cambios. A continuación, haz clic en Hecho:
      • Red: NETWORK
      • Subred: LB_SUBNET_NAME
      • Tipo de pila de IP: IPv4 e IPv6 (pila dual)
    • Haz clic en Gestión. En el campo Startup script (Secuencia de comandos de inicio), copia y pega el siguiente contenido de la secuencia de comandos. El contenido de la secuencia de comandos es idéntico en las cuatro VMs:

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  8. Haz clic en Crear.

  9. Repite los pasos siguientes para crear una segunda máquina virtual con la siguiente combinación de nombre y zona:

    • Nombre: vm-a2, zona: GCP_NEG_ZONE

gcloud

Crea las VMs ejecutando el siguiente comando dos veces y usando estas combinaciones para el nombre de la VM y su zona. El contenido de la secuencia de comandos es idéntico en ambas máquinas virtuales.

  • VM_NAME de vm-a1 y cualquier zona GCP_NEG_ZONE que elijas
  • VM_NAME de vm-a2 y la misma zona GCP_NEG_ZONE

    Para admitir el tráfico IPv4 e IPv6, ejecuta el siguiente comando:

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check,allow-health-check-ipv6 \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --subnet=LB_SUBNET_NAME \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

Crear el NEG de zona

Consola

Para crear un grupo de endpoints de red de zona, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. Introduce un nombre para el NEG zonal. En este procedimiento, se denomina GCP_NEG_NAME.
  4. Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red (por zonas).
  5. Selecciona Red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME
  7. Selecciona la Zona: GCP_NEG_ZONE
  8. Introduce el puerto predeterminado: 80.
  9. Haz clic en Crear.

Añade los endpoints al NEG de zona:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a Grupos de endpoints de red
  2. Haga clic en el Nombre del grupo de puntos finales de red creado en el paso anterior (GCP_NEG_NAME). Verá la página Detalles del grupo de puntos finales de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.
  4. Selecciona una instancia de VM para añadir sus direcciones IP internas como endpoints de red. En la sección Interfaz de red, se muestra el nombre, la zona y la subred de la máquina virtual.
  5. En el campo Dirección IPv4, introduce la dirección IPv4 del nuevo endpoint de red.
  6. En el campo Dirección IPv6, introduce la dirección IPv6 del nuevo endpoint de red.
  7. Seleccione el Tipo de puerto.
    1. Si selecciona Predeterminado, el endpoint usará el puerto predeterminado 80 para todos los endpoints del grupo de endpoints de red. Esto es suficiente para nuestro ejemplo, ya que el servidor Apache sirve solicitudes en el puerto 80.
    2. Si seleccionas Personalizado, introduce el Número de puerto del endpoint que quieras usar.
  8. Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
  9. Una vez que hayas añadido todos los endpoints, haz clic en Crear.

gcloud

  1. Crea un NEG zonal (con GCE_VM_IP_PORT endpoints) con el comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    Puede especificar un --default-port al crear el NEG o especificar un número de puerto para cada endpoint, como se muestra en el paso siguiente.

  2. Añade endpoints de pila dual a GCP_NEG_NAME.

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
       --zone=GCP_NEG_ZONE \
       --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
                       ipv6=IPv6_ADDRESS,port=80' \
       --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
                       ipv6=IPv6_ADDRESS,port=80'
    

Configurar el NEG de conectividad híbrida

Al crear el NEG, usa una ZONEque minimice la distancia geográfica entre Google Cloud y tu entorno on-premise u otro entorno de nube. Por ejemplo, si alojas un servicio en un entorno local en Fráncfort (Alemania), puedes especificar la zona europe-west3-a Google Cloud al crear el NEG.

Además, si usas Cloud Interconnect, el ZONE que se utilice para crear el NEG debe estar en la misma región en la que se haya configurado la vinculación de VLAN de Cloud Interconnect de la conectividad híbrida.

Para ver las regiones y zonas disponibles, consulta la documentación de Compute Engine: regiones y zonas disponibles.

Consola

Para crear un grupo de endpoints de red de conectividad híbrida, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. Introduce un nombre para el NEG híbrido. En este procedimiento, se denomina ON_PREM_NEG_NAME.
  4. Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red de conectividad híbrida (por zonas).
  5. Selecciona la red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME.
  7. Selecciona la Zona: ON_PREM_NEG_ZONE
  8. Introduce el puerto predeterminado.
  9. Primero, haz clic en Crear.

Añade endpoints al NEG de conectividad híbrida:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el Nombre del grupo de endpoints de red creado en el paso anterior (ON_PREM_NEG_NAME). Verá la página Detalles del grupo de endpoints de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.
  4. Introduce la dirección IP del nuevo endpoint de red.
  5. Seleccione el Tipo de puerto.
    1. Si seleccionas Predeterminado, el endpoint usará el puerto predeterminado para todos los endpoints del grupo de endpoints de red.
    2. Si selecciona Personalizado, puede introducir otro Número de puerto para que lo use el endpoint.
  6. Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
  7. Una vez que hayas añadido todos los endpoints que no seanGoogle Cloud , haz clic en Crear.

gcloud

  1. Crea un NEG de conectividad híbrida con el comando gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. Añade el endpoint a on-prem-neg:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

Puedes usar este comando para añadir los endpoints de red que hayas configurado anteriormente de forma local o en tu entorno de nube. Repite --add-endpoint tantas veces como sea necesario.

Puedes repetir estos pasos para crear varios NEGs híbridos si es necesario.

Configurar el balanceador de carga

Consola

gcloud

  1. Crea una dirección IP externa estática global a la que los clientes externos envíen tráfico.
      gcloud compute addresses create LB_IP_ADDRESS_NAME \
          --network-tier=PREMIUM \
          --global
      
  2. Crea una comprobación del estado para los backends.
      gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
          --use-serving-port
      
  3. Crea un servicio de backend. Añade tanto el NEG zonal como el NEG de conectividad híbrida como backends a este servicio de backend.
  4.   gcloud beta compute backend-services create BACKEND_SERVICE \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --ip-address-selection-policy=PREFER_IPV6 \
          --global
      
  5. Añade el NEG zonal como backend al servicio de backend:
      gcloud beta compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --balancing-mode=RATE \
          --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
          --network-endpoint-group=GCP_NEG_NAME \
          --network-endpoint-group-zone=GCP_NEG_ZONE
       
    Para obtener información sobre cómo configurar el modo de balanceo, consulta la documentación de la CLI de gcloud sobre el parámetro --max-rate-per-endpoint.
  6. Añade la NEG híbrida como backend al servicio de backend:
      gcloud compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --balancing-mode=RATE \
          --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
          --network-endpoint-group=ON_PREM_NEG_NAME \
          --network-endpoint-group-zone=ON_PREM_NEG_ZONE
      
  7. Crea un mapa de URLs para enrutar las solicitudes entrantes al servicio de backend.
      gcloud beta compute url-maps create URL_MAP_NAME \
          --default-service BACKEND_SERVICE
      
  8. Realiza este paso solo si quieres crear un balanceador de carga HTTPS. No es necesario para los balanceadores de carga HTTP.
    Para crear un balanceador de carga HTTPS, debes tener un recurso de certificado SSL que usar en el proxy HTTPS de destino. Puedes crear un recurso de certificado SSL con un certificado SSL gestionado por Google o con un certificado SSL autogestionado. Te recomendamos que uses certificados gestionados por Google, ya que Google Cloud obtiene, gestiona y renueva estos certificados automáticamente.

    Para crear un certificado gestionado por Google, debes tener un dominio. Si no tienes un dominio, puedes usar un certificado SSL autofirmado para hacer pruebas.

    Para crear un recurso de certificado SSL gestionado por Google, sigue estos pasos:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --domains DOMAIN
    
    Para crear un recurso de certificado SSL autogestionado, sigue estos pasos:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
    
  9. Crea un proxy HTTP(S) de destino para enrutar las solicitudes a tu mapa de URLs.

    En el caso de un balanceador de carga HTTP, crea un proxy HTTP de destino:
    gcloud beta compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --url-map=URL_MAP_NAME
    
    En el caso de un balanceador de carga HTTPS, crea un proxy HTTPS de destino. El proxy es la parte del balanceador de carga que contiene el certificado SSL para el balanceo de carga HTTPS, por lo que también debes cargar tu certificado en este paso.
    gcloud beta compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME
    

    Haz los cambios siguientes:

    • TARGET_HTTP_PROXY_NAME: nombre del proxy HTTP de destino.
    • TARGET_HTTPS_PROXY_NAME: nombre del proxy HTTPS de destino.
    • HTTP_KEEP_ALIVE_TIMEOUT_SEC: campo opcional que se usa para especificar el tiempo de espera de keep-alive HTTP del cliente. El valor del tiempo de espera debe estar entre 5 y 1200 segundos. El valor predeterminado es de 610 segundos.
    • SSL_CERTIFICATE_NAME: el nombre del certificado SSL.
    • URL_MAP_NAME: nombre del mapa de URLs.
  10. Crea una regla de reenvío para dirigir las solicitudes entrantes al proxy.

    En el caso de un balanceador de carga HTTP:
    gcloud beta compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-http-proxy=TARGET_HTTP_PROXY_NAME \
        --global \
        --ports=80
    
    En el caso de un balanceador de carga HTTPS:
    gcloud beta compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
        --global \
        --ports=443
    

Conectar tu dominio a tu balanceador de carga

Una vez creado el balanceador de carga, anota la dirección IP asociada a él. Por ejemplo, 30.90.80.100. Para dirigir tu dominio a tu balanceador de carga, crea un registro A con tu servicio de registro de dominios. Si has añadido varios dominios a tu certificado SSL, debes añadir un registro A para cada uno de ellos, todos apuntando a la dirección IP del balanceador de carga. Por ejemplo, para crear registros A de www.example.com y example.com, usa lo siguiente:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Si usas Cloud DNS como proveedor de DNS, consulta el artículo sobre cómo añadir, modificar y eliminar registros.

Probar el balanceador de carga

Ahora que has configurado el balanceador de carga, puedes empezar a enviar tráfico a la dirección IP del balanceador de carga.

  1. Ve a la página Balanceo de carga de la Google Cloud consola.
    Ir a la página Balanceo de carga

  2. Haz clic en el balanceador de carga que acabas de crear.

  3. Anota la dirección IP del balanceador de carga.

  4. Envía tráfico al balanceador de carga.

    • Si has creado un balanceador de carga HTTP, puedes probarlo con un navegador web. Para ello, ve a http://IP_ADDRESS. Sustituye IP_ADDRESS por la dirección IP del balanceador de carga. Deberías acceder al servicio que has expuesto a través del endpoint.

    • Si has creado un balanceador de carga HTTPS, puedes probarlo con curl de la siguiente manera. Sustituye IP_ADDRESS por la dirección IP del balanceador de carga. Se te dirigirá al servicio que hayas expuesto a través del endpoint.

      curl -k https://IP_ADDRESS
      

      Si no funciona y estás usando un certificado gestionado por Google, confirma que el estado del recurso de tu certificado es ACTIVE. Para obtener más información, consulta el estado del recurso de certificado SSL gestionado por Google. A continuación, prueba el dominio que apunta a la dirección IP del balanceador de carga. Por ejemplo:

      curl -s https://DOMAIN_NAME
      

      Sustituye DOMAIN_NAME por el nombre de dominio de tu aplicación. Por ejemplo, test.example.com.

  5. La prueba de los endpoints que no son deGoogle Cloud depende del servicio que hayas expuesto a través del endpoint del NEG híbrido.

Configuración adicional

En esta sección se amplía el ejemplo de configuración para ofrecer opciones de configuración alternativas y adicionales. Todas las tareas son opcionales. Puedes llevarlas a cabo en el orden que quieras.

Actualizar el tiempo de espera de keep-alive HTTP del cliente

El balanceador de carga creado en los pasos anteriores se ha configurado con un valor predeterminado para el tiempo de espera de keep-alive HTTP del cliente.

Para actualizar el tiempo de espera de keep-alive HTTP del cliente, sigue estas instrucciones.

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ve a Balanceo de carga.

  2. Haga clic en el nombre del balanceador de carga que quiera modificar.
  3. Haz clic en Editar.
  4. Haz clic en Configuración de frontend.
  5. Despliega Funciones avanzadas. En Tiempo de espera de HTTP Keep-Alive, introduce un valor de tiempo de espera.
  6. Haz clic en Actualizar.
  7. Para revisar los cambios, haz clic en Revisar y finalizar y, a continuación, en Actualizar.

gcloud

En el caso de un balanceador de carga HTTP, actualiza el proxy HTTP de destino con el comando gcloud compute target-http-proxies update:

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --global
    

En el caso de un balanceador de carga HTTPS, actualiza el proxy HTTPS de destino con el comando gcloud compute target-https-proxies update:

      gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --global
    

Haz los cambios siguientes:

  • TARGET_HTTP_PROXY_NAME: nombre del proxy HTTP de destino.
  • TARGET_HTTPS_PROXY_NAME: nombre del proxy HTTPS de destino.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: el valor del tiempo de espera de HTTP Keep-Alive de 5 a 600 segundos.

Siguientes pasos