TITEDIOS 편한 코딩

[MLOps] 1강 - 아키텍처 소개 및 환경 준비(Airflow Multi-Node System 구축 가이드 및 사례) 본문

MLOps

[MLOps] 1강 - 아키텍처 소개 및 환경 준비(Airflow Multi-Node System 구축 가이드 및 사례)

TitediosKW 2024. 12. 10. 19:00
반응형

목차

  1. 목표
  2. 환경 준비
  3. 구축할 전체 환경의 동작 흐름
  4. 결론

Apache Airflow는 워크플로우를 작성, 스케줄링, 모니터링하는 데 널리 사용되는 오픈소스 툴입니다. 이번 시리즈에서는 Airflow Multi-Node 시스템을 구축하는 과정을 다룹니다. 첫 번째인 1강에서는 전체적인 아키텍처와 환경을 준비하는 방법에 대해 설명함으로써 마음의 준비를 하겠습니다.


1. 목표

Airflow Multi-Node 환경을 VirtualBox와 Rocky Linux 9을 사용해 구축합니다. 이 환경은 다음과 같은 구조를 가지게 됩니다.

아키텍처 구성:

  • Scheduler Node(VM1):
    • 워크플로우를 스케줄링하고 DAG를 관리.
    • Web UI를 통해 사용자가 DAG를 실행하고 상태를 확인.
  • Worker Node(VM2):
    • 실제 작업을 실행.
    • CeleryExecutor와 Redis를 활용해 스케줄링된 작업을 분배받아 실행.

주요 컴포넌트:

  • Airflow: 워크플로우 오케스트레이션 도구.
  • Redis: CeleryExecutor의 메시지 브로커.
  • PostgreSQL: Airflow의 메타데이터 데이터베이스.
  • CeleryExecutor: 다중 워커 노드 실행을 지원하는 분산 실행기.
반응형

2. 환경 준비

VirtualBox 및 VM 설정

Airflow의 Multi-Node 환경을 구성하기 위해 VirtualBox를 사용하여 2개의 가상 머신(VM)을 생성합니다.

필요한 도구 설치

  • VirtualBox: VirtualBox 다운로드 페이지에서 설치.
  • Rocky Linux 9 ISO: Rocky Linux 공식 웹사이트에서 최신 ISO 파일 다운로드.

VM 생성

(1) 기본 VM 설정:

  • VM 이름: airflow-scheduler, airflow-worker
  • 운영체제: Rocky Linux 9 (64-bit)
  • CPU 및 메모리:
    • Scheduler: 2 CPU, 4GB RAM
    • Worker: 2 CPU, 2GB RAM
  • 스토리지: 30GB 이상 (동적 할당 가능)

(2) 네트워크 설정:

  • 네트워크 어댑터: VirtualBox에서 네트워크 > 네트워크 어댑터를 Nat network 네트워크로 설정.

Rocky Linux 설치

두 VM에 Rocky Linux 9를 설치합니다.

주요 설치 단계:

  • ISO 파일 연결: VirtualBox 설정에서 다운로드한 Rocky Linux ISO를 CD/DVD 드라이브에 연결.
  • Installation: 기본 설치로 OS를 구성.
  • 네트워크 설정: nmcli 등을 사용하여 IP를 고정으로 설정
    • airflow-scheduler: 192.168.56.101(예시)
    • airflow-worker: 192.168.56.102(예시)

미래를 살짝 보자면 아래와 같은 화면처럼 구성될 것입니다.

Multi-node 구축 예시


3. 구축할 전체 환경의 동작 흐름

Multi-node에 Airflow를 설치하여 동작을 하게 되면 아래와 같은 동작을 하게 됩니다. 아직 자세히 모르겠지만 이러한 것들이 있다는 것 정도만 알아두시면 나중에 실습을 이어나갈 때 도움이 많이 되실 것입니다.

동작 개요

  • Scheduler Node(Master Node)
    • Web UI와 스케줄러 역할을 담당.
    • DAG의 실행 상태를 PostgreSQL DB에 기록.
    • 작업을 CeleryExecutor를 통해 분배.
  • Worker Node
    • CeleryExecutor를 통해 작업을 수신.
    • DAG의 특정 작업(Task)을 실행하고 결과를 Redis로 반환.
  • 중앙화된 데이터베이스
    • PostgreSQL은 모든 Airflow 메타데이터를 저장.
  • 메시지 브로커
    • Redis가 작업 메시지를 스케줄러와 워커 간 전달.

결론

이번 포스팅에서는 Multi-Node 환경의 전반적인 아키텍처와 환경 준비 과정을 살펴보았습니다. 이번 포스팅에서는 어떤 Virtualbox로 어떤 환경을 구성하게 되는지 그리고 Airflow가 어떤 식으로 동작을 하게 되는지에 대해 가볍게 살표 보았습니다. 다음 강의부터는 실제로 설치하는 과정 각각의 기능 등에 대해 좀 더 자세하게 살펴보는 시간을 갖도록 하겠습니다. 이번 시리즈가 Airflow로 분산 처리의 강력함을 체험할 수 있는 기회가 됐으면 좋겠습니다.

 

궁금한 점이나 추가로 알고 싶은 내용이 있다면 댓글로 알려주세요!

 

도움이 되셨다면 공감 부탁드리겠습니다. 여러분의 공감이 정말 큰 힘이 됩니다.

 

감사합니다!

반응형