Sepa cómo puede utilizar el equilibrador de carga (LB) de Cloudflare para distribuir el tráfico entre AWS (Amazon Web Services) y GCP (Google Cloud Platform).

La mayoría de las aplicaciones web requieren o realizan un equilibrio de carga entre servidores/servicios en el mismo centro de datos.

Sin embargo, si está ejecutando aplicaciones de misión crítica en las que se necesita tiempo de actividad todo el tiempo en todo el mundo, entonces necesita un equilibrador de carga en la nube.

No se trata sólo del tiempo de actividad, sino de muchos otros factores.

Ej:

  • Necesidad de un centro de datos activo-pasivo o activo-activo
  • Plan de recuperación ante desastres
  • Aprovechamiento de múltiples centros de datos para servir solicitudes desde la ubicación más cercana
  • Cumplimiento

Cloudflare ofrece opciones de equilibrio de carga local y global, que ayudan a dirigir el tráfico a múltiples centros de datos.

Algunas de las características de Cloudflare LB son:

  • Las comprobaciones de salud están incorporadas, por lo que puede desactivar rápidamente un servidor defectuoso.
  • Activar la conmutación por error cuando falle la comprobación de estado
  • Reduzca la latencia enrutando el tráfico al servidor más cercano
  • Nivel DNS y compatibilidad con HTTP(S), TCP y UDP
  • Adherencia de sesión para garantizar que la solicitud va al mismo servidor

Puede configurarlo todo a través del panel de control de Cloudflare o de la API.

Técnicamente, las siguientes instrucciones se aplican al equilibrio de carga en cualquier plataforma en la nube como Azure, DigitalOcean, Alibaba, etc. Pero he elegido GCP y AWS para la demostración.

cloudflare-lb

Detalles de la configuración de AWS y GCP

He aprovisionado un servidor en la plataforma GCP y AWS con lo siguiente.

  • Instalado Nginx
  • Añadido index. html con texto personalizado para mostrar que la página se está sirviendo desde el servidor respectivo
  • Iniciado Nginx, y la página es accesible desde ambos servidores
aws-gcp-test-page

Pasemos a Cloudflare para implementar LB.

Activando Cloudflare Load Balancer

Tengo un dominio disponible (bloggerflare.com), que utilizaré para este laboratorio.

Nota: El equilibrador de carga de Cloudflare no es GRATUITO, y su precio comienza en 5 dólares al mes.

Asumo que ya tiene una cuenta con Cloudflare; si no es así, puede crearla y añadir el dominio, como expliqué en mi post anterior.

  • Inicie sesión en Cloudflare y seleccione el dominio en el que desea habilitar el equilibrio
  • Vaya a la pestaña de tráfico y habilite el equilibrio de carga.
cloudflare-enable-lb
  • Configure las características en función de sus necesidades. Yo estoy procediendo con una configuración mínima.
cloudflare-lb-setup

Si desea que las solicitudes sean redirigidas a la ubicación más cercana, entonces tiene que habilitar Geo Routing.

  • Confirme la suscripción y habilítela.
cloudflare-lb-subscription

Como puede ver, puede empezar desde 5 dólares al mes con dos servidores de origen y un intervalo de comprobación de estado de un minuto.

La infraestructura es tan asequible ahora. hace 5 años, ¿se imaginaba un equilibrador de carga en la nube por 5 dólares?

Esto indica que Cloudflare LB está activado y listo para ser configurado.

Creación de Cloudflare LB

Tardará unos segundos en confirmar la suscripción y le llevará de nuevo a la página de Tráfico.

  • Haga clic en Crear equilibrador de carga
cloudflare-lb-activated
  • Introduzca el dominio en el que desea configurar el equilibrio.
  • Expanda Afinidad de sesión y seleccione Por cookie de Cloud flare si necesita habilitar la afinidad de sesión
cloudflare-create-lb
  • Introduzca un nombre de pool, y es el origen (servidor al que debe redirigirse el tráfico)
cloudflare-lb-pool
  • A continuación, puede configurar una comprobación de salud.

Una comprobación de salud es esencial. Cloudflare dejará de enviar tráfico al origen defectuoso cuando falle una comprobación de salud.

  • Si su origen está escuchando en el puerto 80, entonces puede seleccionar HTTP o https para el puerto 443.
cloudflare-lb-enable-healthcheck

Cloudflare también le permite configurar ajustes avanzados de comprobación de salud tales como:

  • Método GET o HEAD
  • Código de estado HTTP esperado
  • Validación del contenido en el cuerpo de la respuesta
  • Número de intentos antes de considerar saludable o no saludable
  • Validación del nombre del encabezado

Y por último, guarde la configuración y despliegue

cloudflare-lb-final-deploy
  • LB realizará una comprobación de estado y, en unos segundos, verá que el estado es saludable.
cloudflare-lb-healthy

Estupendo, esto concluye que el equilibrador de carga de Cloudflare está listo para aceptar tráfico del mundo y reenviarlo a los servidores de origen configurados.

Probando el equilibrador de carga

Vamos a realizar una prueba básica para ver si funciona.

  • En primer lugar, intente acceder al dominio.
page-from-gcp

¡Impresionante!

LB reenvió una solicitud a Google Cloud VM y obtuvo la respuesta. Puedo ver la solicitud en Nginx.

162.158.167.174 - - [19/Dic/2017:10:25:41 0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • Permítame apagar Nginx en GCP y acceder de nuevo a la página.
page-from-aws
  • Y aquí lo tiene. Se sirve una página solicitada desde AWS.

Puedo ver que LB derribó al miembro del pool de GCP.

cloudflare-lb-health-test

Por defecto, la IP de Cloudflare se mostrará en los registros de acceso de Nginx, y si necesita restaurar la IP del cliente, puede consultar esta guía.

Conclusión

Implementar un equilibrador de carga de Cloudflare es sencillo y puede ponerlo en marcha en menos de 15 minutos. Si busca alta disponibilidad entre varios centros de datos o servidores de origen, pruébelo para ver cómo funciona.