Configurar un Elastic Load Balancer (ELB) en AWS

Cuando tenemos sitios WEB con mucho tráfico, es probable que con un solo Webserver no tengamos suficiente y tengamos que repartir la carga entre diferentes servidores. Esto lo haremos con un balanceador de carga.

Balanceadores de carga y grupos de autoescalado en Amazon AWS

Es decir:

  • Asignamos una IP pública al balanceador de carga.
  • Configuramos el balanceador para que reparta el tráfico entre ambos servidores WEB.
ELB Esquema balanceador de carga
Esquema de balanceador de carga

A modo de ejemplo, he configurado un Webserver en la instancia que tenemos arrancada actualmente:

ELB Webserver 1
Webserver que muestra el mensaje «Hola mundo 1»
ELB Webserver test

A continuación, clonaré la instancia para crear el segundo Webserver.

EC2 Instancia clonada

Modificamos el fichero index.html del segundo Webserver para que indique que el servicio se da desde éste.

ELB Webserver 2
Webserver que muestra el mensaje «Hola mundo 2»

No hay que olvidarse de asociar el grupo de seguridad DMZ, que creamos con anterioridad, a esta instancia para tener acceso al segundo Webserver por HTTP.

EC2 Asignar grupo de seguridad 1

Finalmente, accedemos al Webserver 2.

ELB Webserver 2 1

A continuación, configuramos el balanceador de carga que va a repartir el tráfico entre ambos servidores WEB.

ELB Crear balanceador de carga 1

Para este ejemplo, usaremos el de tipo HTTP/HTTPS:

ELB Crear balanceador de carga 2
ELB Crear balanceador de carga 3
ELB Crear balanceador de carga 4
ELB Crear balanceador de carga 5
ELB Crear balanceador de carga 6
ELB Crear balanceador de carga 7

Ya tenemos creado el balanceador de carga, el cual, tiene asociado automáticamente un nombre público:

ELB Balanceador de carga creado

A continuación, vamos a probarlo:

ELB Testeo balanceador de carga 1

Voy a parar ahora el webserver 2:

Apache Parar webserver

Esperamos unos segundos a que el balanceador se dé cuenta de que está caído y volvemos a probarlo:

ELB Testeo balanceador de carga 2

Hacemos la misma prueba de acceso con el otro Webserver:

Apache Parar segundo webserver
ELB Testeo balanceador de carga 3

IMPORTANTE:

Es importante que chequeemos una URL concreta. De lo contrario, si solamente ponemos el path “/”, el estado de salud saldrá como “unhealty”, aunque el servicio esté levantado. Ejemplo:

ELB URL salud 1
URL de testeo de salud del balanceador
ELB Estado de salud

Por último, comentar que con el servicio de DNS Route53 podremos asignar el nombre del balanceador a un dominio público de Internet. Ejemplo (Route53):

Route53 Asignar balanceador a alias

Para resumir todo el proceso anterior:

  • Hemos creado dos webservers con dos mensajes distintos.
  • Hemos creado un balanceador que apunta a los dos webservers para repartir la carga entre ellos.
  • Cuando hemos parado cualquier webserver, hemos seguido accediendo al servicio WEB apuntando al nombre público de DNS del balanceador.

Asignación de un certificado SSL a un balanceador

En el apartado de SSL se explica cómo subir un certificado personalizado. Si queremos utilizar este certificado en el balanceador, crearemos un nuevo listener HTTPS que utilice el certificado que hemos subido.

El nombre del listener tiene que ser el mismo que la URL a la que apunta el certificado.

ELB Crear listener HTTPS

Te puede interesar

COMPÁRTEME

Deja un comentario