Encendido y Apagado de maquinas en AWS

Dado que Amazon nos va a cargar costes por cada hora (o fracción) que esté levantada una máquina, es posible conseguir un importante ahorro de costes manteniendo nuestras máquinas operativas solo cuando son necesarias.

Encendido y Apagado

La forma más simple de encender o apagar una máquina es desde la propia consola web de Amazon EC2 https://aws.amazon.com/console. Sin embargo la consola no nos permite establecer ningún tipo de encendido o apagado programado, para ello utilizamos las siguientes opciones.

Scripts

Mediante un script de Amazon Command Line http://docs.aws.amazon.com/cli/latest/ es posible lanzar el encendido de una maquina EC2.

Por ejemplo un script CMD desde Windows para levantar una instancia de maquina EC2 podría ser el siguiente:

@mode con cols=150
@echo *******************************************
@echo * START de instancia AWS EC2
@echo *******************************************
@echo -------------------------------------------
@echo SHOW INSTANCES AT START:
@echo -------------------------------------------
@echo %date% %time%
call ec2-describe-instance-status -A -H
@echo -------------------------------------------
@echo START INSTANCE i-7e496098 Tomcat
@echo -------------------------------------------
call ec2-start-instances i-7e496098
@echo -------------------------------------------
@echo SHOW INSTANCES NOW:
@echo -------------------------------------------
call ec2-describe-instance-status -A -H
@echo -------------------------------------------
@echo SHOW VOLUMES NOW:
@echo -------------------------------------------
call ec2-describe-volumes -H
@echo %date% %time%
@echo *******************************************
@echo * END
@echo *******************************************

Este script se puede programar mediante el cron de una máquina para que se lance en el horario deseado de encendido.

Servicio de un tercero

Existen diversos servicios de terceros que pueden realizar el encendido y apagado de nuestras máquinas. De esta forma evitamos tener que contar con una máquina corriendo donde programar nuestros scripts. Uno de ellos es Skeddly

Amazon AWS

Utilizar el CRON de la propia máquina

Este mecanismo solo es válido para el apagado y se basa en añadir una tarea de apagado en el propio CRON de la maquina a apagar.

Por ejemplo la siguiente entrada en el CRON de Linux apaga la maquina todos los días a una hora concreta.

# m h  dom mon dow   command
#Apagado
#Todos los dias a las 19:50
50 19 * * * /sbin/shutdown -h now

http://www.taringa.net/post/linux/7152247/Una-guia-de-crontab.html

Configuración en QUERECON AWS

Las maquinas se arrancan mediante Skeddly. Las maquinas se apagan mediante tareas en su propio CRON.

De esta forma está configurado el siguiente horario de servicio:

Costes

Para una maquina t2.micro en EU-Irlanda el coste de ejecución es de 0,014$/hora. Una maquina encendida las 24 horas, 365 días al año, sería un coste de 122,64$.

Para un año completo, tomando 12 meses, 53 semanas anuales, de las que 9 serían con horario de verano, sería un total de 39,54$. Lo que supone un ahorro del 67%.

A estos costes de ejecución habría que sumar los de almacenamiento aprovisionado, que no varían si la maquina está encendida o no, y los de trasferencias de datos que van a depender del uso que sé a la maquina y no del tiempo que esté encendida

Por ejemplo, para un disco EBS de 8Gb con un snapshot , dado que el precio de alojamiento EBS General Purpose es de 0,11$ por GB-mes, habría que añadir 1,76$ mensual.

https://aws.amazon.com/es/ec2/pricing/