Airflow.cfg 관련 문제
DAGs 폴더는 어디에 지정되는가?
airflow.cfg (line 2 ~ 4)
- section : core
- key : dags_folder
# The folder where your airflow pipelines live, most likely a
# subfolder in a code repository. This path must be absolute.
dags_folder = /opt/airflow/dags
설명
airflow.cfg의 최상단을 보면 core 섹션의 dags_folder가 있다. 현재 /opt/airflow/dags로 지정돼 있고, dags의 내부 디렉터리에 DAG가 위치하게 된다. 또한 절대 경로로 지정해줘야 한다.
새로운 DAG 생성 시 Airflow에서 알 수 있도록 스캔 주기를 결정해 주는 키의 이름은?
airflow.cfg (line 978 ~ 979)
- section : scheduler
- key : dag_dir_list_interval
- default : 300 sec (5 min)
# How often (in seconds) to scan the DAGs directory for new files. Default to 5 minutes.
dag_dir_list_interval = 300
설명
새로운 DAG를 생성하면 기본적으로 5분마다 새로운 DAG를 확인할 수 있도록 스캔한다. DAGs 디렉터리를 더 자주 스캔하고 싶다면, dag_dir_list_interval 값을 더 낮은 값으로 변경하면 된다.
Airflow를 API 형태로 외부에서 조작하고 싶다면 어느 섹션을 변경해야 하는가?
airflow.cfg (line 461 ~ 464)
- section : api
- key : auth_backends
- default : airflow.api.auth.backend.session
# Comma separated list of auth backends to authenticate users of the API. See
# https://airflow.apache.org/docs/apache-airflow/stable/security/api.html for possible values.
# ("airflow.api.auth.backend.default" allows all requests for historic reasons)
auth_backends = airflow.api.auth.backend.session
설명
DAG는 Worker에서 동작하고, Airflow REST API 서버는 Webserver에서 동작한다. DAG에서 Airflow REST API를 호출하고 싶다면, Worker에서 Webserver로 REST API 내부 호출이 가능해야 한다. auth_backends의 값을 airflow.api.auth.backend.basic_auth로 변경하면 Pod 간 Airflow REST API를 내부 호출을 할 수 있다.
Variable에서 변수의 값을 Encrypted 되기 위한 키워드는?
Variable의 key로 지정하면 value가 암호화되는 키워드는 다음과 같다.
- password
- secret
- passwd
- authorization
- api_key
- apikey
- access_token
airflow.cfg 파일을 반영하기 위한 명령어는?
airflow.cfg를 수정 후 변경 사항을 실제로 반영하기 위해서는 airflow 관련 서비스(Web server, Scheduler, Worker)를 재시작해야 한다.
Docker Compose
Doker Compose를 사용하여 Airflow를 실행 중이라면, 전체 서비스를 재시작할 수 있다.
docker-compose down
docker-compose up -d # -d : 백그라운드에서 실행
EC2
EC2 인스턴스에서는 systemctl 명령어를 사용해 서비스를 재시작할 수 있다.
sudo systemctl restart airflow-webserver
sudo systemctl restart airflow-scheduler
Metadata DB의 내용을 암호화하는 데 사용되는 키는?
airflow.cfg (line 70 ~ 71)
- section : core
- key : fernet_key
# Secret key to save connection passwords in the db
fernet_key =
설명
Airflow에서 Metadata DB의 내용을 암호화하는 데 사용하는 키는 fernet_key이다. 이 키는 데이터를 암호화 및 복호화할 수 있으므로 안전하게 관리돼야 하며, 손실되거나 변경되면 암호화된 데이터를 복호화할 수 없다.
Reference
'[프로그래머스] 데이터 엔지니어링 데브코스 3기 > 숙제' 카테고리의 다른 글
[숙제 - 52일 차] 활성화된 DAG 찾기, config API 활성화, variables API (0) | 2024.06.04 |
---|---|
[숙제 - 51일 차] mau_summary, channel_summary를 config로 옮기기 (0) | 2024.06.03 |
[숙제 - 41일 차] 데이터 파이프라인 실습 코드 문제점 해결하기 (0) | 2024.05.20 |
[숙제 - 33일 차] S3 -> Redshift, COPY 명령어로 데이터 적재하기 (2) (0) | 2024.05.09 |
[숙제 - 32일 차] S3 -> Redshift, COPY 명령어로 데이터 적재하기 (0) | 2024.05.09 |