Como hostear un script de Python en AWS de manera gratuita y no morir en el intento.

En la ultima semana me di a la tarea de hostear una aplicación de envió de correos informativos para la organización en la que laboro y para esto requería correr un script Python de manera automática en intervalos diferentes.

Investigando un poco me encontré con la herramienta programación de tareas de Windows la probé y no me convenció, por ciertas razones:

Por estas razones opte por hostearlo en un servidor con la capa gratuita de amazon y a la vez confiar esto al buen Linux.

El primer paso a seguir es crearnos una cuenta en Amazon para esto ingrese en la siguiente liga aws.amazon.com/es/free

Una vez en este portal y creados nuestra cuenta gratuita por 1 año, debemos de ingresar los datos personales, así como también un método de pago en caso de 1 exceder el tiempo de prueba o 2 utilizar servicios que no estén cubiertos por la capa gratuita así que OJO estar de curiosos por aquí, que el cobro llega en dólares.

Los pasos son los siguientes:

En la esquina superior izquierda buscamos la pestaña servicios, para desplegar menu.

Directamente damos clic en en la parte inferior derecha a revisar y lanzar, por ultimo extraemos la llave .pem que nos brinda la instancia para conectar vía SSH.

Si estas en Windows como yo, tendrás que descargar Putty para ingresar a nuestro servidor. este lo puedes conseguir desde su pagina oficial https://www.putty.org

Una vez descargado e instalado putty, notaremos que adicional al putty, tenemos puttyGen, este ultimo sirve para convertir el archivo .pem a .key y asi ingresarlo en nuestra configuración de putty.

Para crear la conexion a nuestro servidor realizaremos lo siguiente:

Y le damos open, si todo salio bien, tendremos ya la consola de nuestro servidor.

Ahora solo falta clonar nuestro script de python y crear las ejecuciones automaticas, para este medio utilice Crontabs

Para crear un nuevo “Job”, utilice el comando Crontab -e, ingresamos a insert mode con la letra I, e ingresamos la tarea a ejecutar.

La siguiente imagen me ayudo a comprender como programar estas tareas.

Les explico rapidamente como utilizar crontabs, digamos que me gustaria ejecutar mi tarea de 6 AM a 5 PM al primer minuto todos los dias.

Se programaría de la siguiente manera:

En crontabs utilizamos asteriscos para referirnos a cada uno de los valores disponibles, si yo fuera a utilizar asterisco en el primer espacio, la tarea se ejecutaria a cada minuto de mi rango de horas.

Podemos utilizar comas para seleccionar valores, Ejemplo, si quisiera que mi script corriera al minuto 10 y al minuto 20, se ingresaria de la siguiete manera:

10,20 * * * * python3 /home/usuario/script.py

también podemos utilizar rangos, digamos que quiero correr mi script cada minuto los primeros 5 minutos de cada hora:

1-5 * * * * python3 /home/usuario/script.py

ahora utilizamos el slash para ejecutar repetidamente un script cada cierto tiempo, digamos que quiero ejecutar mi script cada 5 minutos:

*/5 * * * * python3 /home/usuario/script.py

Por ultimo y de los mas importantes, para ejecutar el script en punto de cada hora, ejemplo a las 12 en punto de la noche utilizamos 0.

0 0 * * * python3 /home/usuario/script.py

Para finalizar con este post, para ver nuestras tareas a ejecutar usamos el comando crontab -l , si en esta guía no te quedo muy claro el como usar crontab, les recomiendo el siguiente sitio para visualizar mejor esta explicación https://crontab.guru/

, , , , ,
,

Una respuesta a “Como hostear un script de Python en AWS de manera gratuita y no morir en el intento.”

  1. Avatar de Juan Luis

    Excelete artículo mi buen dmov, Saludos desde Villagran