Si este ejemplo no coincide con tu caso de uso, consulta una de las siguientes páginas:
- Para Cloud Run, consulta Configura un balanceador de cargas con Cloud Run.
- Si quieres ver un ejemplo multirregional que incluya la configuración de certificados IPv6 y SSL, consulta Cómo configurar un balanceador de cargas HTTPS externo multirregional.
- Para un balanceador de cargas de aplicaciones externo regional, consulta Configura un balanceador de cargas de aplicaciones externo regional.
- Si usas GKE, el controlador de Ingress de Kubernetes suele configurar el balanceador de cargas. A fin de obtener más información, consulta Configura Ingress para el balanceo de cargas externo.
Para conocer los conceptos generales, consulta la descripción general del balanceador de cargas de aplicaciones externo.
Si eres un usuario existente del balanceador de cargas de aplicaciones clásico, asegúrate de revisar Planifica la migración al balanceador de cargas de aplicaciones externo global cuando planifiques una implementación nueva con el balanceador de cargas de aplicaciones externo global.
Para seguir la guía paso a paso en esta tarea directamente en la consola de Google Cloud, haz clic en Guía:
Topologías de balanceador de cargas
Para un balanceador de cargas HTTPS, crea la configuración que se muestra en el siguiente diagrama.
Para un balanceador de cargas HTTP, crea la configuración que se muestra en el siguiente diagrama.
La secuencia de eventos de los diagramas es la siguiente:
- Un cliente envía una solicitud de contenido a la dirección IPv4 externa que se define en la regla de reenvío.
Para un balanceador de cargas HTTPS, la regla de reenvío dirige la solicitud al proxy HTTPS de destino.
Para un balanceador de cargas HTTP, la regla de reenvío dirige la solicitud al proxy HTTP de destino.
El proxy de destino usa la regla en el mapa de URL para determinar si un único servicio de backend recibe todas las solicitudes.
El balanceador de cargas determina que el servicio de backend tiene solo un grupo de instancias y dirige la solicitud a una instancia de máquina virtual (VM) en ese grupo.
La VM entrega el contenido que solicitó el usuario.
Antes de comenzar
Completa los siguientes pasos antes de crear el balanceador de cargas.
Configura un recurso de certificado SSL
Para un balanceador de cargas HTTPS, crea un recurso de certificado SSL como se describe a continuación:
Recomendamos que uses un certificado administrado por Google.
En este ejemplo, se supone que ya tienes un SSL certificate resource llamado www-ssl-cert
.
Configura los permisos
A fin de completar los pasos de esta guía, debes tener permiso para crear instancias de Compute Engine, reglas de firewall y direcciones IP reservadas en un proyecto. Debes tener la función de propietario o editor del proyecto, o las siguientes funciones de IAM de Compute Engine:
Tarea | Rol requerido |
---|---|
Crear instancias | Administrador de instancias |
Agregar y quitar reglas de firewall | Administrador de seguridad |
Crear componentes del balanceador de cargas | Administrador de redes |
Crear un proyecto (opcional) | Creador de proyectos |
Si deseas obtener más información, consulta las siguientes guías:
Configura la red y las subredes
Para crear la red y la subred de ejemplo, sigue estos pasos:
Console
Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
Ingresa un Nombre para la red.
Opcional: Si deseas configurar rangos de direcciones IPv6 internos en subredes de esta red, completa estos pasos:
- En Rango de IPv6 interno de ULA de la red de VPC, selecciona Habilitado.
En Asignar rango de IPv6 interno, selecciona Automáticamente o Manualmente.
Si seleccionas Manualmente, ingresa un rango
/48
que pertenezca al rangofd20::/20
. Si el rango está en uso, se te solicitará que proporciones un rango diferente.
En Modo de creación de subredes, selecciona Personalizado.
En la sección Subred nueva, configura los siguientes campos:
- En el campo Nombre, proporciona un nombre para la subred.
- En el campo Región, selecciona una región.
- En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
En el campo Rango de direcciones IP, ingresa un rango de direcciones IP. Este es el rango IPv4 principal de la subred.
Aunque puedes configurar un rango de direcciones IPv4 para la subred, no puedes elegir el rango de direcciones IPv6 para lo siguiente: la subred. Google proporciona un bloque CIDR IPv6 de tamaño fijo (
/64
).En Tipo de acceso IPv6, selecciona Externo.
Haz clic en Listo.
Haz clic en Crear.
Para que solo sea compatible con el tráfico IPv4, sigue estos pasos:
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En el campo Nombre, ingresa un nombre para la red.
En Modo de creación de subredes, selecciona Personalizado.
En la sección Subred nueva, configura lo siguiente:
- En el campo Nombre, proporciona un nombre para la subred.
- En el campo Región, selecciona una región.
- En Tipo de pila de IP, elige IPv4 (pila única).
- En el campo Rango de direcciones IP, ingresa el rango IPv4 principal para la subred.
Haz clic en Listo.
Haz clic en Crear.
gcloud
Crea la red de VPC en modo personalizado:
gcloud compute networks update NETWORK \ [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \ --subnet-mode=custom
Dentro de la red, crea una subred para backends.
En el tráfico IPv4 e IPv6, usa el siguiente comando para actualizar una subred:
gcloud compute networks subnets update SUBNET \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=NETWORK \ --region=REGION_A
Para el tráfico IPv4, usa el siguiente comando:
gcloud compute networks subnets update SUBNET \ --network=NETWORK \ --stack-type=IPV4_ONLY \ --range=10.1.2.0/24 \ --region=REGION_A
Reemplaza lo siguiente:
NETWORK
: es un nombre para la red de VPCULA_IPV6_RANGE
: es un prefijo/48
desde el rangofd20::/20
que usa Google para los rangos de subred IPv6 internos. Si no usas la marca--internal-ipv6-range
, Google selecciona un prefijo/48
para la redSUBNET
: un nombre de la subred
REGION_A
: es el nombre de la región.
Crea un grupo de instancias administrado
Para configurar un balanceador de cargas con un backend de Compute Engine, tus VM deben estar en un grupo de instancias. En esta guía, se describe cómo crear un grupo de instancias administrado con las VM de Linux en las que se ejecuta Apache y, luego, configurar el balanceo de cargas. Un grupo de instancias administrado crea cada una de sus instancias administradas según las plantillas de instancias que especifiques.
El grupo de instancias administrado proporciona VM que ejecutan los servidores de backend de un balanceador de cargas de HTTP(S) externo. A modo de demostración, los backends entregan sus propios nombres de host.
Antes de crear un grupo de instancias administrado, crea una plantilla de instancias.
Console
Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:
En la consola de Google Cloud, ve a la página Plantillas de instancia.
Haz clic en Crear plantilla de instancias.
En Nombre, ingresa
lb-backend-template
.En la lista Región, selecciona una región.
Asegúrate de que el disco de arranque esté configurado como una imagen de Debian, como Debian GNU/Linux 10 (buster). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como
apt-get
.Expande las Opciones avanzadas.
Expande Herramientas de redes y configura los siguientes campos:
- En Etiquetas de red, ingresa
allow-health-check
,allow-health-check-ipv6
. - En la sección Interfaces de red, haz clic en
- Red:
NETWORK
- Subred:
SUBNET
- Tipo de pila IP: IPv4 e IPv6 (pila doble)
Editar. Configura los siguientes campos: - Red:
- Haga clic en Listo.
- En Etiquetas de red, ingresa
Expande Administración. En el campo Secuencia de comandos de inicio, ingresa la siguiente secuencia de comandos:
#! /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
Haz clic en Crear.
gcloud
Para admitir el tráfico IPv4 y el IPv6, ejecuta el siguiente comando:
gcloud compute instance-templates create TEMPLATE_NAME \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET \ --stack-type=IPv4_IPv6 \ --tags=allow-health-check,allow-health-check-ipv6 \ --image-family=debian-10 \ --image-project=debian-cloud \ --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'
Terraform
Para crear la plantilla de instancias, usa el recurso google_compute_instance_template
.
Crea el grupo de instancias administrado y selecciona la plantilla de instancias.
Console
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en Crear grupo de instancias.
A la izquierda, elige Nuevo grupo de instancias administrado (sin estado).
En Nombre, ingresa
lb-backend-example
.En Ubicación, selecciona Zona única.
En Región, selecciona tu región preferida.
En Zona, selecciona una zona.
En Plantilla de instancias, selecciona la plantilla de instancias
lb-backend-template
.En Modo de ajuste de escala automático, selecciona Activado: agrega y quita instancias del grupo.
Establece la Cantidad mínima de instancias en
2
y la Cantidad máxima de instancias en2
o más.Para crear el grupo de instancias nuevo, haz clic en Crear.
gcloud
Crea el grupo de instancias administrado en función de la plantilla.
gcloud compute instance-groups managed create lb-backend-example \ --template=TEMPLATE_NAME --size=2 --zone=ZONE_A
Terraform
Para crear el grupo de instancias administrado, usa el recurso google_compute_instance_group_manager
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega un puerto con nombre al grupo de instancias
En el grupo de instancias, define un servicio HTTP y mapea un nombre de puerto al puerto pertinente. El servicio de balanceo de cargas reenvía el tráfico al puerto especificado. Para obtener más información, consulta Puertos con nombre.
Console
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en lb-backend-example.
En la página Descripción general del grupo de instancias, haz clic en
Editar.En la sección Asignación de puertos, haz clic en Agregar puerto.
- En el nombre de puerto, ingresa
http
. En el número de puerto, ingresa80
.
- En el nombre de puerto, ingresa
Haz clic en Guardar.
gcloud
Usa el comando gcloud compute instance-groups
set-named-ports
.
gcloud compute instance-groups set-named-ports lb-backend-example \ --named-ports http:80 \ --zone ZONE_A
Terraform
El atributo named_port
se incluye en la muestra del grupo de instancias administrado.
Configura una regla de firewall
En este ejemplo, se crea la regla de firewall fw-allow-health-check
.
Esta es una regla de entrada que permite el tráfico de los sistemas de verificación de estado de Google Cloud (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 VM.
Console
En la consola de Google Cloud, ve a la página Políticas de firewall.
Haz clic en Crear regla de firewall para crear la regla de firewall.
En Nombre, ingresa
fw-allow-health-check
.Selecciona una Red.
En Destinos, selecciona Etiquetas de destino especificadas.
Propaga el campo Etiquetas de destino con
allow-health-check
.Configura Filtro de fuente como Rangos de IPv4.
Establece Rangos de IPv4 de origen en
130.211.0.0/22
y35.191.0.0/16
.En Protocolos y puertos, selecciona Protocolos y puertos especificados.
Selecciona la casilla de verificación TCP y, luego, escribe
80
para los números de puerto.Haz clic en Crear.
gcloud
gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
Terraform
Para crear la regla de firewall, usa el recurso google_compute_firewall
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Crea la regla de firewall de verificación de estado IPv6
Asegúrate de tener una regla de entrada, aplicable a las instancias cuya carga se balancea, que permita el tráfico desde los sistemas de verificación de estado de Google Cloud (2600:2d00:1:b029::/64
). En este ejemplo se utiliza la etiqueta de destino allow-health-check-ipv6
para identificar las instancias de VM a las que se aplica.
Sin esta regla de firewall, la regla implícita de denegación de entrada bloquea el tráfico IPv6 entrante a las instancias de backend.
Console
En la consola de Google Cloud, ve a la página Políticas de firewall.
Para permitir el tráfico de subred de IPv6, vuelve a hacer clic en Crear regla de firewall y, luego, ingresa la siguiente información:
- Nombre:
fw-allow-lb-access-ipv6
- Red:
NETWORK
- Prioridad:
1000
- Dirección del tráfico: Entrada
- Destinos: Etiquetas de destino especificadas
- Etiquetas de destino, ingresa
allow-health-check-ipv6
- Filtro de fuente: Rangos de IPv6
- Rangos de IPv6 de origen:
2600:2d00:1:b029::/64
,2600:2d00:1:1::/64
- Protocols y puertos: Permitirlos todos
- Nombre:
Haz clic en Crear.
gcloud
Para permitir la comunicación con la subred, crea el regla de firewall fw-allow-lb-access-ipv6
:
gcloud compute firewall-rules create fw-allow-lb-access-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=all
Reservar una dirección IP externa
Ahora que tus instancias están en funcionamiento, configura una dirección IP externa, estática y global que tus clientes usarán para llegar al balanceador de cargas.
Console
En la consola de Google Cloud, ve a la página Direcciones IP externas.
Para reservar una dirección IPv4, haz clic en Reservar dirección IP externa estática.
En Nombre, ingresa
lb-ipv4-1
.En Nivel de servicio de red, establece Premium.
Configura Versión de IP como IPv4.
Establece Tipo en Global.
Haz clic en Reservar.
gcloud
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global
Tome nota de la dirección IPv4 que estaba reservada:
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
Terraform
Para reservar la dirección IP, usa el recurso google_compute_global_address
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Configura el balanceador de cargas
En este ejemplo, se usa HTTPS (frontend) entre el cliente y el balanceador de cargas. Para HTTPS, necesitas uno o más recursos de certificado SSL a fin de configurar el proxy. Recomendamos que uses un certificado administrado por Google.
Incluso si usas HTTPS en el frontend, puedes usar HTTP en el backend. Google encripta de forma automática el tráfico entre Google Front Ends (GFE) y los backends que residen en las redes de VPC de Google Cloud.
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 Orientado al público (externo) y haz clic en Siguiente.
- En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo globales y haz clic en Siguiente.
- En Generación de balanceadores de cargas, selecciona Balanceador de cargas de aplicaciones externo global y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
En el campo Nombre del balanceador de cargas, ingresa algo como web-map-https
o web-map-http
.
Configuración de frontend
- Haz clic en Configuración de frontend.
- En Protocolo, configura HTTPS.
- Selecciona
IPv4
para el tráfico IPv4. Configura el campo dirección IP comolb-ipv4-1
, la que creaste antes. - Configura el Puerto como 443.
- Haz clic en Certificado y selecciona tu certificado SSL principal.
- Opcional: Crea una política de SSL:
- En la lista SSL Policy, selecciona Crear una política.
- Establece el nombre de la política de SSL en
my-ssl-policy
. - En Versión mínima de TLS, selecciona TLS 1.0.
- En Perfil, selecciona Moderno. Se mostrarán las Funciones habilitadas y las Funciones inhabilitadas.
- Haz clic en Guardar.
-
Opcional: Selecciona la casilla de verificación Habilitar el redireccionamiento HTTP a HTTPS para habilitar los redireccionamientos.
Si habilitas esta casilla de verificación, se creará un balanceador de cargas de HTTP parcial adicional que usa la misma dirección IP que tu balanceador de cargas de HTTPS y redirecciona las solicitudes HTTP entrantes al frontend de HTTPS del balanceador de cargas.
Esta casilla de verificación solo se puede seleccionar cuando se selecciona el protocolo HTTPS y se usa una dirección IP reservada.
- Haz clic en Listo.
Configuración de backend
- Haz clic en Configuración de backend.
- En Crear o seleccionar servicios y buckets de backend, selecciona Servicios de backend > Crear un servicio de backend.
- Agrega un nombre al servicio de backend, como
web-backend-service
. - En la lista Política de selección de direcciones IP, selecciona Preferir IPv6.
- En Protocolo, selecciona HTTP.
- En Puerto con nombre, ingresa
http
. - En Backends > Nuevo backend > Grupo de instancias, selecciona el grupo de instancias
lb-backend-example
. - En Números de puerto, ingresa
80
. - Mantén la configuración predeterminada.
- En Verificación de estado, selecciona Crear una verificación de estado y, luego, agrega un nombre para la verificación de estado, como
http-basic-check
. - Configura el protocolo como HTTP y, luego, haz clic en Guardar.
-
Opcional: Configura una política de seguridad de backend predeterminada. La política de seguridad predeterminada limita el tráfico por encima de un umbral configurado por el usuario. Para obtener más información sobre las políticas de seguridad predeterminadas, consulta la Descripción general del límite de frecuencia.
- Para inhabilitar la política de seguridad predeterminada de Google Cloud Armor, selecciona
None
en el menú de lista de la política de seguridad de backend. - En la sección Seguridad, selecciona Política de seguridad predeterminada.
- En el campo Nombre de la política, acepta el nombre que se genera automáticamente o ingresa un nombre para la política de seguridad.
- En el campo Recuento de solicitudes, acepta el recuento de solicitudes predeterminado o ingresa un número entero entre
1
y10,000
. - En el campo Intervalo, selecciona un intervalo.
- En el campo Aplicar en la clave, elige uno de los siguientes valores: Todos, Dirección IP o Dirección IP X‑Forwarded‑For. Para obtener más información sobre estas opciones, consulta Identifica clientes para el límite de frecuencia.
- Para inhabilitar la política de seguridad predeterminada de Google Cloud Armor, selecciona
- Mantén la configuración predeterminada.
- Haz clic en Crear.
Reglas de enrutamiento
En Reglas de enrutamiento, mantén la configuración predeterminada.
Revisa y finaliza
- Haz clic en Revisar y finalizar.
- Revisa la configuración del balanceador de cargas.
- Opcional: Haz clic en Código equivalente para ver la solicitud a la API de REST que se usará para crear el balanceador de cargas.
- Haz clic en Crear.
Espera a que se cree el balanceador de cargas.
Si creaste un balanceador de cargas de HTTPS y seleccionaste la casilla de verificación Habilitar el redireccionamiento de HTTP a HTTPS también verás un balanceador de cargas HTTP creado con un sufijo de redireccionamiento.
- Haz clic en el nombre del balanceador de cargas.
- En la pantalla Detalles del balanceador de cargas, toma nota del valor de IP:Puerto de tu balanceador de cargas.
gcloud
- Crea una verificación de estado.
gcloud compute health-checks create http http-basic-check \ --port 80
- Crea un servicio de backend.
gcloud beta compute backend-services create web-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=http-basic-check \ --global
- Agrega tu grupo de instancias como backend al servicio de backend.
gcloud beta compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-example \ --instance-group-zone=ZONE_A \ --global
- Para HTTP, crea un mapa de URL para enrutar las solicitudes entrantes al servicio de backend predeterminado.
gcloud beta compute url-maps create web-map-http \ --default-service web-backend-service
- Para HTTPS, crea un mapa de URL a fin de enrutar las solicitudes entrantes al servicio de backend predeterminado.
gcloud beta compute url-maps create web-map-https \ --default-service web-backend-service
Configura un frontend de HTTPS
Omite esta sección para los balanceadores de cargas HTTP.
- Para HTTPS, si aún no lo hiciste, crea el recurso de certificado SSL global, como se muestra en las siguientes secciones:
- Crea un recurso de certificado SSL administrado por Google
- Crea un recurso de certificado SSL autoadministrado
En el caso de HTTPS, crea un proxy HTTPS de destino para enrutar las solicitudes a tu mapa de URL. El proxy es la parte del balanceador de cargas que contiene el certificado SSL para el balanceo de cargas de HTTPS, por lo que también debes cargar el certificado en este paso.
gcloud beta compute target-https-proxies create http-lb-proxy \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --url-map=web-map-https \ --ssl-certificates=www-ssl-cert
Reemplaza
HTTP_KEEP_ALIVE_TIMEOUT_SEC
por el valor de tiempo de espera de keepalive de HTTP del cliente de 5 a 1,200 segundos. El valor predeterminado es 610 segundos. Este campo es opcional.- Para HTTPS, crea una regla de reenvío global para enrutar las solicitudes entrantes al proxy.
gcloud beta compute forwarding-rules create https-content-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443
- Para HTTPS, crea una política de SSL global y adjúntala al proxy HTTPS (opcional).
Si quieres crear una política de SSL global:gcloud compute ssl-policies create my-ssl-policy \ --profile MODERN \ --min-tls-version 1.0
Para adjuntar la política de SSL al proxy HTTPS de destino global, haz lo siguiente:gcloud compute target-https-proxies update https-lb-proxy \ --ssl-policy my-ssl-policy
Configura un frontend de HTTP
Omite esta sección para los balanceadores de cargas HTTPS.
- En el caso de HTTP, crea un proxy HTTP de destino para enrutar las solicitudes a tu mapa de URL.
gcloud beta compute target-http-proxies create http-lb-proxy \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --url-map=web-map-http
Reemplaza
HTTP_KEEP_ALIVE_TIMEOUT_SEC
por el valor de tiempo de espera de keepalive de HTTP del cliente de 5 a 1,200 segundos. El valor predeterminado es 610 segundos. Este campo es opcional. - Para HTTP, crea una regla de reenvío global a fin de enrutar las solicitudes entrantes al proxy.
gcloud beta compute forwarding-rules create http-content-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Terraform
-
Para crear la verificación de estado, usa el recurso
google_compute_health_check
. -
Para crear el servicio de backend, usa el recurso
google_compute_backend_service
. -
Para crear el mapa de URL, usa el recurso
google_compute_url_map
. -
Para crear el proxy HTTP de destino, usa el recurso
google_compute_target_http_proxy
. -
Para crear la regla de reenvío, usa el recurso
google_compute_global_forwarding_rule
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Conecta tu dominio al balanceador de cargas
Después de crear el balanceador de cargas, toma nota de la dirección IP asociada con este: por ejemplo, 30.90.80.100
. Para apuntar tu dominio al balanceador de cargas, crea un registro A
mediante tu servicio de registro de dominio. Si agregaste varios dominios a tu certificado SSL, debes agregar un registro A
para cada uno, que apunte a la dirección IP del balanceador de cargas. Por ejemplo, para crear registros A
para 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 Agrega, modifica y borra registros.
Prueba el tráfico enviado a las instancias
Ahora que el servicio de balanceo de cargas está en ejecución, puedes enviar tráfico a la regla de reenvío y ver cómo este se dispersa en las diferentes instancias.
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en el balanceador de cargas que acabas de crear.
En la sección Backend, confirma que las VM estén en buen estado. La columna En buen estado debe estar propagada, de modo que se indique que ambas VM están en buen estado (
2/2
). Si no ves esto, vuelve a cargar la página. Puede tomar unos minutos que la consola de Google Cloud indique que las VM están en buen estado. Si los backends no se muestran en buen estado después de unos minutos, revisa la configuración del firewall y la etiqueta de red asignada a tus VM de backend.- Para HTTPS, si usas un certificado administrado por Google, confirma que el estado de tu recurso de certificado sea ACTIVO. Para obtener más información, consulta Estado de los recursos de certificado SSL administrado por Google.
- Después de que la consola de Google Cloud muestre que las instancias de backend están en buen estado, puedes probar tu balanceador de cargas con un navegador web en
https://IP_ADDRESS
(ohttp://IP_ADDRESS
). ReemplazaIP_ADDRESS
por la dirección IP del balanceador de cargas. - Si usaste un certificado autofirmado para las pruebas de HTTPS, el navegador mostrará una advertencia. Debes indicar de manera explícita a tu navegador que acepte un certificado autofirmado.
- El navegador debe procesar una página con contenido que muestre el nombre de la instancia que entregó la página, junto con su zona (por ejemplo,
Page served from: lb-backend-example-xxxx
). Si el navegador no procesa esta página, revisa las opciones de configuración que aparecen en esta guía.
gcloud
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
Después de unos minutos, puedes ejecutar el siguiente comando de curl
para probar la configuración.
curl http://IP_ADDRESS
O
curl https://HOSTNAME
Configuración adicional
En esta sección se expande el ejemplo de configuración para proporcionar opciones de configuración alternativas y adicionales. Todas las tareas son opcionales. Puedes realizarlas en cualquier orden.
Actualiza el tiempo de espera de keepalive del HTTP del cliente
El balanceador de cargas creado en los pasos anteriores se configuró con un valor predeterminado para el tiempo de espera de keepalive de HTTP del cliente. Para actualizar el tiempo de espera de keepalive del cliente HTTP, sigue las siguientes instrucciones.
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en el nombre del balanceador de cargas que deseas modificar.
- Haz clic en Editar.
- Haz clic en Configuración de frontend.
- Expande Funciones avanzadas. Para el tiempo de espera de keepalive de HTTP, ingresa un valor de tiempo de espera de entre 5 a 1,200 segundos.
- Haga clic en Actualizar.
- Para revisar los cambios, haz clic en Revisar y finalizar y, luego, haz clic en Actualizar.
gcloud
Para un balanceador de cargas de HTTP, actualiza el proxy HTTP de destino con el comandogcloud 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
Para un balanceador de cargas de HTTPS, actualiza el proxy HTTPS de destino con el comandogcloud 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
Reemplaza lo siguiente:
TARGET_HTTP_PROXY_NAME
: el nombre del proxy HTTP de destino.TARGET_HTTPS_PROXY_NAME
: el nombre del proxy HTTPS de destino.HTTP_KEEP_ALIVE_TIMEOUT_SEC
: El valor de tiempo de espera de keepalive de HTTP de 5 a 1200 segundos.
¿Qué sigue?
Para obtener documentación relacionada, haz lo siguiente:
- Configura un redireccionamiento de HTTP a HTTPS para un balanceador de cargas de aplicaciones externo
- Configura un balanceador de cargas HTTPS
- Migra a backends de pila doble
- Habilita IAP en el balanceador de cargas de aplicaciones externo
- Ejemplos de módulos de Terraform para balanceadores de cargas de aplicaciones externos
- Limpia la configuración del balanceador de cargas
Para ver videos relacionados, consulta lo siguiente: