Creación de un Balanceador de carga de aplicaciones con Auto escalado en AWS

En este ejemplo vamos a mostrar como implementar un balanceador de carga usando bajo AWS.

mediante esta configuración podremos escalar horizontalmente los servidores de aplicaciones y así aumentar el rendimiento, disminuir la latencia y proporcionar tolerancia a fallar.

Anteriormente vimos como montar un balanceador de carga la cual contaba con dos subnet publicas y un balanceador.  En esta ocasión vamos a complicar un poco mas y contaremos con cuatro subnet, un balanceador y dos nat gateway.

 

Diagrama de red:

 

 

Configuración de red:

 

VPC
Name tag: RedOrbita VPC
IPv4 CIDR block: 10.200.0.0/20

 

Subnet
Name tag: Public Subnet 1
IPv4 CIDR block: 10.200.0.0/24
Name tag: Public Subnet 2
IPv4 CIDR block: 10.200.1.0/24
Name tag: Public Private 1
IPv4 CIDR block: 10.200.10.0/24
Name tag: Public Private 2
IPv4 CIDR block: 10.200.11.0/24

 

Route TabLE
Destino: 0.0.0.0/0
Target: Internet Gateway

Comenzamos con el despliegue de la infraestructura

Creamos la VPC:

Para desplegar un nuevo servidor nos tenemos que ir a Service > VPC > Your VPCs > Create VPC

 

Creamos las dos subnet publicas:  Services > VPC > Subnets > Create Subnet

 

 

Generamos el Internet Gatewa: Services > VPC > Internet Gateway > Create Internet Gateway

 

 

Atachamos el Inernet Gateway a la VPC. Seleccionamos el Internet Gateway creado > Actions > Attach VPC

Seleccionamos la VPC creada anteriormente.

Configuramos el Security Group con los permisos correspondientes: Service > VPC > Security Group > Create Security Group y una vez creado en la parte inferior creamos las reglas correspondientes

Creamos la tabla de rutas: Service > VPC > Route Tables > Create Route Tables. una vez creada nos vamos a Routes y configuramos las rutas necesarias:

 

Creamos el ROL: Service > IAM > Role > Create Role > Seleccionamos EC2

Siguiente

 

A continuación creamos dos Nat Gateway: Service > VPC > Nat Gateway > Create Nat Gateway

 

Generamos dos instancias en zonas diferentes, para no alargar este tutorial  no voy a mostrar como desplegar una instancia, para ello podéis verlo en el siguiente enlace:

Desplegar una maquina virtual en AWS

 

Una vez generado las dos instancias en las diferentes subnets vamos a crear el balanceador de carga, para ello nos vamos a:

Services > EC2 > Load Balancers > Create Load Balancer

 

Seleccionamos la opción Application Load balancer (En el caso que queramos realizar un balanceo de capa 7)

 

Asignamos un nombre, protocolo por el cual realizara balanceo de carga (en mi caso solo por el puerto 80) y seleccionamos las dos subnets privadas creadas anteriormente

Siguiente…

Configuramos el Security Group

Aquí podemos configurar la comprobación del estado del balanceo de carga, en mi caso lo dejo por defecto.

Seleccionamos las instancias y damos a: Add to registered

Nos muestra un breve resumen de la configuración realizada. Create!

Una vez creado el balanceador copiamos el DNS name del balanceador y accedemos varias veces a la misma URL. si todo salio correctamente debería balanceador a las diferentes instancias.

Antes de configurar el auto escalada creamos la AMI de donde se va a nutrir

Crear AMI en AWS

Una vez Creado la AMI y comprobado que funciona correctamente el balanceador procedemos a configurar el auto esclado: Service > EC2 > AUTO SCALING > Lauch Configurations > Create Auto Scaling

Se nos abre el asistente de configuración, Siguiente.

Seleccionamos el AMI creado anteriormente.

Procedemos a configurar la instancia

Comienza el asistente de configuración del auto-scaling, En el debemos seleccionar nuestra VPC y las Subnet privadas.

En Avanced Details seleccionamos el check de Load Balancing

Creamos las alarmas para  para aumentar o disminuir el numero de instancias dependiendo la carga

Creamos la alarma para que reduzca el tipo de instancias en el caso

 

Quedaría de la siguiente forma las dos alarmas configuradas:

Creamos la notificación

Configuramos el tag

Nos muestra un breve resumen

 

Si ahora nos vamos a Instancias podemos observar como empieza a desplegar instancias:

 

 

Solo nos faltaría realizar una prueba de estrés para ver si funciona correctamente las alarmas que hemos configurado.

:wq!

2 comentarios en “Creación de un Balanceador de carga de aplicaciones con Auto escalado en AWS”

  1. Hola, de qué forma puedo subir mi código desde un SVN a todas las instancias balanceadas.
    Osea que los cambios se actualicen en las instancias que están running y las proximas que el balanceados pueda crear. Buen articulo. Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *