¿Cómo equilibrar la carga del sitio entre GCP y AWS usando Cloudflare?

Aprenda cómo puede usar el balanceador 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 equilibran la carga entre servidores/servicios en el mismo centro de datos.

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

No solo el tiempo de actividad, sino que podría haber muchos otros factores.

Ex:

  • Requisito de centro de datos activo-pasivo o activo-activo
  • Plan de recuperación en un desastre
  • Aprovechar múltiples centros de datos para atender solicitudes desde la ubicación más cercana
  • Cumplimiento

Llamarada de la nube ofrece opciones de equilibrio de carga locales y globales, que ayudan a enrutar el tráfico a múltiples centros de datos.

Algunas de las características de Cloudflare LB son:

  • Los controles de estado están incorporados, por lo que puede eliminar rápidamente un servidor defectuoso.
  • Activar la conmutación por error cuando falla la comprobación de estado
  • Reduzca la latencia enrutando el tráfico al servidor más cercano
  • Nivel de DNS y compatibilidad con HTTP(S), TCP y UDP
  • Permanencia de la sesión para garantizar que la solicitud vaya al mismo servidor

Puede configurar cosas completas a través del panel de Cloudflare o la API.

Técnicamente, las siguientes instrucciones se aplican al equilibrio de carga en cualquier plataforma en la nube como Azure, océano digitalAlibaba, etc. Pero elegí GCP y AWS para la demostración.

Detalles de configuración de AWS y GCP

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

  • Nginx instalado
  • Se agregó index.html con texto personalizado para mostrar que la página se está sirviendo desde el servidor respectivo
  • Se inició Nginx y se puede acceder a la página desde ambos servidores.

Pasemos a Cloudflare para implementar LB.

Activación del balanceador de carga de Cloudflare

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

Nota: el balanceador de carga de Cloudflare no es GRATIS y fijación de precios comienza en $ 5 por mes.

Supongo que ya tiene una cuenta con Cloudflare; si no, puede crear y agregar el dominio, como expliqué en mi publicación anterior.

  • Inicie sesión en Cloudflare y seleccione el dominio donde desea habilitar el equilibrio
  • Vaya a la pestaña de tráfico y habilite el equilibrio de carga.

  • Configure las características según el requisito. Estoy procediendo con una configuración mínima.

Si desea que las solicitudes se redirijan a la ubicación más cercana, debe habilitar Geo Routing.

  • Confirme la suscripción y actívela.

Como puede ver, puede comenzar desde $ 5 al mes con dos servidores de origen y un intervalo de verificación de estado de un minuto.

La infraestructura es tan asequible ahora. Hace 5 años, ¿te imaginas un balanceador de carga en la nube por $5?

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

Crear Cloudflare LB

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

  • Haga clic en Crear equilibrador de carga

  • Ingrese el dominio donde desea configurar el balanceo.
  • Expanda Afinidad de sesión y seleccione Por cookie de Cloudflare si necesita habilitar la permanencia de la sesión

  • Ingrese un nombre de grupo, y es el origen (servidor al que se debe redirigir el tráfico)

  • A continuación, puede configurar una comprobación de estado.

Un chequeo de salud es esencial. Cloudflare dejará de enviar tráfico al origen defectuoso cuando falle una verificación de estado.

  • Si su origen está escuchando en el puerto 80, puede seleccionar HTTP o https para el puerto 443.

Cloudflare también le permite configurar ajustes avanzados de verificación de estado, como:

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

Y finalmente, guarde la configuración e implemente

  • LB realizará una verificación de estado y, en unos segundos, verá que el estado es correcto.

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

Prueba del balanceador de carga

Realicemos una prueba básica para ver si funciona.

  • Primero, intente acceder al dominio.

¡Impresionante!

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

162.158.167.174 - - [19/Dec/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, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • Permítanme cerrar Nginx en GCP y acceder a la página nuevamente.

  • Y aquí tienes Una página solicitada se sirve desde AWS.

Puedo ver que LB eliminó al miembro del grupo de GCP.

De forma predeterminada, 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

La implementación de un balanceador de carga de Cloudflare es sencilla y puede comenzar en menos de 15 minutos. Si está buscando alta disponibilidad entre múltiples centros de datos o servidores de origen, pruébelo para ver cómo funciona.

¿Te gustó leer el artículo? ¿Qué tal compartir con el mundo?