Docker上でApache Airflowを手軽に始める方法

今回は、Dockerを使用してApache Airflowの環境を構築する手順を詳細に解説します。Apache Airflowは、複雑なワークフローのスケジューリングと監視を行うためのオープンソースツールです。Dockerを利用することで、環境依存性を排除し、迅速かつ簡単にAirflowを立ち上げることが可能になります。この記事では、docker-composeを用いたAirflowのセットアッププロセスから、最初のユーザー作成までを一歩一歩説明します。
はじめに
今回は、Dockerを使用してApache Airflowの環境を構築する手順を詳細に解説します。Apache Airflowは、複雑なワークフローのスケジューリングと監視を行うためのオープンソースツールです。Dockerを利用することで、環境依存性を排除し、迅速かつ簡単にAirflowを立ち上げることが可能になります。この記事では、docker-composeを用いたAirflowのセットアッププロセスから、最初のユーザー作成までを一歩一歩説明します。
Docker Composeファイルの作成
最初に、Airflowを実行するためのdocker-compose.ymlファイルを作成します。このファイルは、Airflowサービスの設定を含みます。例えば、使用するAirflowのイメージバージョン、ポートのマッピング、ボリュームの設定などを指定します。
version: '3.8'
services:
web:
platform: linux/amd64
image: apache/airflow:2.2.3
container_name: airflow
ports:
- "8081:8080"
volumes:
- ./opt/airflow:/opt/airflow
command: airflow db init
Airflowデータベースの初期化
Airflowのデータベースを初期化するために、以下のコマンドを実行します。
docker-compose run web airflow db init
Airflowの起動
Airflowを初めて起動する際には、airflow db init コマンドでデータベースを初期化します。 その後、docker-compose up コマンドを使用してAirflowのウェブサーバーを起動します。 ウェブサーバーの起動は docker-compose.yml ファイル内のコマンドセクションで指定されたコマンドに依存します。
docker-compose up
docker-compose.yml
ファイルのcommand部分をwebserver
に変更してWebサーバーを起動します。
version: '3.8'
services:
web:
platform: linux/amd64
image: apache/airflow:2.2.3
container_name: airflow
ports:
- "8081:8080"
volumes:
- ./opt/airflow:/opt/airflow
# command: airflow db init
command: webserver
バックグラウンドで実行する場合は、-d
オプションを追加します。
docker-compose up -d
Airflowコンテナの確認
Airflowが実行されているコンテナの状態を確認するには、以下のコマンドを使用します。
docker-compose ps
Airflowユーザーの作成
Airflowにログインするためのユーザーを作成します。まず、docker psコマンドでコンテナのIDを確認し、対象のコンテナに対してbashセッションを開始します。
docker exec -it <コンテナID> bash
次に、以下のコマンドを実行してユーザーを作成します。このステップでは、ユーザー名、名、姓、役割、およびメールアドレスを指定します。
airflow users create \
--username ユーザーネーム \
--firstname 名前 \
--lastname 名字 \
--role Admin \
--email メールアドレス
実行後、パスワードを入力してユーザー作成を完了します。
ログインと使用開始
ユーザー作成後、ブラウザからhttp://127.0.0.1:8081/login/
にアクセスし、先ほど作成したユーザー情報でログインします。これで、Apache Airflowのダッシュボードにアクセスし、ワークフローの管理と実行を開始できます。
またスケジューラーを起動する場合にはairflow scheduler -Dで起動できます。
まとめ
この記事を通じて、Docker上でApache Airflowを設定し、実行するプロセスを学びました。この方法は、Airflowの環境構築を容易にし、開発者がワークフローの自動化と管理を迅速に開始できるよう支援します。ぜひこのステップを試し、効率的なデータ処理とタスク管理のためにAirflowを活用してください。