Ahorrando costos de hasta un 70% en instancias EC2
Usando los servicios de EventBridge y Lambda

¿Quizás a más de uno le ha pasado que ha dejado corriendo una instancia EC2 y olvido apagarla? 💸
Ahora imagina que tienes corriendo no 1 sino varias instancias EC2 con las que tu equipo trabaja semana tras semana, eso se traduce en 168 horas semanales, en un horario laboral digamos de unas 10 horas (LUN-VIE de 8:30 am a 6:30 pm) menos de la mitad de las horas son donde realmente se hace uso de esas instancias.

Y si te digo que podemos iniciar y detener las instancias EC2 en función de las etiquetas (tags) para ahorrar costos de hasta un 70% en instancias que solo son necesarias durante ese u otro horario laboral (utilización semanal reducida de 168 horas a ~50 horas).

Para lograr vamos a hacer uso de funciones lambda para programarlo en función de las horas de trabajo.

Pero ¿qué es Lambda?
Con serverless no necesitas aprovisionar infraestructura, ni hacer mantenimiento, ni ocuparte del autoescalado. Es altamente disponible y seguro. Serverless no solo es para computo, puede ser para base de datos, almacenamiento u otros servicios
Es una de las opciones de computo que nos ofrece AWS, en este caso una opción serverless
La unidad de escala es una función y el nivel de abstracción es un runtime
Configuramos el código para que se ejecute cuando lo necesite (a demanda) en base por ejemplo a ciertos eventos.
Su modelo de pago es por uso (ms) de acuerdo al tiempo de ejecución de la función lambda con incrementos de 1 ms

y ¿qué es EventBridge?
La versión 2 de Amazon CloudWatch Events
Facilita la creación de aplicaciones basadas en eventos a escala mediante eventos generados
Puede configurar reglas de enrutamiento para determinar a dónde enviar los datos
Cuenta con un bus de evento por defecto (en CloudWatch Events tiene solo un bus)
Puede tener buses de eventos adicionales

CRON
Cron es un programa de utilidad de Unix que se utiliza para ejecutar comandos o scripts programados.
Con una expresión cron, puede definir una regla que se active a una hora especificada de un determinado día de cada semana o mes
Las expresiones Cron tienen seis campos obligatorios, que están separados por un espacio en blanco.

¡Manos a la obra!
¿Qué necesitamos?
Crear una política y un rol de ejecución de AWS Identity and Access Management (IAM) personalizados **para la función Lambda **
Crear las funciones Lambda que detengan e inicien las instancias de EC2 en base al tag de la instancia
Probar las funciones Lambda
Crear reglas de EventBridge que desencadenen la función en un horario.
En este video junto a la comunidad de AWS Girls Chile, les explico el paso a paso de la solución 😊
