9주차 화요일, 42일차 Today I Learned
데이터 파이프라인 (2)
: Airflow 설치 및 기본 프로그램 실행
✏️ 학습 내용
1. Airflow 설치
1. 직접 설치
- Docker 설치 후 직접 설치
- AWS EC2 등의 리눅스 서버에 직접 설치
- 리눅스 서버 위에 Docker Container로 Airflow 실행하기
2. 클라우드 사용
- AWS의 MWAA 사용
- Google Cloud Composer 사용
- Microsoft Azure Data Factory 사용
1) EC2 위에 Airflow 설치하기
AWS 계정이 필요하며, t3.small 인스턴스를 사용할 경우 한 달 비용이 $18.72 정도가 된다.
리눅스를 이용하여 설치할 것이다.
- 우분투 (ubuntu) : 리눅스 타입 중 하나 (그 외 데비안, 레드햇, 페도라 등)
- ssh : 리눅스 혹은 유닉스 서버에 로그인해주는 프로그램
- sudo : 보통 슈퍼유저로서 프로그램을 구동할 수 있도록 하는 프로그램
- apt-get : 우분투/데비안 계열의 리눅스에서 프로그램 설치/삭제를 관리해주는 프로그램
- su (subtitue user) : 현재 사용 중인 사용자 계정을 로그아웃하지 않고 다른 사용자의 권한을 얻을 때 사용
- vi : 텍스트 에디터
Airflow 2.5.1을 /var/lib/airflow/ 밑에 설치하고, 메타데이터베이스로 로컬 서버에 Postgres를 설치할 예정이다. 따라서 ubuntu, postgres, airflow 총 3개의 어카운트가 Airflow 서버에서 사용된다.
설치 후 터미널 과정
0. AWS EC 서버 론치
1. ubuntu 로그인 > 파이썬 업그레이드, airflow 사용자 생성 및 모듈 설치, postgres 설치
2. postgres로 어카운트 변경 > postgres에 airflow 계정 생성
3. airflow로 어카운트 변경 > airflow.cfg 변경, airflow 재설치, airflow web 로그인 계정 생성
4. ubuntu로 어카운트 변경 > airflow 웹서버와 스케줄러를 서비스로 등록하고 시작
2) Docker 사용하여 Airflow 설치하기
1. 도커 엔진 설치
2. airflow-setup 깃허브 레포 클론 후 2.5.1 이미지 관련 yml 파일 다운로드
3. 도커 이미지 다운로드 및 컨테이너 실행
두 가지 방법을 알아보았다. EC2는 비싸므로 도커 기반으로 설치하는 것이 좋지만, 공동 개발을 위해서는 EC2를 사용해야 할 수 있다. 따라서 가장 좋은 방법은 리눅스 서버 위에 도커 컨테이너로 실행하는 방법이다.
2. Airflow 기본 프로그램 실행
Airflow 코드의 기본 구조는 먼저 DAG 대표하는 객체를 먼저 만들고, 다음으로 DAG를 구성하는 태스크들을 만든다. 태스크별로 적합한 오퍼레이터를 선택해야 하며, 태스크 ID를 부여하고 해야 할 작업의 세부사항도 지정한다. 최종적으로 태스크들간의 실행 순서를 결정하면 된다.
☁️ 소감
아직 명령어에 대한 이해가 없지만, 강사님이 말씀하시기론 일단 지금은 그냥 따라해보는 것이 좋다고 하셨다. 하다보면 언젠가는 이해할 수 있는 날이 올 것이기 때문이다. 유료가 아니라 무료 서비스였다면 학습용으로 이것저것 해보았겠지만, 그것이 아니라서 배우는 데에 조심스러운 부분이 있는 것 같다. (잘못해서 과금될 수 있다)
아직 Airflow의 작동은 잘 모르지만, 추후에 고급 기능도 배울 기회가 있으니까 차근히 공부해나가야겠다.
오늘은 데브코스에서 수강생이 따로 만든 모각공/모각코 모임에 들어갔다. 특정한 시간에 게더타운에서 모여서 공부하는 목적인데, 학습에 대한 다른 사람들의 생각을 들을 수 있을 것 같다. 내가 도움이 될 부분도 존재할텐데, 서로 공유할 수 있으면 좋겠다.
'Data Engineering > grepp 데브코스 : TIL' 카테고리의 다른 글
[TIL_2023.12.14] 데이터 파이프라인 (4) : PK 고유성, Backfill (0) | 2023.12.14 |
---|---|
[TIL_2023.12.13] 데이터 파이프라인 (3) : Airflow DAG 작성 (0) | 2023.12.13 |
[TIL_2023.12.11] 데이터 파이프라인 (1) : 데이터 파이프라인 (ETL), Airflow 소개 (0) | 2023.12.12 |
[TIL_2023.12.01] 데이터 인프라, 고급 SQL, BI 대시보드 (5) : 시각화 대시보드 툴, Superset 실습 (0) | 2023.12.01 |
[TIL_2023.11.30] 데이터 인프라, 고급 SQL, BI 대시보드 (4) : Snowflake 운영과 관리 (1) | 2023.11.30 |