설치 환경 미리 보기
✅ 우분투 24.04 사용 (프리티어 가능한 버전 선택)
✅ AWS EC2 t3.small or t3a.small 인스턴스사용
Airflow 2.9.1 설치 과정
- Airflow 메타데이터베이스로 로컬 서버에 Postgres 설치 예정
- Airflow는 /var/lib/airflow/ 밑에 설치
- Airflow 서버에는 총 3개의 어카운트 사용 (보안 이슈를 최소화하기위해 서비스 별로 계정 분리)
- ubuntu: 메인 어카운트
- postgres: postgres 설치시 만들어지는 계정으로 postgres 엑세스를 위한 airflow 계정을 별도로 생성
- airflow: Airflow용 어카운트, Airflow 서비스는 이 계정으로 실행
0. AWS EC2 서버 론치
[AWS] EC2 우분투 ubuntu 인스턴스 생성
설치 환경 미리 보기✅ 우분투 24.04 사용 (프리티어 가능한 버전 선택)✅ AWS EC2 t3.small or t3a.small 인스턴스사용 AWS EC2 우분투 ubuntu 인스턴스 생성 1. AWS 콘솔 로그인2. AWS EC2 서비스 선택 3. EC2 인
ourjune.tistory.com
생성된 키페어는 작업 폴더에 저장해두기
1. Ubuntu로 로그인
호스트 이름 복사해서 터미널로 ssh 접속하기


# ssh 접속
ssh -i [키페어이름.pem] ubuntu@[아까 복사한 EC2 호스트명]
⚠️ 만약 EC2 ssh 접속시 pem 파일에 대해 Permission denied 에러 발생한다면
chmod 600 [키페어이름].pem
해서 권한 변경해주기!

- python 업그레이드 (필요시 가상환경 venv 활성화해서 작업)
sudo apt-get update
wget https://bootstrap.pypa.io/get-pip.py
(sudo) python3 get-pip py
sudo apt-get install -y python3-pip
(sudo) pip3 install pyopenssl --upgrade
- Airflow 2.0 설치하고 필요 기타 모듈 설치
sudo apt-get install -y libmysqlclient-dev (or sudo apt-get install pkg-config libmysqlclient-dev)
sudo pip3 install --ignore-installed "apache-airflow[celery,amazon,mysql,postgres]==2.9.1" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt"
(sudo) pip3 install oauth2client gspread numpy pandas
- Airflow 계정 생성 하고 홈디렉토리 /var/lib/airflow로 설정
sudo groupadd airflow
sudo useradd -s /bin/bash airflow -g airflow -d /var/lib/airflow -m
- Postgres 설치
관련 모듈도 함께 설치
postgres라는 계정이 우분투에 생성됨
sudo apt-get install -y postgresql postgresql-contrib
2. postgres로 어카운트 변경
- postgres에 airflow 계정 생성
$ sudo su postgres
$ psql
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.
postgres=# CREATE USER airflow PASSWORD 'airflow';
CREATE ROLE
postgres=# CREATE DATABASE airflow;
CREATE DATABASE
postgres=# \q
$ exit
- postgres 재실행
sudo service postgresql restart
- airflow 계정으로 전환
sudo su airflow
- 홈디렉토리로 이동
cd ~/
- 데이터파이프라인이 놓여질 dags 폴더 만들기
- airflow가 메타데이터디비를 사용할 수 있게 연결
- 처음에는 sqlite로 연결


ls -tl 하면 var/lib/airflow 하단에 생성
음영처리는 폴더
airflow.db
logs
webserver_config.py
airflow.cfg
dags
3. airflow로 어카운트 변경
- airflow.cfg 변경
- airflow 재설치
- airflow web 로그인 계정 생성
4. ubuntu로 어카운트 변경
- Airflow 웹서버와 스케줄러를 서비스로 등록하고 시작
airflow webserver 8080 포트 사용
AWS EC2 Security Groups에서 inbound 규칙에 8080 포트 추가 필요
웹브라우저 탭에서 EC2호스트이름:8080 하면 airflow webserver 접속 가능
'데브코스 데이터엔지니어링' 카테고리의 다른 글
| Superset (1) | 2024.12.27 |
|---|---|
| [docker] docker 프로그램 개발 프로세스 (0) | 2024.12.27 |
| [AWS] EC2 우분투 ubuntu 인스턴스 생성 (0) | 2024.12.27 |
| [Airflow] Airflow DAG란 (0) | 2024.12.27 |
| [Airflow] Apache 에어플로우 아키텍처 (1) | 2024.12.27 |