Acerca de los equilibradores de carga de aplicación

Utilice IBM Cloud® Application Load Balancer for VPC (ALB) para distribuir el tráfico entre varias instancias de servidor dentro de la misma región de la VPC.

Si tiene cargas de trabajo públicas y privadas y tráfico de capa 7, utilice un equilibrador de carga de aplicación.

Tipos de equilibradores de carga de aplicación

Tal como se describe en Visión general de equilibradores de carga para VPC, puede crear un ALB público o privado.

Esta tabla muestra una comparación entre las características de los servicios públicos y los privados.

Comparación de balanceadores de carga públicos y privados
Característica Equilibrador de carga público Equilibrador de carga privado
¿Accesible en Internet? Sí, con un nombre de dominio completo (FQDN) No, solo clientes internos, en la misma región y VPC
¿Acepta todo el tráfico?
(Se ha eliminado la restricción de aceptar tráfico únicamente desde el espacio de direcciones RFC-1918 )
¿Cómo se registra el nombre de dominio? Direcciones IP públicas Direcciones IP privadas

Equilibrador de carga de aplicación público

A una instancia pública de equilibrador de carga de aplicaciones se le asigna un nombre de dominio completo (FQDN) de acceso público, que debe utilizar para acceder a sus aplicaciones alojadas detrás del equilibrador de carga. Se puede registrar este nombre de dominio con una o varias direcciones IP públicas.

Con el tiempo, el número y el valor de estas direcciones IP públicas pueden cambiar debido a las actividades de mantenimiento y escalado. Las instancias de servidor virtual de back-end que alojan su aplicación deben ejecutarse en la misma región y dentro de la misma VPC.

Utilice el FQDN asignado para enviar el tráfico al equilibrador de carga de aplicación público para evitar problemas de conectividad en las aplicaciones durante el mantenimiento del sistema o en las actividades de escalado.

Equilibrador de carga de aplicación privado

Se puede acceder a un equilibrador de carga de aplicación privado a través de las subredes privadas que ha configurado para crear el equilibrador de carga.

De forma similar a un equilibrador de carga de aplicaciones público, se asigna un FDQN a su instancia de equilibrador de carga de aplicaciones privado. Sin embargo, este nombre de dominio se registra con una o varias direcciones IP privadas.

Las operaciones de IBM Cloud pueden cambiar el número y el valor de las direcciones IP privadas asignadas a lo largo del tiempo, en función de las actividades de mantenimiento y de escalado. Las instancias de servidor virtual de back-end que alojan su aplicación deben ejecutarse en la misma región y dentro de la misma VPC.

Utilice el FQDN asignado para enviar el tráfico al equilibrador de carga de aplicación privado para evitar problemas de conectividad en las aplicaciones durante el mantenimiento del sistema o en las actividades de escalado.

Métodos de equilibrio de carga

Hay tres métodos de equilibrio de carga disponibles para distribuir el tráfico entre los servidores de aplicaciones de fondo:

Round-robin

Round-robin es el método de equilibrio de carga predeterminado. Con este método, el equilibrador de carga de aplicación reenvía las conexiones entrantes del cliente de forma rotativa a los servidores de fondo. En consecuencia, todos los servidores de fondo reciben aproximadamente el mismo número de conexiones de cliente.

Round-robin ponderado

Con este método, un equilibrador de carga de aplicaciones reenvía las conexiones entrantes de los clientes a los servidores de back-end en proporción al peso que se ha asignado a dichos servidores. Se asigna un peso 50 predeterminado de a cada servidor. El peso se puede personalizar a cualquier valor dentro del rango 0- 100.

Por ejemplo, si los servidores de aplicaciones A, B y C tienen las ponderaciones 60, 60 y 30, los servidores A y B reciben un número igual de conexiones, mientras que el servidor C recibe la mitad de ese número de conexiones.

Si se establece la ponderación en 0, significa que no se reenvían nuevas conexiones a dicho servidor, pero el tráfico existente sigue fluyendo. La utilización de una ponderación de 0 puede ayudar a desactivar un servidor y eliminarlo de la rotación de servicio.

Los valores de ponderación de servidor solo se aplican cuando se utiliza el método 'round-robin ponderado'. Se pasan por alto con los métodos de equilibrio de carga round-robin y menos conexiones.

Conexiones mínimas

Con este método, la instancia del servidor back-end que atiende el menor número de conexiones en un momento determinado recibe la siguiente conexión de cliente.

Escuchas frontales y agrupaciones de fondo

Los escuchas de componente frontal son puertos de aplicación de equilibrador de carga para recibir solicitudes entrantes, mientras que las agrupaciones de fondo son los servidores de aplicaciones que se encuentran detrás de los equilibradores de carga.

Directrices para utilizar escuchas

Revise las directrices siguientes para escuchas frontales:

  • Puede definir hasta 10 escuchas de front-end y asignarlas a grupos de back-end en sus servidores de aplicaciones de back-end.
  • El FQDN asignado al equilibrador de carga y los puertos de escucha frontales están expuestos a Internet público. Las solicitudes de usuario entrantes se reciben en dichos puertos.
  • Los protocolos admitidos de escucha de componente frontal y agrupación de fondo son HTTP, HTTPS y TCP.
  • Puede configurar un escucha frontal HTTP/HTTPS con una agrupación de fondo HTTP/HTTPS.
  • HTTP/2 Solo es compatible con los oyentes.
  • Los escuchas y las agrupaciones HTTP y HTTPS son intercambiables.
  • Solo se puede configurar un listener de front-end de TCP con un grupo de back-end de TCP.
  • Puede conectar hasta 50 instancias de servidor virtual a una agrupación de fondo. El tráfico se envía a cada instancia en su puerto de datos especificado. Este puerto de datos no tiene que ser el mismo que el puerto del escucha de componente frontal.
  • Los puntos finales solo privados de Secrets Manager no son compatibles con los oyentes de HTTPS. Para configurar un escucha HTTPS en un ALB, hay que subir los certificados TLS a un punto final "público y privado".

Escucha de redirección HTTPS

Los escuchas de redirección HTTPS redirigen el tráfico de un escucha HTTP a un escucha HTTPS. Esta acción no requiere que se apliquen reglas al listener.

Por ejemplo, si un servicio escucha en el puerto 443 con HTTPS y un usuario intenta acceder al servicio en el puerto 80 utilizando HTTP, la solicitud se redirige automáticamente al puerto 443 con HTTPS.

Si hay políticas presentes en el escucha de redirección HTTPS, estas se evalúan en primer lugar. Si no hay ninguna política que coincida, la solicitud se redirige a un listener de HTTPS configurado.

Propiedades del escucha de redirección HTTPS

Propiedades del escucha de redirección HTTPS
Propiedad Descripción
Escucha Escucha HTTPS al que se redirige una solicitud.
Código de estado HTTP El código de estado de la respuesta devuelta por el equilibrador de carga de la aplicación. Los valores aceptables son: 301, 302, 303, 307 o 308.
URI URI relativo al que se redirige una solicitud. Esta propiedad es opcional.

Políticas a prueba de fallos del fondo de reserva

Al editar un grupo back-end en un equilibrador de carga, puede especificar una de las siguientes acciones de política a prueba de fallos:

  • Reenviar: El equilibrador de carga enruta las peticiones a un pool de respaldo designado. Esto proporciona una ruta de conmutación por error limpia a otro conjunto de servidores de aplicaciones. Debe tener un grupo de respaldo existente configurado y listo para recibir tráfico.
  • Drop: El balanceador de carga elimina todas las peticiones entrantes y el cliente no recibe respuesta.
  • Fallo: El equilibrador de carga rechaza las solicitudes con un código de estado HTTP 503 ("Servicio no disponible"), informando al cliente de que el servicio está temporalmente fuera de servicio.

Puede elegir un destino a prueba de fallos de una lista de grupos de copias de seguridad aplicables.

Requisitos del grupo objetivo a prueba de fallos (si la acción es Forward):

  • deben pertenecer al mismo equilibrador de carga
  • deben tener el mismo protocolo o uno compatible ( TCP sólo es compatible con TCP, pero cualquier combinación de HTTP y HTTPS es compatible)

Sólo los balanceadores de carga de aplicaciones permiten asociar más de un pool a un único listener. Asegúrese de que existe al menos un grupo en el equilibrador de carga.

En una configuración de balanceador de carga, un listener se considera el recurso padre. Puede asociar pools a ese listener de dos formas, haciendo referencia a ellos directa o indirectamente. Para la asociación directa, configure el pool como default_pool del oyente. Para la asociación indirecta, haga referencia al pool desde otro pool a través de una relación failsafe_policy.target, asegurándose de que el otro pool ya está vinculado al oyente.

Elasticidad

El equilibrador de carga de aplicación se escala añadiendo recursos de cálculo cuando aumenta la carga.

Descarga de SSL y autorizaciones necesarias

La descarga de Secure Sockets Layer ( SSL ) permite que el balanceador de carga de la aplicación finalice todas las conexiones HTTPS entrantes.

Cuando se configura un escucha HTTPS con una agrupación HTTP, la solicitud HTTPS se termina en el componente frontal y el equilibrador de carga establece una comunicación HTTP de texto sin formato con la instancia de servidor de fondo. Con esta técnica, el reconocimiento SSL intensivo de CPU y las tareas de cifrado o descifrado se desplazan de las instancias de servidor de fondo, permitiéndoles utilizar todos los ciclos de CPU para procesar el tráfico de aplicaciones.

La descarga SSL requiere que proporcione un certificado SSL para que el equilibrador de carga de aplicación realice tareas de descarga de SSL. Puede gestionar los certificados SSL a través de IBM Cloud Secrets Manager.

Puedes crear una autorización a través de « Autorizaciones de IAM ». Asegúrate de elegir Servicios de infraestructura de VPC como servicio de origen y luego seleccione Recursos específicos. Hacer clic Seleccione un atributo y elige Tipo de recurso de la lista. Selecciona « Equilibrador de carga para VPC » como tipo de recurso y haz clic en « Siguiente ». Para el servicio «Destino», selecciona Secrets Manager. Configura el acceso a la instancia del servicio de destino en « Todas las instancias » o en tu instancia específica de IBM Cloud Secrets Manager. Asigne el rol de acceso al servicio de Escritor. Para obtener más información, consulte Concesión de acceso entre los servicios.

Para evitar errores, debe establecer la autorización necesaria entre el equilibrador de carga y IBM Cloud Secrets Manager. Además, la actualización de los certificados en Secrets Manager no actualiza automáticamente su ALB. Para que el equilibrador de carga refleje los cambios en el certificado, realice una pequeña actualización (como cambiar el intervalo de comprobación de estado o el valor de tiempo de espera) para provocar una renovación. Esta acción actualiza el certificado de su equilibrador de carga para que coincida con el certificado de Secrets Manager. A continuación, puede revertir los cambios que haya realizado a sus valores originales.

Están soportados Transport Layer Security (TLS) 1.2 y 1.3. Sin embargo, se utiliza de forma predeterminada TLS 1.3, a menos que se configure específicamente el lado del cliente para que utilice 1.2. Los equilibradores de carga de aplicaciones aceptan todos los cifrados compatibles de TLS 1.3 enviados por la solicitud del lado del cliente.

En la siguiente lista, se indican los cifrados que reciben soporte (en orden de precedencia):

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

Localización del CRN de certificado

Al configurar la autenticación para un equilibrador de carga de aplicaciones durante el aprovisionamiento en la consola, puede optar por especificar el certificado Secrets Manager y SSL, o el CRN del certificado. Quizá te interese hacerlo si no ves Secrets Manager en el menú desplegable, lo que significa que no tienes acceso a la instancia de Secrets Manager. Tenga en cuenta que debe introducir el CRN si utiliza la API para crear un ALB.

Para obtener el CRN, debes tener permiso para acceder a la instancia de Secrets Manager.

Para encontrar el CRN de un certificado, siga estos pasos:

  1. En la consola IBM Cloud, vaya al icono del menú de navegación > Lista de recursos.
  2. Haz clic para desplegar Seguridad y, a continuación, selecciona el Secrets Manager del que deseas conocer el CRN.
  3. Seleccione cualquier punto de la fila de tabla del certificado para abrir el panel lateral de detalles del certificado. Se indica el CRN del certificado.

Cifrado SSL de extremo a extremo

La configuración de un escucha HTTPS con una agrupación HTTPS permite el cifrado SSL de extremo a extremo. El ALB termina la solicitud entrante HTTPS en el listener del front-end y establece una conexión HTTPS con las instancias del back-end. El cifrado de extremo a extremo permite que todo el tráfico que pasa por el equilibrador de carga hacia los miembros del back-end se cifre mediante el protocolo HTTPS.

Para configurar el cifrado SSL de extremo a extremo:

  1. Configura un listener front-end de HTTPS con tu certificado SSL tal y como lo harías al configurar la descarga de SSL.
  2. Configure una agrupación de fondo HTTPS.
  3. Añada la instancia de miembro de fondo a la agrupación de fondo HTTPS. Asegúrate de que las instancias de los miembros del back-end estén configuradas para gestionar el tráfico de HTTPS.
  4. Configure la comprobación de estado con el tipo HTTPS para realizar comprobaciones de estado cifradas con los miembros de fondo.

Los equilibradores de carga de aplicación no verifican los certificados SSL de las instancias de miembro de fondo.

Escalado horizontal

El equilibrador de carga de aplicación ajusta su capacidad automáticamente en función de la carga. Cuando se produce este ajuste, puede notar un cambio en el número de direcciones IP asociadas al nombre DNS del equilibrador de carga.

Soporte de MZR

IBM Cloud Application Load Balancer for VPC admite regiones multizona (MZR). Puede conseguir una alta disponibilidad y redundancia desplegando un equilibrador de carga de aplicación con subredes de diferentes zonas. Cuando se utilizan subredes de varias zonas para suministrar un equilibrador de carga de aplicación, los dispositivos del equilibrador de carga se despliegan en varias zonas.

Integración con grupos de instancias

IBM Cloud Application Load Balancer for VPC se integra con grupos de instancias, que pueden auto scale los miembros de fondo. Los miembros de la agrupación se añaden y suprimen dinámicamente según el uso y los requisitos.

Reenvío de registro de Datapath

Cuando se habilita el registro de la ruta de datos, los registros del equilibrador de carga se reenvían al servicio IBM Cloud Logs, donde podrá consultar sus registros de la ruta de datos.

Soporte de HTTP2

Los equilibradores de carga de aplicaciones admiten el tráfico HTTP2 de extremo a extremo y funcionan con protocolos de escucha configurados como HTTPS o TCP.

Soporte de WebSocket

WebSocket proporciona canales de comunicación full-duplex a través de una única conexión TCP. Los balanceadores de carga de aplicaciones soportan WebSocket con cada tipo de protocolo de escucha ( HTTP / HTTPS / TCP ).

Alta disponibilidad y balanceadores de carga de aplicaciones

Para asegurarse de que la alta disponibilidad (HA) funcione con su ALB, conecte tres subredes de diferentes zonas al ALB e implemente dispositivos en estas zonas. Para ello, primero debe seleccionar sus subredes durante el proceso de creación de ALB. Puede seleccionar dos subredes en zonas diferentes (como us-south-1 y us-south-2). Al hacerlo, se crean las direcciones IP del ALB (como las IP del dispositivo) en dos subredes diferentes.

También puede hacerlo con ALB ya existentes. Vaya a la sección Recursos adjuntos de la página de detalles de su equilibrador de carga. En la sección Subred, haga clic en Editar subredes. A continuación, conecte más subredes. El ALB pasa al estado «Migración». Cuando se complete la migración, obtendrá una nueva IP para el dispositivo de la subred que acaba de conectar. Ahora tienes dos direcciones IP de subredes diferentes en zonas diferentes.