【Airflow】MWAA ~ 入門編 ~

■ はじめに

MWAA(Amazon Managed Workflow for Apache Airflow)
に関して、触れるのでメモ

目次

【1】MWAA(Amazon Managed Workflow for Apache Airflow)
 1)メリット
 2)デメリット
 3)サポートバージョン
【2】技術メモ
 1)DAG の作成
 2)DAG の手動実行
【3】トラブル
 1)ログ確認時に「Could not read remote logs from log_group」が表示

【1】MWAA(Amazon Managed Workflow for Apache Airflow)

* AWS の Apache Airflow のマネージドサービス

1)メリット

* 迅速なデプロイ
* Airflowのアップグレードなどのメンテナンスの軽減
* AWSの他サービス(ClouldWatchなど)の連携の容易さ

 => もちろん、EC2を立てて独自にAirflowを運用することも可能だが、
  AWS内で使うのであれば、NWAAを使う方よさそう

2)デメリット

* コスト高、、、
 => 以下の公式サイトより改変して抜粋

https://aws.amazon.com/jp/managed-workflows-for-apache-airflow/pricing/
使用例

米国東部 (バージニア北部) リージョンで、
Apache Airflow version 1.10.12 を使って、
スモールの Managed Workflows 環境を運用していて、
通常のデータ保持で、システムが 1 時間に 2(50⇒2に変更)
 の同時ワーカーに急増する場合、
その月に対して次の金額をお支払いいただくことになります。

環境料金

インスタンス使用量 (時間) = 31 日間 x 24 時間/日 = 744 時間
x 0.49 USD (米国東部 (バージニア北部) リージョンでの小規模環境の 1 時間あたりのの料金)
= 364.56 USD

ワーカー料金

インスタンス使用量 (時間) = 31 日間 x 1 時間/日 x 1 追加インスタンス (2 のうち 1 は環境に含まれる) = 31 時間
x 0.055 USD (米国東部 (バージニア北部) リージョンでの小規模ワーカーの 1 時間あたりの料金)
= 1.705 USD

メタデータベース料金

10 GB またはストレージ x 0.10 USD/GB 月 = 1.00 USD

合計請求額(月額・31日の場合)

合計請求額 = 367.265 USD

# 1日だと 約$11.847。最小構成でこれだけ掛かる、、、

3)サポートバージョン

2021/09/29現在、Apache Airflow の以下のバージョンをサポートしている

[1] v2.0.2 (最新)
[2] v1.10.12

メモ:Airflow 2.0
https://note.com/dd_techblog/n/n6f00d8b51457

を見たところ、2.0の書き方がすごくすっきりしてていい。

【2】技術メモ

* Hello world的なことをやるなら、以下が参考になると思う。

https://dev.classmethod.jp/articles/amazon-managed-workflows-for-apache-airflow-mwaa-ga/

1)DAG の作成

* s3://xxx/xxx/dags/ 配下に、Pythonコードを置くだけ
 => Pythonコードについては、
  上記のサイトや以下の関連記事のサンプルなどを参照。

https://dk521123.hatenablog.com/entry/2021/07/24/233012
https://dk521123.hatenablog.com/entry/2021/07/28/234319

 => 以下のサイトの「DAGをアップロードして実行してみた」で
  「おおよそ20秒ほどでAirflowの管理画面にDAGが表示されました」
  っとあるが、今回確認した環境では、
  結構(測ってないが数分?2~5分?)掛かったが表示された。

https://dev.classmethod.jp/articles/amazon-managed-workflows-for-apache-airflow-mwaa-ga/

メモ:Airflow UIからのDAG削除について(2021/09/29現在)

* バグか仕様なのかわからないが、UI上から削除しても、
 S3上のファイルが残っている。
 => そのままの状態にしておくと、UIをリロードすると
  復活している(ってMWAA の 仕様?)
 => なお、物理的にS3上のPythonコードを削除すれば、
  しばらくすると、UI上でも表示されなくなった

2)DAG の手動実行

[1] Web UIにおいて、DAGs一覧画面で、
 対象DAGの左側にあるトグルボタン「Pause/Unpause DAG」
 をONにする

 ⇒ これにより、「Active」に移行される
 ⇒ Pause(一時停止)ってあるので、
  DAGのRunningに対する一時停止)だと思って、
  この操作をやらずに、[2] の操作をしててRunningしてるけど
  なかなか処理が終わらない現象になってめちゃくちゃハマった、、、

[2] 再生アイコンボタン「Trigger DAG」を押下
[3] 「Trigger」ボタン押下

=> 実際の操作(Demo)は、以下のYoutubeの18:40付近を
 みてもらえれば分かると思う
 (YouTube上のI/Fは、恐らくv1.X系だと思うが雰囲気は伝わると思う)

https://www.youtube.com/watch?v=HQQr9QILAao

【3】トラブル

関連記事

MWAA ~ S3 Sensor 編 ~
https://dk521123.hatenablog.com/entry/2021/10/04/230703
Apache Airflow ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/07/18/004531
Apache Airflow ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/09/28/135510
Apache Airflow ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/07/24/233012
Apache Airflow ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/07/28/234319
MWAA に関するトラブルシュート
https://dk521123.hatenablog.com/entry/2021/10/08/145311