【Airflow】MWAA Local ~ 環境構築編 ~

■ はじめに

MWAA での単体試験 (Unit tests) について調査していたら、
以下のAWS公式ブログがヒットした。

https://aws.amazon.com/jp/blogs/opensource/automating-a-dag-deployment-with-amazon-managed-workflows-for-apache-airflow/

上記によると、aws-mwaa-local-runner なるものを使っているので
深堀りしてみた。
 => めちゃくちゃ簡単にできた。

目次

【1】aws-mwaa-local-runner
【2】ライセンス
【3】必要事項
【4】設定手順
 1)前提条件
 2)手順
 3)補足:デフォルトパスワード「test」
【5】フォルダ構成

【1】aws-mwaa-local-runner

* ローカル上に、MWAA実行環境を構築してくれる

【2】ライセンス

* MIT-0 (MIT No Attribution)
 => 商用可

https://licenses.opensource.jp/MIT-0/MIT-0.html

【3】必要事項

https://github.com/aws/aws-mwaa-local-runner#prerequisites

のGithubのREADMEによれば、Docker を使える環境は必須。
 => MWAA実行環境は、Dockerコンテナイメージで構築するため。

https://github.com/aws/aws-mwaa-local-runner#prerequisites

* macOS: Install Docker Desktop.
* Linux/Ubuntu: Install Docker Compose and Install Docker Engine.
* Windows: Windows Subsystem for Linux (WSL)
 to run the bash based command mwaa-local-env.
 Please follow Windows Subsystem for Linux Installation (WSL)
 and Using Docker in WSL 2, to get started.

【4】設定手順

* README の 「Get started」をやってみる

https://github.com/aws/aws-mwaa-local-runner#get-started

1)前提条件

* ローカル上に port : 8080 で動いているモジュールがないこと
* Git がインストールされていること
* Docker が設定されていること
 => 設定されていない場合は、以下の関連記事を参照のこと。

Git ~ 初期設定 / Windows 編 ~
https://dk521123.hatenablog.com/entry/2018/08/14/215814
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505

設定環境例

* OS : Windows10
* Git : git version 2.23.0.windows.1

2)手順

* Git Bash を立ち上げて以下をコマンドする

[1] インストール および Apache Airflow の起動

# Step0: Download
git clone https://github.com/aws/aws-mwaa-local-runner.git
cd aws-mwaa-local-runner

# Step1: Building the Docker image (結構な時間が掛かる)
./mwaa-local-env build-image

# Step2: Running Apache Airflow (サーバがPort:8080で起動されるはず)
./mwaa-local-env start

[2] 動作確認

* ブラウザで以下にアクセスする
 => Web UI のログイン画面が表示されるので以下でログインする
 + Username: admin
 + Password: test (※1)

http://localhost:8080/

※1:ログイン失敗する場合

* WSL2 環境であったのだが、以下のサイトにあるように
 パスワードを「test」⇒「"test"」とダブルクォーテーション付きで試してみる

https://github.com/aws/aws-mwaa-local-runner/issues/300

3)補足:デフォルトパスワード「test」

* 以下で設定している

https://github.com/aws/aws-mwaa-local-runner/blob/afad7eb61c82c5403ca6cebb3bb25ab3064d5cfb/docker/config/.env.localrunner#L8C1-L8C24

【5】フォルダ構成

+ aws-mwaa-local-runner
  + dags <= DAGフォルダ
  + docker <= Docker関連フォルダ
  + plugins <= プラグイン関連フォルダ
  + mwaa-local-env <= Shell

実際の動作確認については以下の関連記事を参照のこと

MWAA Local ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/10/21/233404

参考文献

https://dev.classmethod.jp/articles/introduction-aws-mwaa-local-runner/
https://qiita.com/pioho07/items/5ed8dcb804d75be07e87
AWS公式サイトのチュートリアル
https://docs.aws.amazon.com/mwaa/latest/userguide/tutorials-docker.html

関連記事

MWAA ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/09/29/131101
MWAA Local ~ 環境構築編 / Docker compose ~
https://dk521123.hatenablog.com/entry/2021/11/07/132014
MWAA Local ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/10/21/233404
MWAA Local ~ AWSに繋げるようにするには ~
https://dk521123.hatenablog.com/entry/2023/10/28/184431
LocalStack ~ awscli-local ~
https://dk521123.hatenablog.com/entry/2020/12/16/211127
LocalStack ~ ローカルで疑似AWSを作成する ~
https://dk521123.hatenablog.com/entry/2019/12/14/010524
LocalStack ~ ローカルで疑似Lambda/S3/DynamoDBを作成する ~
https://dk521123.hatenablog.com/entry/2019/12/16/231149
Amazon DynamoDB Local
https://dk521123.hatenablog.com/entry/2019/11/13/221326
Git ~ 初期設定 / Windows 編 ~
https://dk521123.hatenablog.com/entry/2018/08/14/215814
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
WindowsAWS CLIを使うには
https://dk521123.hatenablog.com/entry/2020/12/01/000000