Auto escalado y balanceo de carga con AWS

Los grupos de auto escalado de AWS (http://aws.amazon.com/es/autoscaling/) van a permitir escalar horizontalmente un servidor web o cualquier otro servicio. En AWS podremos definir reglas que permitirán que el número de servidores que ofrecen un servicio se adapten de forma automática a las necesidades de los usuarios del servicio. En el ejemplo que vamos a ver a continuación crearemos un grupo de autoescalado para un servidor web.

Lo primero que haremos será instalar una herramienta que permita poner a prueba nuestro servidor. Podemos encontrar diferentes tipos de Herramientas de pruebas para servidores web si buscamos en Google la cadena “stress test tool http”  podemos encontrar algunos ejemplos. De entre ellos utilizaremos Siege que es una herramienta muy sencilla y que nos servirá para poner a prueba nuestro servicio web.

 

1. Crear el balanceador de carga.

load_balancer_1  load_balancer_2_2  load_balancer_3_2 load_balancer_4 load_balancer_5 load_balancer_6 load_balancer_7

2. Crear una configuración de lanzado (Launch Configuration)

auto_scaling_1 auto_scaling_2 auto_scaling_3 auto_scaling_4 auto_scaling_5 auto_scaling_6 auto_scaling_7 auto_scaling_8 auto_scaling_9 auto_scaling_10 auto_scaling_11 auto_scaling_12

3. Configuración del cliente Siege

auto_scaling_grp_29 auto_scaling_grp_30 auto_scaling_grp_31

3.2 Conexión con la instancia utilizando Putty

auto_scaling_grp_32 auto_scaling_grp_33 auto_scaling_grp_34 auto_scaling_grp_35 auto_scaling_grp_36 auto_scaling_grp_37 auto_scaling_grp_38 auto_scaling_grp_39 auto_scaling_grp_40 auto_scaling_grp_41 auto_scaling_grp_42 auto_scaling_grp_43

3.1 Instalación de Siege

auto_scaling_grp_44 auto_scaling_grp_45 auto_scaling_grp_46 auto_scaling_grp_47 auto_scaling_grp_48 auto_scaling_grp_49 auto_scaling_grp_50 auto_scaling_grp_51 auto_scaling_grp_52 auto_scaling_grp_53 auto_scaling_grp_54 auto_scaling_grp_55

4. Preparación del cliente para las pruebas de estres

http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2

C:\aws>python ez_setup.py

Código para programa php

<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
$max = $_GET['max'];

for ($x = 0; $x <= $max; $x++) {
 echo "The number is: $x <br>";
} 
?>
</BODY>
</HTML>

 

Referencias

1. Set Up a Scaled and Load-Balanced Application
http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-register-lbs-with-asg.html

2. Elastic Load Balancing in Amazon EC2-Classic
https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForEC2.html

 

Leave a Reply