全4595文字

「Apache Airflow」は統合ジョブ管理ツールとして多くの企業で利用されている。柔軟で容易なリソース管理などができるマネージドサービスを利用する手もある。導入は容易だがオーバースペックになる場合もあり、組織に合わせた選択が必要になる。

 前回解説した「Apache Airflow」は米アドビや米エアビーアンドビー、米グーグルをはじめとした世界的なIT企業で導入されているオープンソースの統合ジョブ管理ツールです。ワークフローをコードベースで管理でき、時間などを含めた様々な依存関係を簡潔に表せるため、多くの企業で利用されており、ジョブ管理ツールの事実上の標準になりつつあります。現在、Google CloudやAmazon Web Services(AWS)といったプラットフォームでApache Airflowのマネージドサービスが提供されています。

 今回はマネージドサービスとしてGoogle Cloudで提供されている「Cloud Composer」、AWSで提供されている「Amazon Managed Workflows for Apache Airflow(MWAA)」、そしてApache Airflowのマネージドサービスを専門とした米アストロノマーの「Astro」について解説します。

マネージドサービスである利点

 Apache Airflowをマネージドサービスとして利用する場合、3つの利点が挙げられます。第1に柔軟で容易なリソース管理ができます。SaaS(ソフトウエア・アズ・ア・サービス)やクラウドサービスについて一般的に言えることですが、マネージドサービスとして提供されるApache Airflowは実行サーバーを自前で用意する必要がありません。初期投資を少なく抑えられることに加え、必要に応じて実行環境の性能を制御できます。

 第2にマネージドサービスを使用することで高い耐障害性を期待できます。Apache Airflowのマネージドサービスに限らず多くの場合、SaaSやクラウドサービスを提供するプロバイダーは、SLA(サービス・レベル・アグリーメント)として稼働を保障する時間を提示しています。Google CloudのCloud Composerでは月99.5%以上、AWSのMWAAでは月99.9%以上のSLAを設定しています。そのため自前で準備したサーバーでは見積もりの難しい可用性設計を考慮した運用が可能です。

 第3に最適化されたアーキテクチャーの元でApache Airflowを実行できます。Cloud Composerは「Google Kubernetes Engine(GKE)」をベースに「Cloud SQL」や「Cloud Storage」といったGoogle Cloudのマネージドサービスを使う構成を採っています。

 MWAAはApache Airflowのスケジューラーおよびワーカーを「AWS Fargate」(後述)で実行し、「Amazon Simple Storage Service(Amazon S3)」や「Amazon Aurora」などAWSのマネージドサービスを使用したアーキテクチャーを採用しています。単純にサーバーや「Amazon Elastic Compute Cloud(Amazon EC2)」上でApache Airflowを実行する場合に比べ、データベースやキュー、データストレージの管理などをマネージドサービスに任せられるため、より簡単に信頼性の高い実行環境を作成できます。

 Astroにおいても現在主流のクラウドサービスであるAWS、Google Cloud、Microsoft Azure上での構築が可能で、運用部分のみをAstroのサーバーで運用しています。