Managed Airflow の概要

Managed Airflow(第 3 世代) | Managed Airflow(第 2 世代) | Managed Airflow(以前の第 1 世代)

このページでは、Airflow と DAG の概要、および Managed Airflow の特長と機能について説明します。

Managed Airflow リリースの新機能の詳細については、リリースノートをご覧ください。

Managed Airflow について

Managed Airflow は、フルマネージドのワークフロー オーケストレーション サービスです。クラウドとオンプレミス データセンターにまたがるワークフロー パイプラインの作成、スケジューリング、モニタリング、管理ができます。

Managed Airflow は、一般的な Apache Airflow のオープンソース プロジェクトを基に構築されており、Python プログラミング言語を使用して動作します。

Apache Airflow のローカル インスタンスではなくマネージド Airflow を使用すると、ユーザーはインストールや管理のオーバーヘッドなしに、Airflow のメリットを活用できます。Managed Airflow を使用すると、マネージド Airflow 環境を迅速に作成し、強力な Airflow ウェブ インターフェースやコマンドライン ツールなどの Airflow ネイティブのツールを使用できるため、インフラストラクチャではなくワークフローに集中できます。

Managed Airflow バージョンの違い

Managed Airflow のメジャー バージョンの違いの詳細については、Managed Service for Apache Airflow のバージョニングの概要をご覧ください。

Airflow と Airflow DAG(ワークフロー)

データ分析において、ワークフローは、データの取り込み、変換、分析、または利用のための一連のタスクを表します。Airflow では、DAG(つまり「有向非巡回グラフ」)を使用してワークフローが作成されます。

DAG とタスクの関係
図 1.DAG とタスクの関係

DAG は、スケジューリングして実行するタスクのコレクションであり、それらの関係と依存関係を反映して編成されます。DAG は Python ファイル内で作成され、コードを使用して DAG の構造が定義されます。DAG の目的は、各タスクが適切なタイミングと順序で実行されるようにすることです。

DAG の各タスクは、ほとんどあらゆるものを表すことができます。たとえば、1 つのタスクで次の機能を行うことがあります。

  • 取り込み用のデータの準備
  • API のモニタリング
  • メール送信
  • パイプラインの実行

スケジュールに基づいて DAG を実行するだけでなく、DAG を手動でトリガーすることも、Cloud Storage バケットの変更などのイベントに応答して DAG をトリガーすることもできます。詳細については、DAG のスケジュール設定とトリガーをご覧ください。

DAG とタスクの詳細については、Apache Airflow のドキュメントをご覧ください。

マネージド Airflow 環境

マネージド Airflow 環境は、Google Kubernetes Engine に基づく自己完結型の Airflow デプロイメントです。Airflow に組み込まれているコネクタを使用して他の Google Cloudサービスと連携します。サポートされているリージョンで、単一の Google Cloudプロジェクトに 1 つ以上の環境を作成できます。

Managed Airflow は、ワークフローとすべての Airflow コンポーネントを実行する Google Cloud サービスをプロビジョニングします。環境の主なコンポーネントは次のとおりです。

  • GKE クラスタ: Airflow スケジューラ、トリガー、ワーカーなどの Airflow コンポーネントは、環境用に作成された単一のクラスタで GKE ワークロードとして実行され、DAG の処理と実行を担当します。

    クラスタはまた、Composer Agent や Airflow Monitoring などの Managed Airflow のその他のコンポーネントをホストします。これにより、Managed Airflow 環境の管理、Cloud Logging に保存するログの収集、Cloud Monitoring にアップロードする指標の収集に役立ちます。

  • Airflow ウェブサーバー: ウェブサーバーは Apache Airflow UI を実行します。

  • Airflow データベース: データベースは Apache Airflow のメタデータを保持します。

  • Cloud Storage バケット: Managed Airflow は Cloud Storage バケットを環境と関連付けます。このバケット(環境のバケットとも呼ばれる)には、DAGログ、カスタム プラグイン、環境用のデータが保存されます。環境のバケットの詳細については、Cloud Storage に保存されるデータをご覧ください。

環境のコンポーネントについて詳しくは、環境のアーキテクチャをご覧ください。

Managed Airflow インターフェース

マネージド Airflow には、環境、環境内で実行される Airflow インスタンス、個々の DAG を管理するためのインターフェースが用意されています。

たとえば、 Google Cloud コンソール、Google Cloud CLI、Cloud Composer API、Terraform で Managed Airflow 環境を作成して構成できます。

別の例として、Google Cloud コンソールやネイティブ Airflow UI から、または Google Cloud CLI と Airflow CLI コマンドを実行して、DAG を管理できます。

Managed Airflow の Airflow 機能

Managed Airflow を使用すると、次のような Airflow 機能を管理して使用できます。

Managed Airflow のアクセス制御

セキュリティを Google Cloud プロジェクト レベルで管理し、個別のユーザーが環境を変更または作成できるように IAM ロールを割り当てることができます。プロジェクトへのアクセス権を持たないユーザーや適切な Managed Airflow IAM ロールを持たないユーザーは、環境のどの部分にもアクセスできません。

IAM に加えて、Apache Airflow アクセス制御モデルに基づく Airflow UI アクセス制御を使用できます。

Managed Airflow のセキュリティ機能の詳細については、Managed Airflow のセキュリティの概要をご覧ください。

環境ネットワーキング

マネージド Airflow は、環境のさまざまなネットワーキング構成をサポートしており、多くの構成オプションを利用できます。たとえば、プライベート IP 環境では、DAG と Airflow コンポーネントは公共のインターネットから完全に分離されます。

マネージド Airflow のネットワーキングの詳細については、個々のネットワーキング機能のページをご覧ください。

マネージド Airflow のその他の機能

その他の Managed Airflow の機能は次のとおりです。

よくある質問

Managed Airflow ではどのバージョンの Apache Airflow を使用しますか?

マネージド Airflow 環境は、マネージド Airflow イメージに基づいています。環境を作成するときに、特定の Airflow バージョンのイメージを選択できます。

  • マネージド Airflow(第 3 世代)は Airflow 2 をサポートしています。
  • マネージド Airflow(第 2 世代)は Airflow 2 をサポートしています。
  • マネージド Airflow(以前の Gen 1)は Airflow 1 と Airflow 2 をサポートしています。

環境の Apache Airflow のバージョンをコントロールできます。新しいバージョンの Managed Airflow イメージに環境をアップグレードできます。それぞれの Managed Airflow リリースは、複数の Apache Airflow バージョンをサポートしています。

ネイティブの Airflow UI と CLI を使用できますか?

環境の Apache Airflow ウェブ インターフェースにアクセスできます。各環境には独自の Airflow UI があります。Airflow UI へのアクセスの詳細については、Airflow ウェブ インターフェースをご覧ください。

環境で Airflow CLI コマンドを実行するには、gcloud コマンドを使用します。マネージド Airflow 環境での Airflow CLI コマンドの実行について詳しくは、Airflow コマンドライン インターフェースをご覧ください。

Airflow データベースとして独自のデータベースを使用できますか?

マネージド Airflow は、Airflow データベースにマネージド データベース サービスを使用します。ユーザー提供データベースを Airflow データベースとして使用することはできません。

独自のクラスタをマネージド Airflow クラスタとして使用できますか?

マネージド Airflow は、Google Kubernetes Engine サービスを使用して、Airflow コンポーネントが実行される環境クラスタを作成、管理、削除します。これらのクラスタは、Managed Airflow によってフルマネージドで管理されます。

セルフマネージド Google Kubernetes Engine クラスタに基づいて Managed Airflow 環境を構築することはできません。

独自の Container Registry を使用できますか?

Managed Airflow は、Artifact Registry サービスを使用して、Managed Airflow 環境で使用されるコンテナ イメージ リポジトリを管理します。ユーザー指定の Container Registry に置き換えることはできません。

Managed Airflow 環境はゾーン単位とリージョン単位のどちらですか?

環境を作成するときに、環境のリージョンを指定します。

  • 標準の Managed Airflow 環境には、ゾーンの Airflow データベースとマルチゾーンの Airflow 実行レイヤがあります。Airflow データベースは、指定されたリージョンのいずれかのゾーンに配置され、Airflow コンポーネントは複数のゾーンに分散されます。
  • 復元力が高い(高可用性): Managed Airflow 環境には、マルチゾーンの Airflow データベースとマルチゾーンの Airflow 実行レイヤがあります。復元性に優れた環境は、選択したリージョンの少なくとも 2 つのゾーンで実行されます。Managed Airflow は、環境のコンポーネントをゾーン間で自動的に分散します。Airflow データベースを格納する Cloud SQL コンポーネントには、選択したリージョンのゾーン間に分散されたプライマリ インスタンスとスタンバイ インスタンスがあります。

次のステップ