Teniendo un blog que trate sobre CloudAdmins tendríamos que hablar algún día de aspectos técnicos de la nube más utilizada actualmente, Amazon EC2. Quería compartir en el blog una recopilación de información básica de la utilización del AutoScaling y Elastic Load Balancing de Amazon. Para muchos redundante para otros quizás se encontrarán con algunos detalles importantes.
Buscando por la red hemos encontrado buenos vídeos con ejemplos interesantes uno es :
- Auto Scale with Amazon Elastic Compute Cloud (EC2) http://www.youtube.com/watch?v=ainDIPzVM84 15 minutos bien resumidos
Otro mucho más largo:
- Elastic load balancing and auto-scaling. 1h30 min Video explicado con una implementación propia:
A talk by Muharem Hrnjadovic (@al_maisan) about elastic load balancing and auto-scaling of EC2 machines on Amazons AWS.
Video Parte 1 http://www.youtube.com/watch?v=T6BOxtioCmE
Video Parte 2 http://www.youtube.com/watch?v=iHNLDEi6IO0
Video Parte 3 http://www.youtube.com/watch?v=IqE0V0UTDis
Las diapositivas se pueden descargar de: https://github.com/zhgeeks/presentations/tree/master/2012-May-15
Y el código utilizado de la demo está en https://github.com/zhgeeks/presentations/tree/master/2012-May-15/code
Aunque si no tenéis tiempo de ver los vídeos también hay muchos tutoriales explicativos de lo mismo:
- http://kkpradeeban.blogspot.com.es/2011/01/auto-scaling-with-amazon-ec2.html
- http://xorcode.com/2011/03/27/auto-scaling-with-ec2/
- http://www.cardinalpath.com/autoscaling-your-website-with-amazon-web-services-part-2/
Pero tened en cuenta que Amazon cuenta con muy buena documentación ( http://docs.amazonwebservices.com/AutoScaling/latest/GettingStartedGuide/ | http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/SvcIntro.html) igual que CISCO tiene buena documentación de su hardware.
Una cosa que me ha parecido interesante es encontrarme con un recopilatorio de las métricas que cogen en el Cloud Watch de Amazon
Que monitorizar? AWS CloudWatch nos permite monitorizar el rendimiento de diferentes servidores EC2 con métricas en tiempo real como:
- CPU Utilization (%), Memory Utilization (%), Network Out Utilization (MB), Memory Used (MB), Memory Available (MB), Swap Utilization (%), Swap Used (MB), Disk Space Utilization (%), Disk Space Used (GB), Disk Space Available (GB) … Lista completa:http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html#ec2-metricscollected
Aunque también se pueden customizar, por lo tanto que variables customizadas podríamos coger? Con el CloudWatch a parte de dar información externa de la máquina virtual como Utilización CPU, Memoria, Swak, Disco, etc. ( http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html#ec2-metricscollected ) también puedes crear tus métricas customizadas internas de Apache, Nagios o lo que encuentres mejor…. (http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html | http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html) Por lo tanto esta combinación puede ser una buena idea. Aunque terminas dependiendo de Amazon.
Si a parte de escalado hacemos balanceo aquí hay un link explicativo de las diferentes arquitecturas de escalado dependiendo de nuestras necesidades: http://harish11g.blogspot.com.es/2012/02/elastic-load-balancing-aws-deployment.html