📝

EC2 インスタンスに Apache Airflow をインストールして UI にアクセスしてみた

に公開

What Is Amazon Managed Workflows for Apache Airflow? - Amazon Managed Workflows for Apache Airflow
AWS の MWAA ではなく EC2 インスタンスで Apache Airflow を利用するチュートリアルレベルの内容です。

1. EC2 インスタンスの作成

以下の設定で作成しました。

  • AMI: Amazon Linux 2023
  • インスタンスタイプ: c5.xlarge
  • キーペア: 不要
    • EC2 インスタンスコネクトで接続します
  • パブリックサブネット
  • インバウンド、アウトバウンド全開放のセキュリティグループ
  • ストレージサイズ: 30 GiB

2. Apache Airflow のインストール

手順 1 で作成した EC2 インスタンスに接続して以下のコマンドを実行します。

# 必要なパッケージのインストール
$ sudo dnf update -y
$ sudo dnf install python3 python3-pip -y

# Apache Airflow のインストール
$ pip3 install --user apache-airflow
$ export PATH=$HOME/.local/bin:$PATH

# Airflow 初期化
$ airflow db reset -y

# サンプル DAG 作成
$ mkdir -p ~/airflow/dags
$ nano ~/airflow/dags/tutorial_dag.py

# 以下のコードを貼り付けて保存
from datetime import datetime
from airflow import DAG
from airflow.operators.python import PythonOperator

def print_hello():
    print("Hello Airflow 3.x!")

with DAG(
    dag_id='tutorial_dag',
    start_date=datetime(2025, 10, 1),
    schedule='@daily',  # schedule_interval → schedule に変更
    catchup=False,
    tags=['tutorial'],
) as dag:

    task_hello = PythonOperator(
        task_id='hello_task',
        python_callable=print_hello,
    )

    task_hello

3. Web サーバーの起動

# Web サーバーの起動
$ export AIRFLOW__WEBSERVER__WEB_SERVER_HOST=0.0.0.0
$ airflow standalone

# エラーが発生しなければ Ctrl + C でサーバーを止める

# 管理者情報の確認
$ cat /home/ec2-user/airflow/simple_auth_manager_passwords.json.generated
{"admin": "xxx"}

# 再度 Web サーバーを起動
$ airflow standalone

4. Airflow UI へアクセス

手順 3 でサーバーが起動したら以下の URL にアクセスします。

  • http://<EC2 インスタンスのパブリック IPv4 アドレス>:8080/

Sign into Airflow の画面が表示されれば Airflow UI へのアクセスができています。
ユーザー名とパスワードは手順 3 で確認した管理者情報です。

5. Airflow UI で DAG を実行してみる

Airflow UI にサインイン後、Dags から tutorial_dag を探してクリックします。

画面右上の Trigger をクリックします。

デフォルト設定で Trigger をクリックします。

success と表示されれば手動実行成功です。

ログや実行したコードも UI 上から確認可能です。

まとめ

今回は EC2 に Apache Airflow をインストールして UI にアクセスしてみました。
どなたかの参考になれば幸いです。

参考資料

Discussion