[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の特徴
Apache Airflowの環境をコンソールやCLI、CloudFormationから、すぐに準備でき、 使い慣れた Airflow のUIが利用可能となっております。
MWAAの実行環境としては、以下の特徴があります。
・ワーカーは設定の必要なしにスケーリング
・「Celery Executor」(分散タスクキューフレームワーク)の利用
・Amazon ECS on AWS Fargate
セキュリティ面では、以下の特徴があります
・IAMで統合された認証認可
・Airflow UIへのセキュアなアクセス
・IAMによる AWSリソースへのアクセス制御
・ワーカーやスケジューラはユーザのVPC内で実行
監視や可用性の観点では、以下の特徴があります。
・CloudWatchとの統合
・マルチAZ配置
・失敗時の自動的な再実行
MWAAは以下の手順で稼働させるようになっています。
・MWAAの環境の構築
・DAGや使用するプラグインをS3にコピー
・Airflow UIにアクセス
※ DAG(Directed Acyclic Graph, 有向非巡回グラフ) は、ワークフロー内のタスクの依存関係を閉路を持たない有向グラフで定義したもの
MWAAのアーキテクチャ図です。
ユーザーのVPC内でAirflowのワーカー、サービスのVPC内でAirflow UIを提供するWebサーバーが起動します。
MWAAのデモ
セッション内では、MWAAのデモがありました。
環境名を入力し、Airflowのバージョンを選択します。
以下を指定します。
・S3バケット
・DAGコードのフォルダ
・プラグインファイルの場所(オプション)
・requirements.txtの場所(オプション)
※ 注意点として、S3バケット名は「airflow-」から始まっている必要があります。
ネットワークの設定として、VPCやサブネットを指定します。
AirflowのWebサーバーへのアクセスを設定します。 プライベート接続、パブリック接続が利用できます。
また、Webサーバーに適用するセキュリティグループを設定します。
環境クラスと最大ワーカー数を設定します。
設定した上限までワーカーがスケーリングします。 環境クラスはDAGのキャパシティに応じて選択します。
Airflowの各コンポーネントのCloudWatchログへの出力を設定できます。
タグの設定や、ワーカー実行時のIAMロールを選択します。
あとは「Create environment」ボタンを押せばAirflowの環境構築が実行されます。
環境構築が完了すると、Available のステータスになります。
右側の「Open Airflow UI」を押すと、AirflowのUI画面が開きます。
AirflowのUI画面が開きました。まだDAGは登録されていない状態となっています。
pythonで書かれたシンプルなDAGのコードをS3上のDAGコードフォルダにコピーします。
コードは簡単な加工処理で、CSVファイルのダブルクォートを空文字にreplaceするものとなっています。
S3にコピーしたDAGコードのグラフビューです。
画面から手動で実行することができます。
実行ログも管理画面から確認することができます。
処理が完了し、S3上に「output.csv」が出力されています。
インプットのCSVファイルにはダブルクォートが入っていますが、
アウトプットのCSVファイルでは削除されていることが確認できました。
まとめ
オープンソースの優れたタスクスケジューリング・モニタリングのプラットフォームである「Apache Airflow」をAWS上で使えるようにしたサービスが「Amazon Managed Workflows for Apache Airflow (MWAA)」です。
「Apache Airflow」の利点はそのままに、AWS上の各サービスとの連携、柔軟な環境設定、利用時間に応じた課金など、クラウドの恩恵を受けられるサービスとなっております。
セッション配信は複数回あり、今年はオンライン開催という事で視聴者上限もなく、気軽に参加することが出来ますので、興味のある方は是非ご視聴ください。
毎日AWSでも紹介していますので、こちらも是非!