「Data pipelines with Amazon Managed Workflows for Apache Airflow」視聴レポート

記事タイトルとURLをコピーする

[NEW LAUNCH!] Data pipelines with Amazon Managed Workflows for Apache Airflow のセッションを視聴しましたので、その内容を一部ご紹介したいと思います。

「Amazon Managed Workflows for Apache Airflow(MWAA)」とは?

「Apache Airflow」は、「オープンソースのタスクスケジューリング・モニタリングのプラットフォーム」であり、以下の特徴があります。

・データパイプラインをスクリプトとして構成
・優れたユーザーインターフェイスでフロー設定やモニタリングが可能
・コミュニティで開発されたカスタムプラグインのセットを通じて機能を拡張可能

 「Amazon Managed Workflows for Apache Airflow(MWAA)」は、それをAWSのクラウド上で簡単に実行できるようにしたマネージド・サービスとなっています。

データエンジニアや科学者が、AWS上でETLジョブとデータパイプラインを簡単に実行でき、他のAWSサービスとの連携、CloudWatchを介したモニタリング機能にも優れたサービスとなっています。

MWAAの特徴

f:id:swx-kashiwao:20201203133615p:plain

Apache Airflowの環境をコンソールやCLI、CloudFormationから、すぐに準備でき、 使い慣れた Airflow のUIが利用可能となっております。

f:id:swx-kashiwao:20201203133645p:plain

MWAAの実行環境としては、以下の特徴があります。

・ワーカーは設定の必要なしにスケーリング
・「Celery Executor」(分散タスクキューフレームワーク)の利用
・Amazon ECS on AWS Fargate 

 

f:id:swx-kashiwao:20201203133720p:plain

セキュリティ面では、以下の特徴があります

・IAMで統合された認証認可
・Airflow UIへのセキュアなアクセス
・IAMによる AWSリソースへのアクセス制御
・ワーカーやスケジューラはユーザのVPC内で実行

 

f:id:swx-kashiwao:20201203133809p:plain

監視や可用性の観点では、以下の特徴があります。

・CloudWatchとの統合
・マルチAZ配置
・失敗時の自動的な再実行

 

f:id:swx-kashiwao:20201203133841p:plain

MWAAは以下の手順で稼働させるようになっています。

・MWAAの環境の構築
・DAGや使用するプラグインをS3にコピー
・Airflow UIにアクセス

※ DAG(Directed Acyclic Graph, 有向非巡回グラフ) は、ワークフロー内のタスクの依存関係を閉路を持たない有向グラフで定義したもの

 

f:id:swx-kashiwao:20201203134001p:plain

MWAAのアーキテクチャ図です。

ユーザーのVPC内でAirflowのワーカー、サービスのVPC内でAirflow UIを提供するWebサーバーが起動します。

MWAAのデモ

セッション内では、MWAAのデモがありました。

f:id:swx-kashiwao:20201203134043p:plain

環境名を入力し、Airflowのバージョンを選択します。

 

f:id:swx-kashiwao:20201203134546p:plain

以下を指定します。

・S3バケット
・DAGコードのフォルダ
・プラグインファイルの場所(オプション)
・requirements.txtの場所(オプション)

※ 注意点として、S3バケット名は「airflow-」から始まっている必要があります。

 

f:id:swx-kashiwao:20201203134634p:plain

ネットワークの設定として、VPCやサブネットを指定します。

 

f:id:swx-kashiwao:20201203134658p:plain

AirflowのWebサーバーへのアクセスを設定します。 プライベート接続、パブリック接続が利用できます。

また、Webサーバーに適用するセキュリティグループを設定します。

 

f:id:swx-kashiwao:20201203134740p:plain

環境クラスと最大ワーカー数を設定します。

設定した上限までワーカーがスケーリングします。 環境クラスはDAGのキャパシティに応じて選択します。

 

f:id:swx-kashiwao:20201203134819p:plain

Airflowの各コンポーネントのCloudWatchログへの出力を設定できます。

 

f:id:swx-kashiwao:20201203134838p:plain


タグの設定や、ワーカー実行時のIAMロールを選択します。

あとは「Create environment」ボタンを押せばAirflowの環境構築が実行されます。

 

f:id:swx-kashiwao:20201203134903p:plain

環境構築が完了すると、Available のステータスになります。

右側の「Open Airflow UI」を押すと、AirflowのUI画面が開きます。

 

f:id:swx-kashiwao:20201203134946p:plain

AirflowのUI画面が開きました。まだDAGは登録されていない状態となっています。

 

f:id:swx-kashiwao:20201203135045p:plain

pythonで書かれたシンプルなDAGのコードをS3上のDAGコードフォルダにコピーします。

コードは簡単な加工処理で、CSVファイルのダブルクォートを空文字にreplaceするものとなっています。

 

f:id:swx-kashiwao:20201203135118p:plain

S3にコピーしたDAGコードのグラフビューです。

画面から手動で実行することができます。

 

f:id:swx-kashiwao:20201203135150p:plain

実行ログも管理画面から確認することができます。

 

f:id:swx-kashiwao:20201203135207p:plain

処理が完了し、S3上に「output.csv」が出力されています。

 

f:id:swx-kashiwao:20201203135232p:plain

インプットのCSVファイルにはダブルクォートが入っていますが、

 

f:id:swx-kashiwao:20201203135303p:plain

アウトプットのCSVファイルでは削除されていることが確認できました。

まとめ

オープンソースの優れたタスクスケジューリング・モニタリングのプラットフォームである「Apache Airflow」をAWS上で使えるようにしたサービスが「Amazon Managed Workflows for Apache Airflow (MWAA)」です。

「Apache Airflow」の利点はそのままに、AWS上の各サービスとの連携、柔軟な環境設定、利用時間に応じた課金など、クラウドの恩恵を受けられるサービスとなっております。

セッション配信は複数回あり、今年はオンライン開催という事で視聴者上限もなく、気軽に参加することが出来ますので、興味のある方は是非ご視聴ください。

aws.amazon.com

 

毎日AWSでも紹介していますので、こちらも是非!