• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    해결됨

docker 폴더 관련 질문

23.12.29 00:39 작성 조회수 100

0

안녕하세요

좋은 강의 감사드립니다.

 

섹션 7 custom operator 실습(마지막 강의) 16:11 부분에 보시면요

폴더 구조를 아래와 같이 만들어놓으셨더라고요

 

폴더구조.PNG

 

조금 이해가 안되는게, 왜 dags 폴더를 airflow 바깥에도 만들어놓시고 안에도 만들어놓으신거죠?

logs는 또 airflow 폴더 밖에 있고요.

 

강의 16:16 에 보면, dags는 airflow 안에 있는 것을 사용하고 계신것 같은데, (2) airflow 밖에 있는 dags 폴더를 만드신 이유, 그리고 (2) 왜 logs 폴더는 dags, plugins 와 다르게 airflow 밖에 만드셨는지 가 궁금합니다.

vhfej.PNG

답변 1

답변을 작성해보세요.

1

안녕하세요 nathan 님

WSL 홈 디렉토리에 있는 dags, logs, plugins 폴더는 airflow 처음 설치시 가이드대로 진행하다보면 mkdir 명령을 통해서 만들어지는 디렉토리입니다.

 

반면 홈디렉토리에 있는 airflow 디렉토리는 git clone을 통해 만들어진 디렉토리입니다.

그리고 git pull을 통해 $HOME/airflow 디렉토리안에 우리가 만든 dags, plugins 등의 파일들이 저장되게 되죠.

따라서 $HOME 아래의 dags와 plugins, logs 폴더는 삭제해도 됩니다.

그리고 $HOME/logs 폴더 대신 $HOME/airflow/logs 폴더를 사용하도록 yaml 파일을 변경하시면 됩니다.

 

nathan님이 헷갈리신 이유도 충분히 이해가 갑니다 ^^

git을 통해서 우리가 만들고 있는 대상은 dags, files, plugins 디렉토리인 반면, logs 디렉토리는 git으로 배포하는 대상이 아니기 때문에 logs 디렉토리는 $HOME/logs 로 둔거에요.

 

사실 실제 현업에서는 git에 올린 대상을 서버에 배포할 때에는 jenkins같은 배포 도구를 별도로 이용합니다.

jenkins같은 배포 도구를 이용하면 우리가 git push 했을 때 필요한 작업들이 자동적으로 이뤄지도록 도와줍니다. (아래 작업들은 보통 shell 명령으로 직접 작성하고, 당연히 커스터마이징 가능합니다)

  1. 배포할 대상 서버에 있는 디렉토리를 백업

  2. 배포할 파일에 대한 전처리 작업(개발/운영 정보에 대한 반영)

  3. 배포할 디렉토리 지정

등의 작업을 세밀하게 지정할 수 있습니다.

지금 실습하고 있는 환경에 예시로 설명하자면

$HOME/dags 디렉토리는 $HOME/dags.old 로 백업

$HOME/plugins 디렉토리는 $HOME/plugins.old 로 백업

$HOME/files/sqls 디렉토리는 $HOME/files/sqls.old 로 백업

 

개발/운영 서버로 구분되어 있다면 파일 내 접속정보나 계정, 경로 등을 개발 or 운영에 맞게 치환 후

$HOME/dags 디렉토리로 git의 airflow/dags 디렉토리 배포

$HOME/plugins 디렉토리로 git의 airflow/plugins 디렉토리 배포

$HOME/files/sqls 디렉토리로 git의 airflow/files/sqls 디렉토리 배포

 

등의 작업을 입맛에 맞게 구성하게 되요.

지금 하고있는 실습에서는 jenkins 같은 배포툴을 별도로 사용하지 않고 $HOME/airflow 디렉토리 밑으로 단순히 git pull 받고 있는 상황이라 이 부분 감안하시면 되겠습니다.

 

이해 되셨을까요?