작성 내용 및 요약
- 도커, 컨테이너, 이미지의 기본 개념
- Airflow 작업 플로우
1. 기본 개념
도커(Docker)란?
- 컨테이너화 플랫폼으로 APP을 독립적 환경에서 실행시킬 수 있는 기술
- 경량화된 가상화 서버를 의미하며, Airflow 설치 방법 중 하나
- 각각의 App을 컨테이너(Container) 라고 함
컨테이너(Container) 가상화란?
- Host OS 커널을 사용하여 독립적인 여러 개의 컨테이너를 실행
- 기존 가상화에 비해 더 가볍고 효율적
이미지(Image)란?
- 컨테이너를 실행하기 위한 템플릿(Template)
- 객체 지향 프로그래밍 내 Class와 같이 이미지는 컨테이너 프로세스 실행 환경을 결정함
docker-compose란?
- 도커 내 여러 개의 컨테이너 설정을 한 번에 관리하기 위한 도커 확장 기술
2. 작동 원리
목표
로컬 환경에서 만든 DAG를 가상 서버의 컨테이너(Container)까지 배포
필수 라이브러리
airflow.models.dag: DAG 작성을 위함datetime,pendulum: Airflow 시간 설정을 위함
DAG 작성 예시
with DAG(
dag_id="DAG_name",
schedule="* * * * *",
start_date=pendulum.datetime(2024,1,1,tz="Asia/Seoul"),
catchup=False,
dagrun_timeout=datetime.timedelta(),
tags=["tag_name1", "tag_name2"],
params={"key1":"value1"}
) as dag:파라미터 설명
| 파라미터 | 설명 |
|---|---|
dag_id | Airflow UI 내 DAG 이름 (Python 파일명과 일치 권장) |
schedule | 실행 주기 (분, 시, 일, 월, 요일 순) |
start_date | DAG 시작 시간 (tz="Asia/Seoul" 권장) |
catchup | 누락 구간 작업 실행 여부 (일반적으로 False) |
dagrun_timeout | DAG 실행 제한 시간 |
tags | Airflow UI 내 태그 이름 |
params | Task 공통 변수 목록 |
참고사이트