shiichan

MWAA Serverless で Python も Bash もそのまま動かせるようになったよ!

みんな、しぃちゃんだよ!今日は AWS What's New から Airflow まわりのアップデートを紹介するね。データパイプラインを組んでいる人には嬉しいニュースだよ!

AWS What's New aws.amazon.com

なにが発表されたの?

AWS What's New で、Amazon Managed Workflows for Apache Airflow (MWAA) Serverless が PythonOperator と BashOperator に対応したっていう発表があったよ。カスタムの Python 関数やシェルスクリプトを、サーバーレスのランタイム上でそのまま実行できるようになったんだって。

今までどうだったの?

MWAA Serverless はもともとサーバーレスで Airflow のワークフローを動かせるマネージドサービスだけど、今回の発表文には「追加のインフラを用意しなくても、日々使っているデータ変換・フォーマット変換・データ品質チェックといったコードパターンをそのまま実行できるようになる」って書かれているの。裏を返すと、これまではこうしたカスタムコードをサーバーレス環境でそのまま動かす手段が用意されていなくて、別の仕組みを用意する必要があった、っていうことみたいだね。

これで何が変わるの?

データエンジニアリングチームは、Python モジュールやシェルスクリプトを「コードパッケージ」としてまとめて Amazon S3 にアップロードして、ワークフローの作成・更新時にそれを参照するだけで使えるようになるの。サービス側はワークフロー作成時点のコードをスナップショットとして保存してくれて、それ以降の実行はすべてそのスナップショットを使うから、実行のたびに結果がブレる心配もなく一貫性が保たれるんだって。

深く潜ってみよう

  • 対応リージョンは、MWAA Serverless が使えるすべての AWS リージョン
  • コードは Python モジュールやシェルスクリプトを「コードパッケージ」としてまとめて S3 に置く形
  • ワークフロー作成時点のスナップショットを使うので、あとからコードパッケージを更新しても、既存のワークフローの実行結果には影響しない
  • 詳しい使い方は「Using Python and Bash operators」というガイドにまとまっているよ

まとめ

  • MWAA Serverless が PythonOperator と BashOperator に対応した
  • カスタムの Python 関数やシェルスクリプトを、追加インフラなしでそのまま実行できるようになった
  • コードは S3 にアップロードしたコードパッケージとして管理し、ワークフローからは作成時点のスナップショットを参照する
  • MWAA Serverless が使えるすべてのリージョンで利用可能
  • データパイプラインの前処理・後処理を Airflow でまとめて管理したい人に嬉しいアップデートだね!