Managed Airflow(Gen 3) | Managed Airflow(Gen 2) | Managed Airflow(レガシー Gen 1)
このページでは、Airflow と DAG の概要、および Managed Airflow の特長と機能について説明します。
Managed Airflow リリースの新機能の詳細については、 リリースノートをご覧ください。
Managed Airflow について
Managed Airflow は、フルマネージドのワークフロー オーケストレーション サービスです。クラウドとオンプレミス データセンターにまたがるワークフロー パイプラインの作成、スケジューリング、モニタリング、管理ができます。
Managed Airflow は一般的な Apache Airflow のオープンソース プロジェクトを基に構築されており、 Python プログラミング言語を使用して動作します。
Apache Airflow のローカル インスタンスではなく Managed Airflow を使用すると、ユーザーはインストールや管理のオーバーヘッドなしに、Airflow のメリットを活用できます。Managed Airflow により、マネージド Airflow 環境を迅速に作成し、強力な Airflow ウェブ インターフェースやコマンドライン ツールなどの Airflow ネイティブのツールを使用することができるため、インフラストラクチャではなくワークフローに労力を集中できます。
Managed Airflow のバージョンの違い
Managed Airflow のメジャー バージョンの違いの詳細については、 Managed Service for Apache Airflow のバージョン管理の概要をご覧ください。
Airflow と Airflow DAG(ワークフロー)
データ分析において、ワークフローは、データの取り込み、変換、分析、または利用のための一連のタスクを表します。Airflow では、DAG(つまり「有向非巡回グラフ」)を使用してワークフローが作成されます。
DAG は、スケジューリングして実行するタスクのコレクションであり、それらの関係と依存関係を反映して編成されます。DAG は Python ファイル内で作成され、コードを使用して DAG の構造が定義されます。DAG の目的は、各タスクが適切なタイミングと順序で実行されるようにすることです。
DAG の各タスクは、ほとんどあらゆるものを表すことができます。たとえば、1 つのタスクで次の機能を行うことがあります。
- 取り込み用のデータの準備
- API のモニタリング
- メール送信
- パイプラインの実行
スケジュールに基づいて DAG を実行するだけでなく、DAG を手動でトリガーすることも、Cloud Storage バケットの変更などのイベントに応答して DAG をトリガーすることもできます。詳細については、DAG のスケジュール設定とトリガーをご覧ください。
DAG と タスクの詳細については、 Apache Airflow のドキュメントをご覧ください。
Managed Airflow 環境
Managed 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 インターフェース
Managed Airflow には、環境、環境内で実行される Airflow インスタンス、個々の DAG を管理するためのインターフェースが用意されています。
たとえば、作成して 構成できます。 Google Cloud コンソール、 Google Cloud CLI、Cloud Composer API API、または Terraform で Managed Airflow 環境を
別の例として、コンソールや Google Cloud ネイティブ Airflow UI から、または Google Cloud CLI と Airflow CLI コマンドを実行して、DAG を管理できます。
Managed Airflow の Airflow 機能
Managed Airflow を使用すると、次のような Airflow 機能を管理して使用できます。
Airflow DAG: コンソールまたはネイティブの Airflow UI を使用して、 Airflow DAG の追加、更新、削除、トリガーを行えます。 Google Cloud
Airflow 構成オプション: Airflow 構成オプションを、 Managed Airflow で使用されるデフォルト値からカスタム値に変更できます。Managed Airflow では、一部の構成オプションは ブロックされているため、その値を変更できません。
カスタム プラグイン: カスタム Airflow プラグイン(カスタムのインハウス Apache Airflow 演算子、フック、 センサー、インターフェースなど)を Managed Airflow 環境にインストールできます。
Python 依存関係: Python 依存関係は、環境の Python パッケージ インデックス、または Artifact Registry リポジトリなどの プライベート パッケージ リポジトリからインストールできます。依存関係がパッケージ インデックスにない場合は、プラグインを使用することもできます。
DAG、Airflow コンポーネント、Managed Airflow 環境のロギングとモニタリング:
Managed Airflow でのアクセス制御
セキュリティを Google Cloud プロジェクト レベルで管理し、個別の ユーザーが環境を変更または作成できるように IAM ロールを割り当てることができます。プロジェクトへのアクセス権を持たないユーザーや適切な Managed Airflow IAM ロールを持たないユーザーは、環境のどの部分にもアクセスできません。
IAM に加えて、Apache Airflow アクセス制御モデルに基づく Airflow UI アクセス制御を使用できます。
Managed Airflow のセキュリティ機能の詳細については、 Managed Airflow のセキュリティの概要をご覧ください。
環境ネットワーキング
Managed Airflow は、環境のさまざまなネットワーキング構成をサポートしており、多くの構成オプションを利用できます。たとえば、プライベート IP 環境では、DAG と Airflow コンポーネントは公共のインターネットから完全に分離されます。
Managed Airflow のネットワーキングの詳細については、個々のネットワーキング機能のページを参照してください。
Managed Airflow のその他の機能
Managed Airflow のその他の機能は次のとおりです。
- 環境の自動スケーリング
- ローカルの Airflow 環境での開発
- 復元力の高い環境
- 環境スナップショット
- Knowledge Catalog とのデータリネージ統合
- 顧客管理の暗号鍵(CMEK)による暗号化
よくある質問
Managed Airflow ではどのバージョンの Apache Airflow を使用しますか?
Managed Airflow 環境は、 Managed Airflow イメージに基づいています。環境を作成するときに、特定の Airflow バージョンのイメージを選択できます。
- Managed Airflow(Gen 3)は Airflow 2 をサポートします。
- Managed Airflow(Gen 2)は Airflow 2 をサポートします。
- Managed 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 コマンドを使用します。
Managed Airflow 環境での Airflow CLI コマンドの実行について詳しくは、
Airflow コマンドライン インターフェースをご覧ください。
Airflow データベースとして独自のデータベースを使用できますか?
Managed Airflow は、Airflow データベースにマネージド データベース サービスを使用します。ユーザー提供データベースを Airflow データベースとして使用することはできません。
独自のクラスタを Managed Airflow クラスタとして使用できますか?
Managed 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 コンポーネントには、選択したリージョン内のゾーンに分散されたプライマリ インスタンスと スタンバイ インスタンスがあります。