📝
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