airflow 10

Airflow XCOM 알아보기

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 01. Airflow XCOM이란? XCOM 은, cross communcation 의 약자로 하나의 DAG 내 task간 데이터를 주고 받고 싶을 때 사용하는 Airflow 기능이다. 이는 적은 양의 데이터에 대해서만 주고받을 때 유용하며, 데이터 프레임과 같은 큰 값을 전달하는 데에 사용하는 것은 적합하지 않다는 특징이 있다. 02. Variable과 XCOM Variable과 XCOM 은 공통점과 차이점이 존재한다. Variable XCOM 공통점 key - value 형식 구성 차이점 전역적 DAG 내에서만 통신 key-value의 형..

Airflow를 helm으로 배포해보기 - (1) 사이드카 패턴

오늘 포스팅에서는, 직접적인 helm 배포를 진행하기 전, 알아둬야 할 개념 중 하나인 사이드카 패턴에 대해 다뤄보고자 한다. 01. 사이드카 패턴이란 사이드카 패턴이란, 어플리케이션 컨테이너와 독립적으로 동작하는 별도의 컨테이너를 붙이는 패턴을 말한다. 사이드카를 형상화(?) 하면 이렇다. 이처럼, 메인 오토바이에 사이드카를 붙인 형태와 같은 패턴이 사이드카다. 이렇게 오토바이에 사이드카를 붙여 달릴 수도 있고 사이드카를 떼어서도 달릴 수 있는 형태처럼, 기본 컨테이너와 함께 하나의 컨테이너가 함께 실행될 수 있는 컨테이너 패턴을 짜는 것이 사이드카 패턴이다. 즉 pod 안에 두 개의 컨테이너가 띄워져 있는 형국인데, 이때 pod안의 컨테이너들은 동일한 volumn과 연결이 가능하다. 또한, 하나의 p..

Airflow Helm 배포 - 설치하기

공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 이전 포스팅을 통해 Helm 에 대해서 알아보았다면, 이제 직접 실습을 해 보겠다. (이전 포스팅 링크: https://eng-sohee.tistory.com/161) Airflow Helm 배포 - Helm 과 Chart 를 알아보기 Kubernetes 환경에서 Airflow를 운영할 때, 일반적으로 Helm 차트를 이용하여 배포 및 운영을 한다. 이유는, Airflow 에서 제공하는 공식 Helm 차트를 제공하기 때문이며, 이를 통해 특정 클라우드 제공 업 eng-sohee.tistory.com 목차 1. Helm 설치 2. Helm 레포지토리 추가 3. valu..

Airflow Helm 배포 - Helm 과 Chart 를 알아보기

공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. Kubernetes 환경에서 Airflow를 운영할 때, 일반적으로 Helm 차트를 이용하여 배포 및 운영을 한다. 이유는, Airflow 에서 제공하는 공식 Helm 차트를 제공하기 때문이며, 이를 통해 특정 클라우드 제공 업체에 얽매이지 않고 Airflow를 운영할 수 있다. Helm 의 장점 Helm 을 사용하면, 복잡한 쿠버네티스 기반의 애플리케이션을 쉽게 설치 가능하다. 설치뿐만 아니라, 업데이트도 간결하다. helm 차트로 하나로 묶여 있다 보니, 여러 리소스가 묶인 복잡한 소프트웨어를 동시에 관리하기 수월하여 관리가 쉽다. Helm의 단점 하지만 Helm..

Docker airflow2 커스텀 이미지 빌드 과정

앞서, 기존에 생성된 이미지만을 이용해서 airflow 를 빌드했었는데, 오늘은 airflow 이미지 자체를 직접 빌드해보도록 하겠다. 왜 직접 빌드해야 하는지에 대한 이유와 공식 문서 소개, 그리고 airflow2 image 빌드 과정을 포스팅하겠다. 목차 airflow2 커스텀 이미지 빌드의 필요성 airflow2 이미지 빌드 공식 문서 01. airflow2 커스텀 이미지 빌드의 필요성 여담이지만 회사 면접을 봤을 당시, airflow를 도커로 띄워서 작은 프로젝트를 운영해 본 경험이 있다고 말씀드렸다. 이때 사수님께서 이미지 빌드 과정에 대해서 상세히 여쭤보았던 기억이 나는데, 이때 나는 이미 빌드되어져 있는 이미지를 활용해서 운영했었다라고 대답했던 기억이 난다. 그래서, 기회가 된다면 이미지부터..

Apache Airflow 처음부터 빌드해보기 + 4

현재까지 진행한 내용을 정리하자면, 우리는 VM 안에 새로운 가상환경을 만들어 airflow를 설치했다. 앞으로 우리는 DAG 파일을 만들거고, 가장 먼저 sqlite 에서 데이터를 출력해와 테이블을 생성할 것이다. 이 작업을 함께 진행해보자. 01. DAG 생성 간단한 DAG를 생성해보겠다. Sqlite에 새로운 Table을 주기적으로 생성하는 task을 만들어 볼 것이다! 앞선 포스팅에서 생성한 dags 폴더 안에, dag명을 딴 py 파일을 생성한 뒤, 위와 같이 작성해준다. 설명은 아래와 같다. from airflow.models import DAG - DAG import from airflow.providers.sqlite.operators.sqlite import SqliteOperator -..

Apache Airflow 처음부터 빌드해보기 + 1

Airflow를 사용해본 경험은 꽤 되지만, 이는 누군가가 Docker로 사용하기 좋게 build해놓은 것을 썼기 때문에 온전히 내 것이라는 느낌이 들지 않았다. 따라서 이번 프로젝트를 진행하면서 Airflow를 처음부터 직접 설치하며 실행해보고 기초를 완전히 다져보고자 Udemy 수업을 수강하고 구글링을 하는 등 공부를 해보았다. 오늘은 지난 주 배운 내용을 온전히 내 것으로 만들기 위해 복습을 해보았다. 1. airflow란 무엇인가 https://eng-sohee.tistory.com/80 01. Airflow 개념 + Docker를 통한 Airflow 설치 01. Airflow란 무엇인가? Airflow는 에어비앤비에서 개발한 워크플로우 스케줄링 및 모니터링 플랫폼이다. 이는 동작 순서 및 방식과..

DAG 파일 생성 및 실행 + GCP(구글클라우드플랫폼) - Airflow 연동

목차 DAG 파일 생성 후 Airflow 실행 GCP(구글 클라우드 플랫폼) - Airflow 연동 01. DAG 파일 생성 후 Airflow 실행 우선적으로, docker를 연다. 이미 ※ 첫 번째 포스팅에서 컨테이너를 생성했으므로, 컨테이너를 새로 시작할 땐 시작(start)만 해주면 된다. ※ 첫 번째 포스팅 링크 docker start airflow_v1 Vim과 Procps를 설치해보자. 처음 받은 이미지에는, vi로 파일을 수정할 수 없다. 왜냐하면 위와 같은 파일이 설치가 되어있지 않기 때문이다. 또한 netstate로 네트워크 내역을 확인할 수 있도록 필요한 소프트웨어를 설치해준다. root로 접속해서 설치한다. docker exec -u root -ti airflow_v1 /bin/bas..

Airflow 개념 + Docker를 통한 Airflow 설치

01. Airflow란 무엇인가? Airflow는 에어비앤비에서 개발한 워크플로우 스케줄링 및 모니터링 플랫폼이다. 이는 동작 순서 및 방식과 같은 파이프라인을 파이썬 코드를 이용해 구성하기 때문에 동적인 구성이 가능하다. 또한 분산구조와 메시 지큐를 이용해 많은 수의 워커 간 협업을 지원하고 스케일 아웃이 가능하다. 1-1. Ariflow의 아키텍처 스케줄러 - 브로커 & 메타 DB - 여러 개의 워커 1. 스케줄러: 실행 주기가 되면 작업을 생성하고, 의존 작업이 모두 성공하면 브로커에게 넘긴다. 2. 브로커: 실행 가능한 작업(워커)들이 들어가 있는 공간 3. 워커: 실제 작업을 진행하는 주체 4. DAG, Task 등이 정의되어 있다. 1-2. Airflow를 왜 사용해야 하는가? 이는 ※전일 회..

17. 힘들지만 즐거워, 발전이 있었던 하루

오늘의 날짜: 2021년 06월 28일 01. 오늘을 회고하며 나는 현재 기업과 프로젝트를 진행 중이다. 오늘은 기업으로부터 데이터 접근 권한을 받았다. 접근 권한을 확인하며, 문제가 생겼다. 바로 어디를 가도 접근 권한을 찾을 수 없었던 것이다... 이 문제를 해결하기 위해, 새로운 구글 아이디 계정을 생성해 테스트해보기도 했다. (곧바로 '안 된다'라고 기업 관계자님께 말씀드리기보단, 내가 할 수 있는 만큼 최대한 구글링을 해서 문제를 해결하도록 노력하는 게 맞다고 생각했다. 따라서 수 시간을 구글링 하고 시도해봤지만 결국엔 되지 않았다.) 관계자님께 말씀을 드렸고, iam 접근 권한 할당 등에서 이슈가 생겨 프로젝트가 뜨지 않았던 것으로 결론이 났다. 따라서 관계자님께서 한 차례 더 승인 요청을 해..