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