작성 내용 및 요약

  1. 도커, 컨테이너, 이미지의 기본 개념
  2. 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_idAirflow UI 내 DAG 이름 (Python 파일명과 일치 권장)
schedule실행 주기 (분, 시, 일, 월, 요일 순)
start_dateDAG 시작 시간 (tz="Asia/Seoul" 권장)
catchup누락 구간 작업 실행 여부 (일반적으로 False)
dagrun_timeoutDAG 실행 제한 시간
tagsAirflow UI 내 태그 이름
paramsTask 공통 변수 목록

참고사이트