0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Airflow 3.0をDocker Composeで構築してみた【EC2/Amazon Linux 2023】

Posted at

はじめに

2025年4月22日、ついにAirflow 3.0がGAされましたね。

AWSのEC2上に、Dockerを利用して環境を構築してみたので、その手順をメモしておきます。

やってみる

EC2インスタンスの作成

今回は、以下のスペックで、EC2インスタンスを作成しました。

  • OS:Amazon Linux 2023
  • インスタンスタイプ:m5.2xlarge

image.png

公式Docを見ると、メモリ4GB以上という要件がありました。ただ、t2.medium(メモリ4GiB)やt3.large(メモリ8GiB)で試すと、起動しなかったり動きが遅かったりしたので、今回はとりあえずm5.2xlarge(vCPU 8, メモリ32GiB)で動かしています。

セキュリティグループ修正

以下のインバウンドルールを追加します。

  • 手元のPCからSSHでの接続用
    • ポート:22
    • ソース:自身のIPアドレス
  • Airflow UIのブラウザアクセス用
    • ポート:8080
    • ソース:自身のIPアドレス

image.png

Dockerインストール

ここからは、何かしらのツールでEC2に接続します。今回は、手元のPCのTera TermからSSH接続しました。

image.png

以下のコマンドを実行して、Dockerをインストールします。

# システムアップデート
sudo dnf update -y

# Docker インストール
sudo dnf install docker -y
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user

Docker Composeインストール

次に、Docker Composeをインストールします。

# Docker Composeダウンロード、インストール
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

# 実行バイナリに対して実行権限付与
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

# インストール結果の確認
docker compose version

# 一度抜ける
exit

以下を参考にしました。今はDocker composeのv2が主流なんですね。

Airflowの初期化と起動

ここまででDockerの環境が準備出来たので、Airflowのdocker-composeを使ってAirflowの環境を構築します。
現時点でのAirflowの最新バージョンはv3.0.1なので、新しいバージョンがある場合はdocker-compose.yamlのURLを修正してください。

# 作業ディレクトリ作成
mkdir airflow
cd airflow

# docker-compose.yamlのダウンロード
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.0.1/docker-compose.yaml'

# 必要なディレクトリの作成
mkdir -p ./dags ./logs ./plugins ./config

# ユーザー設定
echo -e "AIRFLOW_UID=$(id -u)" > .env

# データベースの初期化
docker compose up airflow-init

# Airflowの起動
docker compose up -d

以下を参考にしました。

Airflow UIにアクセス

環境立ち上げに少し時間がかかりますが、完了したら

http://<EC2のIP>:8080

にアクセスします。

上手く環境が作れていれば、以下のようなSign in画面が表示されるはずです。UsernameとPasswordはデフォルトだとどちらもairflowなので、これを入力してサインインします。

image.png

サインインできました!!!かなり画面デザイン変わってる!!!

image.png

ダークモードにして、元々あったDAG(tutorial)を何回か実行してみました。DAGの画面もかなり変わってますね。

image.png

今回はv3.0.1で構築しましたが、それが出る前のv3.0.0で試したところ、Airflow UIにアクセスすると画面遷移がループしてアクセスできませんでした。このissueで報告されていましたが、v3.0.1で直ったようです。

アクセスできない場合は、ログを確認してみましょう。Airflow UIへのアクセスログは、APIサーバーのログで確認できます。

# 100行ログを見る
docker compose logs --tail=100 airflow-apiserver

おわりに

GAされてから1か月近くたってしまいましたが、ようやく自分の手元で構築することができました。

新しい機能など、試してみたいと思います。特に、左メニューの一つであるAssetsが気になります。今まではDatasetsという、DAGで扱うデータを抽象化した概念がありましたが、それが進化したもののようです。

データリネージュが実現できたり、データの更新を検知して処理を実行したりできるようで、既存のDatasetsとどう違うかとかを追ってみようと思います。

では、皆様よき Airflow 3 ライフを!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?