Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

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

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

Tabla de contenidos

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:

Diagrama de red 1 1

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

Selección 001

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

AWS LOADBALANCER00001

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

LoadBalancer0003

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

LoadBalancer0004

Seleccionamos la VPC creada anteriormente.

LoadBalancer0005

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

LoadBalancer0006

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

LoadBalancer0010

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

Siguiente

LoadBalancer0008  LoadBalancer0009

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

AWS LOADBALANCER00002

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

LoadBalancer0011

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

LoadBalancer0012

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

LoadBalancer0013

AWS LOADBALANCER00003

Siguiente…

LoadBalancer0015

Configuramos el Security Group

LoadBalancer0016

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

LoadBalancer0017

Seleccionamos las instancias y damos a: Add to registered

AWS LOADBALANCER00004

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

LoadBalancer0019

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.

LoadBalancer0020

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

AWS LOADBALANCER00005

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

AWS LOADBALANCER00006

Seleccionamos el AMI creado anteriormente.

AWS LOADBALANCER00007

Procedemos a configurar la instancia

AWS LOADBALANCER00008

AWS LOADBALANCER00009

AWS LOADBALANCER00010

AWS LOADBALANCER00011

AWS LOADBALANCER00012

AWS LOADBALANCER00013

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

AWS LOADBALANCER00014

En Avanced Details seleccionamos el check de Load Balancing

AWS LOADBALANCER00015

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

AWS LOADBALANCER00016

AWS LOADBALANCER00017

AWS LOADBALANCER00018

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

AWS LOADBALANCER00019

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

AWS LOADBALANCER00020

Creamos la notificación

AWS LOADBALANCER00021

Configuramos el tag

AWS LOADBALANCER00022

Nos muestra un breve resumen

AWS LOADBALANCER00023

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

AWS LOADBALANCER00024

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

:wq!

Comentarios