[Airflow] Slack을 이용한 Airflow 실습 - 1 (Docker와 Airflow 연동)

2025. 6. 24. 21:20·Data Engineering

Airflow와 Slack Webhook을 활용해 Airflow의 기능을 실습해보자.

 

파이프라인 구축에 활용되는 에어플로우

 

 

Airflow란?

Airflow는 복잡한 데이터 파이프라인을 관리해주는 오픈 소스 워크플로우 플랫폼이다. 쉽게 설명하면 데이터 엔지니어링 과정을 관리하고 자동화 해주는 툴이다. ETL과 같이 데이터를 다루는데 필요한 과정을 python 등의 코드를 통해 자동으로 실행되게 만들 수 있다. 

 

이번에 실습을 하면서 Airflow를 처음 만져보기 때문에 천천히 알아보자.

 

Airflow는 여러 컴포넌트들을 활용해 데이터 파이프라인을 관리한다. 각각의 컴포넌트는 컨테이너 안에서 동작하며 컨테이너끼리 통신하면서 파이프라인 관리 동작을 조율한다.

 

 

 

Airflow와 Docker Compose

Docker Compose는 여러 개의 컨테이너의 정보가 들어있는 설정 파일이다. 컨테이너 내의 다루고자 하는 소프트웨어의 버전 및 정보가 적혀져 있다. airflow와 관련된 Docker Compose 파일은 공식 문서에서 제공하는 다음 명령어를 통해 설치할 수 있다.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.0.2/docker-compose.yaml'

 

curl은 클라이언트에서 url을 사용해서 서버와 데이터를 송수신하는 명령어이다.

 

PostgreSQL와 Redis에 대한 정보가 적혀져 있는 컨테이너 설정파일

 

Airflow는 Scheduler, Worker, WebServer등의 컴포넌트들이 협업체계를 이루며 파이프라인을 동작시키고 관리한다. 각각의 컴포넌트들은 하나의 Docker 컨테이너 안에서 작동하게 되고, Redis가 이들의 통신을 관리한다. 

 

 

 

Docker Daemon과 Dockerfile

Docker Daemon은 Docker의 백그라운드에서 실행되는 핵심 프로그램으로, 모든 Docker 관련 작업(이미지 빌드, 컨테이너 실행, 네트워크 생성 등)을 실제로 수행한다. 데몬이 Dockerfile과 docker-compose.yaml 파일을 읽고, 나와 있는 정보대로 컨테이너를 제작한다. Dockerfile은 제작할 컨테이너의 실행설계도라 볼 수 있다.

 

Dockerfile에 code-editor를 설치하라는 명령어를 넣어준다.

 

docker-compose up -d을 통해 데이터 파이프라인에 필요한 airflow 컨테이너를 띄우면 된다. -d는 백그라운드에서 컨테이너를 띄우라는 의미로 linux or ubuntu 창이 꺼지더라도 컨테이너는 유지된다.

 

 

명령어를 실행하면 다음과 같은 모습으로 나온다.

 

  • PostgreSQL은 Airflow 파이프라인의 로그와 메타데이터를 저장한다.
  • Redis는 컨테이너들 사이의 통신을 담당한다.
  • init 컴포넌트는 초기의 컨테이너 설정을 담당한다. (init을 통해 컨테이너들의 초기화가 이루어진다.)
  • trigger는 DAG의 특정 이벤트를 감지한다.
  • worker는 DAG의 task를 수행한다.
  • Webserver는 파이프라인과 유저 사이 통신을 담당한다.
  • scheduler는 DAG의 task를 조율하고 worker에게 할당한다.

'Data Engineering' 카테고리의 다른 글

[Airflow] Slack을 이용한 Airflow 실습 - 3 (Slack Webhook)  (0) 2025.07.01
[Airflow] Slack을 이용한 Airflow 실습 - 2 (Airflow와 DAG)  (0) 2025.06.25
[데이터 파이프라인] 2. 일반적인 데이터 파이프라인  (0) 2025.06.17
[데이터 파이프라인] 1. 데이터 파이프라인 소개 및 설명  (0) 2025.06.16
[Spark] RDD는 무엇인가?  (0) 2025.03.17
'Data Engineering' 카테고리의 다른 글
  • [Airflow] Slack을 이용한 Airflow 실습 - 3 (Slack Webhook)
  • [Airflow] Slack을 이용한 Airflow 실습 - 2 (Airflow와 DAG)
  • [데이터 파이프라인] 2. 일반적인 데이터 파이프라인
  • [데이터 파이프라인] 1. 데이터 파이프라인 소개 및 설명
BestTomaTo
BestTomaTo
  • BestTomaTo
    기록보관소
    BestTomaTo
  • 전체
    오늘
    어제
    • 분류 전체보기 (36) N
      • Algorithm (8)
      • Computer Science (3)
      • Backend (3)
      • DevOps (4)
        • Kubernetes (3)
        • Docker (0)
      • Data Engineering (8)
      • Cloud (2)
      • AI (1)
      • Security (3) N
        • SK Shieldus Rookies (3) N
      • Reference (2)
      • Project (1)
      • Experience (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    3단계 모델링
    AWS
    airlfow
    홈 서버
    SQLD
    해커톤 후기
    langchain memory
    동기 프로그래밍
    langsmith
    sql 개발자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
BestTomaTo
[Airflow] Slack을 이용한 Airflow 실습 - 1 (Docker와 Airflow 연동)
상단으로

티스토리툴바