DEV Community

Cover image for ¿Cómo instalar AirFlow en instancia EC2 y no morir en el intento? 🤔
Andres
Andres

Posted on

¿Cómo instalar AirFlow en instancia EC2 y no morir en el intento? 🤔

En mi labor como ingeniero de datos he visto varias herramientas que me interesa conocer, pero algunas de ellas son más complicadas de utilizar localmente que otras. Una de estas herramientas es airFlow, he utilizado varios tutoriales para realizar la instalación local desde Ubuntu para Linux hasta con Docker, pero al fin en tantas búsquedas logre encontrar un paso a paso que lograr tener la instalación de una manera correcta y "sencilla".

Quiero compartir con ustedes lo que aprendí y como realizar dicha instalación.

Image description

  1. ¿Qué es Apache AirFlow?

En mis propias palabras Airflow es un poderoso orquestador y automatizador de flujos de trabajo que se convierte en una herramienta aliada para todo profesional que está vinculado al mundo de la ciencia de datos.

  1. configuración de instancia EC2 de AWS para la instalación de Apache AirFLow.

En nuestra consola de AWS buscamos el servicio de EC2 y lanzaremos una instancia con las siguientes características:

*Nombre *: ApacheAirflow
*AMI *: Ubuntu

Image description

*Tipo de instancia *: T2.medium (preferiblemente, por temas de computo, pero puedes escoger instancia t2.micro que es de la capa gratuita)

Crear Par de Claves : tipo PEM, para lograr conexión SSH

Image description

*Grupo de seguridad *: habilitado SSH, HTTP y HTTPS y TCP Personalizados, agregamos el puerto 8080

Image description

Almacenamiento: Puedes seleccionar 8 GB, para este ejemplo lo deje en 20.

Image description

Lanzamos instancia y esperamos a que esté disponible:

Image description

Ahora seleccionamos nuestra nueva instancia y nos conectaremos por medio de opción por defecto que nos da AWS

Image description

  1. instalación de prerrequisitos en instancia Ubuntu
sudo apt update

sudo apt install python3-pip

sudo apt install sqlite3

sudo apt install python3.10-venv

python3 -m venv venv


Enter fullscreen mode Exit fullscreen mode

Recuerda hacer uno por uno

Image description

Una vez instalado Python sqlite y venv, procederemos a la iniciación del ambiente en Python e instalación de librerías de ubuntu

source venv/bin/activate

sudo apt-get install libpq-dev

Enter fullscreen mode Exit fullscreen mode
  1. instalación de apache Airflow

Utilizaremos la base de datos Postgresql para el manejo de información de Airflow e iniciaremos AirFlow :

pip install "apache-airflow[postgres]==2.5.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.5.0/constraints-3.7.txt"

airflow db init

sudo apt-get install postgresql postgresql-contrib

Enter fullscreen mode Exit fullscreen mode

Image description

Ingresamos dentro de Posgres para realizar la creación de la base de datos y usuario, allí asignaremos todos los privilegios.

Image description


sudo -i -u postgres

psql

CREATE DATABASE airflow;
CREATE USER airflow WITH PASSWORD 'airflow';
GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow;

\q

logout

Enter fullscreen mode Exit fullscreen mode

Ahora ya tenemos instalado Airflow con su base de datos PostgreSQL, ahora realizaremos algunas configuración internas dentro de apache para la ejecución correcta.

cd airflow

sed -i 's#sqlite:////home/ubuntu/airflow/airflow.db#postgresql+psycopg2://airflow:airflow@localhost/airflow#g' airflow.cfg

grep sql_alchemy airflow.cfg

grep executor airflow.cfg

sed -i 's#SequentialExecutor#LocalExecutor#g' airflow.cfg

grep executor airflow.cfg

Enter fullscreen mode Exit fullscreen mode

Ahora crearemos las credenciales para el ingreso a Apache AirFlow:

airflow db init

airflow users create -u airflow -f airflow -l airflow -r Admin -e airflow@gmail.com
Enter fullscreen mode Exit fullscreen mode

Nos va a pedir una contraseña escribimos: airflow y confirmamos :

Image description

  1. Iniciar Airflow :

Con este condigo lograremos iniciar tanto el webserver y scheduler :

Image description


airflow webserver &

airflow scheduler

Enter fullscreen mode Exit fullscreen mode

Ahora si está todo listo para poder ingresar a Apache Airflow.

volvemos a nuestra consola de AWS y buscamos la instancia que acabamos de crear

Image description

Copiamos el DNS de IPv4 publica y esa URL le sumamos el puerto 8080 de esta manera :

ec2-54-152-205.compute-1.amazonaws.com:8080

Usuario: airflow
pass : airflow

Image description

y ahora tenemos Apache Airflow instalado en una instancia de EC2:

Image description

Espero que estos pasos les ayuden igual como me guio a mí en su momento.

Dejo URL en la cual me base para este proceso y créditos a Marc, un crack en esta herramienta:

https://www.youtube.com/watch?v=o88LNQDH2uI&t=619s

¡¡Gracias!!

Top comments (0)