[TIL] Airflow의 다양한 고급 기능과 CI / CD 환경에 대해 학습 (4)

이원진·2023년 7월 3일
0

데브코스

목록 보기
54/54
post-thumbnail

학습내용


  1. 프로덕션을 위한 Airflow 환경설정

  2. Airflow 로그 파일 삭제

  3. Airflow 메타데이터 백업

  4. Airflow 대안

1. 프로덕션을 위한 Airflow 환경설정


  • DB sqlite에서 PostgreSQL or MySQL로 변경

    • 주기적으로 백업되어야 함

    • airflow.cfg의 core section에 sql_alchemy_conn 사용

  • Authenticaion 활성화 및 비밀번호 강화

    • Airflow 2.0부터는 Authentication default로 활성화

    • VPN 뒤에 위치시키는 것을 권장

  • 로그와 로컬 데이터 사용을 위해 disk volume 확장

  • 주기적으로 데이터 cleanup

    • Shell Operator 기반 DAG 사용 가능

  • Scale Up에서 Scale Out으로 변경

    • Cloud Composer(GCP), MWAA(AWS)와 같은 클라우드 Airflow 사용 혹은 Docker / Kubernetes 사용

  • Airflow 메타데이터 DB 백업

    • Variable, Connection 백업

  • Health-check 모니터링 추가


2. Airflow 로그 파일 삭제


  • 로그 파일의 크기가 작지 않기 때문에 주기적으로 삭제하거나 S3 등에 백업해야 함

  • /var/lib/airflow/logs, /var/lib/airflow/logs/scheduler에 각기 다른 로그가 기록됨

  • docker-compose로 실행한 경우, logs 폴더가 host volume 형태로 유지

    volumes:
        - ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs

3. Airflow 메타데이터 백업


  • 메타데이터도 주기적으로 백업 권장

  • AWS RDS와 같이 외부에 존재하는 DB의 경우, 해당 위치에서 주기적으로 백업

  • Airflow와 같은 서버에 존재하는 DB의 경우, DAG를 사용해 S3 등에 주기적으로 백업


4. Airflow 대안


  • Prefect

    • Open Source

    • Airflow와 상당히 흡사하며 좀 더 가벼움

    • 데이터 파이프라인을 동적으로 생성할 수 있는 장점

  • Dagster

    • Open Source

    • 데이터 파이프라인과 데이터를 동시 관리 가능

  • Airbyte

    • Open Source

    • 코딩 툴보다는 Low-code 툴에 가까움


메모



0개의 댓글