본문 바로가기

데이터엔지니어링

[데이터엔지니어링] Airflow 실습(1)

저번 게시물에서는 Putty를 통해서 EC2에 접속하는 방법까지 정리를 했는데,

오늘부터는 EC2에서 Airflow 실습을 진행할 것이다

 

1. 가상환경 만들기

가상환경을 사용하면 장점은 Host 환경과 별도로 각각 필요한 Python 버전을 관리하고, 필요한 특정 버전의 라이브러리를 관리할 수 있게 해준다.

Airflow를 위한 가상환경을 만들어보자!

sudo apt-get install virtualenv
virtualenv airflow

명령어를 통해서 Airflow를 설치할 가상환경을 만들어준다. (중간에 무슨 이상한 경고 문구 뜨는데 그냥 다 엔터 침)

cd airflow
source ./bin/activate
sudo apt-get install python3.11
sudo apt install python3-pip

2. Airflow 설치

export AIRFLOW_HOME=~/airflow
export AIRFLOW_VERSION=2.7.3
export PYTHON_VERSION=3.11

CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

export 명령어를 통해 환경변수를 설정한 뒤, Airflow를 설치해줍시다!

3.DB 초기화

DB는 Airflow의 dag와 Task등을 관리하기 때문에 맨 먼저 초기화를 해줍니다.

airflow db init

 

4.계정 생성

다음으로 Airflow 사용자 계정을 하나 만들어줍니다.

airflow users create \
    --username admin \
    --firstname sangjin \
    --lastname han \
    --role Admin \
    --email eu2525@example.org

계정 생성 마지막에 비밀번호를 입력하라고 나옵니다.

이때 비밀번호를 설정해주면 계정 생성이 완료됩니다.

 

5. 실행

이제 airflow webserver를 실행시켜서 airflow web ui를 확인해봅시다.

저는 EC2를 사용했기 때문에 localhost를 사용하면 안됩니다.

- {EC2 인스턴스의 퍼블릭 IPv4}:8080 을 통해 접속합니다.

만약 오류가 발생했다면 EC2의 퍼블릭 IP로 접근을 했는지와 EC2에 8080포트를 열어뒀는지 확인하시면 됩니다!

이런식으로 로그인 화면이 나오면 방금 생성한 계정으로 로그인을 진행합니다. (username : admin)

로그인 후 화면

 

여기까지 적고 다음 게시물은 Airflow를 통해서 실제 스케줄링 하는 예시를 적어보겠습니다!