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.
| 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? | Sí | Sí (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
| 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.
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:
- Configura un listener front-end de HTTPS con tu certificado SSL tal y como lo harías al configurar la descarga de SSL.
- Configure una agrupación de fondo HTTPS.
- 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.
- 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.