Configura el balanceo de cargas HTTP(S)

En este documento, se indican los primeros pasos para configurar un balanceador de cargas HTTP(S). Antes de comenzar, asegúrate de estar familiarizado con los conceptos generales del balanceo de cargas HTTP(S).

El balanceo de cargas HTTP(S) de Google Cloud Platform (GCP) ofrece balanceo de cargas global para las solicitudes HTTP(S) dirigidas a tus instancias.

El balanceo de cargas global requiere que uses el nivel Premium de los Niveles de servicio de red.

Puedes configurar reglas de URL que enruten algunas URL a un conjunto de instancias y otras URL a otras instancias. Las solicitudes siempre se enrutan al grupo de instancias más cercano al usuario en tanto el grupo tenga la capacidad suficiente y sea apropiado para la solicitud. Si el grupo más cercano no tiene suficiente capacidad, la solicitud se envía al grupo más cercano que tiene capacidad.

El balanceo de cargas HTTP(S) admite tanto direcciones IPv6 como IPv4 para el tráfico de clientes. Las solicitudes de cliente de IPv6 se finalizan en la capa de balanceo de cargas y se redirigen mediante proxies IPv4 a tus backends.

Se pueden balancear las cargas de las solicitudes HTTP según el puerto 80 o el puerto 8080. Se pueden balancear las cargas de las solicitudes HTTP en el puerto 443.

El balanceador de cargas actúa como capa de traducción HTTP/2 a HTTP/1.1, lo que significa que los servidores web siempre ven y responden solicitudes HTTP/1.1, pero las solicitudes que envía el navegador pueden ser HTTP/1.0, HTTP/1.1 o HTTP/2. No se admite la extracción de servidor HTTP/2.

Antes de comenzar

El balanceo de cargas HTTP(S) organiza las instancias en grupos de instancias. Asegúrate de estar familiarizado con los grupos de instancias antes de usar el balanceo de cargas.

Configuración de ejemplo

Si quieres hacerlo de forma directa y crear un balanceador de cargas funcional para hacer pruebas, en los siguientes diagramas se muestran tres situaciones diferentes en las que se usa el servicio de balanceo de cargas HTTP(S). Mediante estas situaciones, se proporciona un contexto práctico para el balanceo de cargas HTTP(S) y se demuestra la forma en la que puedes configurar el balanceo de cargas según tus necesidades específicas.

En el resto de esta página, se analizan en más detalle la construcción y el funcionamiento de los balanceadores de cargas.

Balanceo de cargas interregional

Representación del balanceo de cargas interregional

Puedes usar una dirección IP global que pueda redirigir a los usuarios de forma inteligente según su proximidad. Por ejemplo, si configuras instancias en América del Norte, Europa y Asia, los usuarios de todo el mundo se enviarán automáticamente a los backend más cercanos, siempre y cuando esas instancias tengan capacidad suficiente. Si las instancias más cercanas no tienen capacidad suficiente, el balanceo de cargas interregional reenvía automáticamente a los usuarios a la siguiente región más cercana.


Balanceo de cargas basado en contenido

Representación del balanceo de cargas basado en contenido

El balanceo de cargas basado en contenido o adaptado al contexto utiliza el balanceo de cargas HTTP(S) para distribuir el tráfico a diferentes instancias según la URL de HTTP(S) entrante. Por ejemplo, puedes configurar algunas instancias para manejar tu contenido de video y otro conjunto a fin de manejar todo lo demás. Puedes configurar el balanceador de cargas para dirigir el tráfico de example.com/video a los servidores de video y example.com/ a los servidores predeterminados.

También puedes usar el balanceo de cargas HTTP(S) con depósitos de Google Cloud Storage. Una vez que configures tu balanceador de cargas, puedes agregarle depósitos de Cloud Storage.


Crea un balanceador de cargas combinado

Representación del balanceo de cargas interregional y basado en contenido

El balanceo de cargas interregional y basado en contenido puede funcionar en conjunto si usas varios servicios de backend y varias regiones. Puedes adaptar las situaciones que se describieron antes para crear tu propia configuración de balanceo de cargas que satisfaga tus necesidades. El instructivo sobre el balanceo de cargas HTTP(S) muestra cómo generar una configuración de balanceo de cargas interregional y basada en contenido.


Interfaces

Tu servicio de balanceo de cargas HTTP(S) se puede configurar y actualizar a través de las siguientes interfaces:

  • La herramienta de línea de comandos de gcloud: una herramienta de línea de comandos que se incluye en el SDK de Cloud. La documentación de balanceo de cargas HTTP(S) llama esta herramienta con frecuencia para realizar tareas. Para obtener una descripción general completa de la herramienta, consulta la guía de la herramienta de gcloud. Puedes encontrar comandos relacionados con el balanceo de cargas en el grupo de comandos gcloud compute.

    También puedes obtener ayuda detallada para cualquier comando gcloud con la marca --help:

    gcloud compute http-health-checks create --help
        
  • Google Cloud Console: las tareas de balanceo de cargas se pueden realizar a través de Google Cloud Console.

  • API de REST: todas las tareas de balanceo de cargas pueden realizarse con la API de Google Cloud Load Balancing. En los documentos de referencia de la API, se describen los recursos y métodos disponibles para ti.

Notas y restricciones

  • El balanceo de cargas HTTP(S) admite la respuesta HTTP/1.1 100 Continue.
  • Si tus instancias de balanceo de cargas ejecutan una imagen de sistema operativo pública proporcionada por Google Cloud Platform, las reglas de firewall del sistema operativo estarán configuradas automáticamente para permitir el tráfico con balanceo de cargas. Si usas una imagen personalizada, tendrás que configurar el firewall del sistema operativo manualmente. Esto es independiente de la regla de firewall de GCP que debe crearse como parte de la configuración de un balanceador de cargas HTTP(S).
  • El balanceo de cargas no mantiene las instancias sincronizadas. Debes configurar tus propios mecanismos (por ejemplo, usar Deployment Manager) para asegurarte de que tus instancias tengan configuraciones y datos coherentes.

Próximos pasos