에어플로우 환경 설정 관련 고려사항
- airflow.cfg
- 에어플로우의 환경설정 파일입니다.
- /var/lib/airflow/airflow.cfg 해당 경로에 위치합니다.
- 환경설정의 변경은 웹 서버 및 스케줄러를 다시 시작할 때 반영됩니다.
- dag_dir_list_interval : dags_folder를 Airflow가 얼마나 자주 스캔하는지 명시합니다(초 단위, default : 300)
- DAGs 폴더
- [core] 섹션의 dags_folder가 반드시 DAG들이 있는 디렉토리가 되어야합니다.
- Airflow Database
- 에어플로우의 메타데이터 데이터베이스는 기본적으로 sqlite을 사용합니다.
- 다만 추후 확장을 위해 보통은 postgresql로 사용합니다.
- 이 데이터베이스는 주기적으로 백업되어야하며, 일정 수준이 되면 메타 db를 삭제하는 과정도 필요합니다.
- 생각보다 메타데이터의 크기가 굉장히 커질 때가 많아서, 보통 s3로 백업하거나
- aws rds를 사용할 경우엔, aws의 스냅샷(백업) 기능을 활용합니다.
- LocalExecutor
- Executor는 airflow.cfg에서 설정할 수 있습니다.
- Single Server를 사용할 경우 -> SequentialExecutor이나 LocalExecutor를 사용합니다.
- Cluster로 사용할 경우 -> SequentialExecutor, CeleryExecutor, KubernetesExecutor를 사용합니다.
- 암호
- airflow 2.0부터는 기본적으로 웹UI의 로그인을 기본적으로 설정합니다.
- 이는 이전 해킹 관련 이슈 때문에 나온 것인데, 보통 실무에선 VPN 뒤쪽에 AIRFLOW 웹 UI를 놓고, PUBLIC 웹에선 들어오지 못하게 하는 게 일반적입니다.
- 이에 더불어서, 강력한 암호를 사용하는 것도 필요합니다.
로그 파일 관련 고려사항
에어플로우의 로그 파일은 생각보다 눈덩이처럼 불어나는 경우가 많은데, 이 로그파일 관리를 해줘야합니다.
- 로그파일 경로
- /dev/airflow/logs
- 정기적으로 로그데이터를 정리해줘야합니다.
- 이를 위해서 ShellOperator 기반으로 DAG를 작성하기도 합니다.
- 로그 정리 Dag는 추후 포스팅에 업데이트 하겠습니다.
ScaleUp 관련 고려사항
Dag가 많아지고, 서비스가 확장되면서 각 Dag의 환경이나 로그, 메타데이터 또한 다양해지고 커질 수 있습니다. 이를 효과적으로 관리하기 위해서 Cloud Composer, MWAA, Azure의 Data Factory Managed Airflow를 사용할 수도 있습니다.
클라우드 서비스를 활용하면 airflow 메타데이터 백업을 보다 쉽게 할 수도 있고, Variables를 연결하고 백업할 수 있습니다. 다만 비용문제는 따릅니다....
이 외에도, airflow의 상태를 점검할 수 있는 HealthCheckApi를 활용할 수도 있고, devops팀과 연동해서 모니터링 툴에 Airflow api를 연동할 수도 있습니다.(Data Dog, Grafana)
'데이터 엔지니어링 > 실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트' 카테고리의 다른 글
[6주차] API & Airflow 모니터링 (0) | 2023.05.07 |
---|---|
[6주차] AIRFLOW SLACK 연동(파이프라인 에러메시지 받기) (0) | 2023.05.07 |
[6주차] DOCKER & K8S & DBT (0) | 2023.05.07 |
[5주차] Airflow + Redshift로 ELT 구현하기 (0) | 2023.05.07 |
[5주차] Airflow BackFill(Incremental Update, execution_date) (0) | 2023.05.07 |