
👉 공식 문서
Airflow는 여러 컨테이너(Webserver, Scheduler, DB, Redis 등)가 함께 동작하기 때문에, VM 리소스가 너무 작으면 설치는 되더라도 실행이 불안정할 수 있습니다.
| 구분 | CPU | RAM | 디스크 |
|---|---|---|---|
| 최소 | 2 vCPU | 4GB | - |
| 권장 | 2 vCPU | 8~16GB | 20GB 이상 |
VM에 Docker 및 Docker Compose 플러그인을 설치합니다.
아래 스크립트를 파일로 저장 후 실행하면 한 번에 설치할 수 있습니다.
docker_install.sh파일 생성 후 실행 → bash docker_install.sh
#!/bin/bash
set -e
echo "=== Docker 및 Docker Compose 설치 스크립트 ==="
# 1. 기존 Docker 제거
echo "[1/6] 기존 Docker 제거..."
sudo apt-get remove -y docker docker-engine docker.io containerd runc || true
# 2. 패키지 업데이트 및 의존성 설치
echo "[2/6] 패키지 업데이트 및 의존성 설치..."
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 3. Docker 공식 GPG 키 추가
echo "[3/6] Docker GPG 키 추가..."
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 4. Docker 리포지토리 등록
echo "[4/6] Docker 리포지토리 추가..."
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. Docker Engine 설치
echo "[5/6] Docker 설치..."
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 6. 설치 확인
echo "[6/6] 설치 확인..."
docker --version
docker compose version
echo "✅ Docker 및 Docker Compose 설치 완료!"
Airflow Web UI는 기본적으로 8080 포트에서 실행됩니다.
따라서 VM 외부에서 웹 UI에 접속하려면 클라우드의 방화벽 설정 에서 8080 포트를 허용해야 합니다.
Airflow는 공식 문서에서 제공하는 docker-compose.yaml 파일로 빠르게 설치할 수 있습니다.
👉 공식 문서
Airflow 관련 파일을 관리할 디렉토리를 만들고 이동합니다.
mkdir Apache_Airflow
cd Apache_Airflow
아래 명령어로 Airflow 공식 docker-compose.yaml 파일을 다운로드합니다.
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.1.5/docker-compose.yaml'
docker-compose.yaml 파일에서 아래 설정을 찾아 값을 변경합니다.
AIRFLOW__CORE__LOAD_EXAMPLES: 'true' → 'false'Airflow가 기본적으로 사용하는 디렉토리 및 파일들을 만들어줍니다. (디렉토리 4개 + 파일 1개)
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=50000" > .env
초기 DB 셋업 등을 진행합니다.
명령 실행 후 터미널로 돌아올 때까지 기다립니다.
sudo docker compose up airflow-init
전체 컨테이너를 실행합니다.
sudo docker compose up -d
Airflow는 여러 컨테이너가 동시에 떠야 정상적으로 동작합니다.
아래 명령어로 컨테이너 상태를 모니터링합니다.
sudo watch -n 1 docker ps
총 7개 컨테이너가 모두
healthy상태가 될 때까지 기다립니다.
'healthy' 확인 후 VM의 공인 IP를 확인한 후 아래 URL로 접속합니다.
http://[Compute Engine 공인 IP]:8080
ID : airflow
PW : airflow
Docker Compose로 Airflow를 설치하면 dags/, logs/, plugins/, config/ 등의 폴더를 컨테이너와 volume(bind mount) 으로 연결하게 됩니다.
이 과정에서 컨테이너가 파일을 생성하거나 수정하면, 파일 소유자가 내 계정이 아닌 다른 사용자(root/airflow) 로 잡히는 경우가 있어 VM에서 직접 편집할 때 권한 오류(Permission denied)가 발생할 수 있습니다.
이를 해결하려면, 아래 명령어를 통해 Airflow 작업 디렉토리의 소유권을 현재 로그인한 사용자 계정으로 변경해주면 됩니다.
sudo chown -R "${USER:-$(id -un)}" .