Cloud Composer の機能

このページでは Cloud Composer の特長と機能の概要を説明します。

Cloud Composer は、ワークフローの作成、スケジューリング、モニタリング、管理を支援する、マネージド Apache Airflow サービスです。

Airflow 環境

Cloud Composer 環境は、Apache Airflow を基盤としたラッパーです。 Cloud Composer は、各環境用に次のコンポーネントを作成します。

  • GKE クラスタ: Airflow スケジューラ、ワーカー、Redis Queue は、単一のクラスタで GKE ワークロードとして実行され、DAG の処理と実行を行います。このクラスタは Composer Agent や Airflow Monitoring などの他の Cloud Composer コンポーネントもホストします。これらのコンポーネントは、Cloud Composer 環境の管理、Cloud Logging に保存するログの収集、Cloud Monitoring にアップロードするための指標の収集に役立ちます。
  • ウェブサーバー: ウェブサーバーは Apache Airflow ウェブ インターフェースを実行し、Identity-Aware Proxy はそのインターフェースを保護します。詳細については、Airflow ウェブ インターフェースをご覧ください。
  • データベース: データベースは Apache Airflow のメタデータを保持します。
  • Cloud Storage バケット: Cloud Composer は Cloud Storage バケットを環境と関連付けます。関連付けられたバケットには、環境の DAGログ、カスタム プラグイン、データが保存されます。Cloud Composer のストレージ バケットの詳細については、Cloud Storage に保存されるデータをご覧ください。

Airflow 管理

Airflow 環境のアクセスと管理には、次の Airflow ネイティブのツールを使用できます。

  • ウェブ インターフェース: Airflow ウェブ インターフェースには、Google Cloud Console から、または適切な権限を持つ直接 URL からアクセスできます。詳細については、Airflow ウェブ インターフェースをご覧ください。
  • コマンドライン ツール: Cloud SDK をインストールすると、gcloud composer environments コマンドを実行して、Airflow コマンドライン コマンドを Cloud Composer 環境に発行できます。詳細については、Airflow コマンドライン インターフェースをご覧ください。

ネイティブ ツールのほかに、Cloud Composer の REST API と RPC API によって、Airflow 環境にプログラマティックにアクセスできます。詳細については、API とリファレンスをご覧ください。

Airflow 構成

一般に、Cloud Composer が Apache Airflow 用に提供する構成は、ローカルにホストされた Airflow デプロイの構成と同じです。一部の Airflow 構成は、Cloud Composer で事前構成されているため、構成プロパティを変更できません。その他の構成については、環境を作成、更新するときに指定します。詳細については、ブロックされている Airflow 構成をご覧ください。

Airflow DAG(ワークフロー)

Apache Airflow DAG はワークフローであり、追加のタスク依存関係を持つタスクの集まりです。Cloud Composer では DAG の保存に Cloud Storage を使用します。Cloud Composer 環境から DAG を追加または削除するには、その環境に関連付けられている Cloud Storage バケットから DAG を追加または削除します。DAG をストレージ バケットに移動すると、自動的に DAG が環境に追加されてスケジュール設定されます。

DAG のスケジュールに加えて、DAG を手動でトリガーしたり、イベント(関連する Cloud Storage バケットで発生した変更など)に対するレスポンスとして DAG をトリガーしたりできます。 詳細については、DAG のトリガーをご覧ください。

プラグイン

カスタム プラグインを Cloud Composer 環境にインストールできます(カスタムの、インハウス Apache Airflow 演算子、フック、センサー、インターフェースなど)。詳細については、カスタム プラグインのインストールをご覧ください。

Python 依存関係

Python 依存関係は、環境の Python パッケージ インデックス、またはプライベート パッケージ リポジトリからインストールできます。詳細については、Python 依存関係のインストールをご覧ください。

依存関係がパッケージ インデックスにない場合は、プラグイン機能を使用することもできます。

アクセス制御

セキュリティは Google Cloud プロジェクト レベルで管理し、個々のユーザーが環境を変更したり作成したりできないように Identity and Access Management(IAM)のロールを割り当てることが可能です。プロジェクトへのアクセス権を持たないユーザーや適切な Cloud Composer IAM 役割を持たないユーザーは、環境のどの部分にもアクセスできません。詳細については、アクセス制御をご覧ください。

ロギングとモニタリング

Airflow ウェブ インターフェースで単一の DAG タスクに関連付けられた Airflow ログを表示し、関連付けられた Cloud Storage バケットで logs フォルダを表示することができます。

ストリーミング ログは Cloud Composer で利用できます。Google Cloud のオペレーション スイートを使用することによって、Google Cloud Console のログビューアでストリーミング ログにアクセスできます。Google Cloud のオペレーション スイートの使用方法については、Cloud Composer 環境のモニタリングをご覧ください。

Cloud Composer には、Google Cloud プロジェクトの管理アクティビティ監査ログなどの監査ログも用意されています。詳細については、監査ログの表示をご覧ください。

ネットワークとセキュリティ

デフォルトでは、Cloud Composer は、マシンとの通信にデフォルトの VPC ネットワークを使用するルートベースの GKE クラスタをデプロイします。セキュリティとネットワークの柔軟性を高めるため、Cloud Composer では次の機能もサポートされています。

共有 VPC

共有 VPC は、中央ホスト プロジェクトから共有ネットワーク リソースを管理できるようにし、プロジェクト間で一貫したネットワーク ポリシーを適用します。

Cloud Composer が共有 VPC に参加すると、Cloud Composer 環境がサービス プロジェクト内に配置され、他の Google Cloud プロジェクトでホストされているサービスを呼び出せるようになります。サービス プロジェクト内のリソースは、内部 IP アドレスを使用して、プロジェクトの境界を越えて安全な通信を行います。ネットワークとホスト プロジェクトの要件については、共有 VPC の構成をご覧ください。

VPC ネイティブ Cloud Composer 環境

VPC ネイティブでは、GKE クラスタの Pod と Service IP アドレスが Google Cloud ネットワーク内(VPC ネットワーク ピアリング経由も含む)でネイティブにルーティングできます。

この構成では、Cloud Composer は環境内のエイリアス IP アドレスを使用して VPC ネイティブ GKE クラスタをデプロイします。VPC ネイティブのクラスタを使用する場合、GKE は自動的にセカンダリ範囲を選択します。特定のネットワーキング要件では、Cloud Composer 環境の構成中に GKE Pod と GKE Service のセカンダリ範囲を構成することもできます。

プライベート IP Cloud Composer 環境

プライベート IP を使用すると、Cloud Composer ワークフローは公共のインターネットから確実に隔離されます。

この構成では、Cloud Composer は顧客プロジェクト内のエイリアス IP アドレスを使用して VPC ネイティブ GKE クラスタをデプロイします。環境内の GKE クラスタはプライベート クラスタとして構成され、Cloud SQL インスタンスはプライベート IP 用に構成されます。また、顧客プロジェクトの VPC ネットワークとテナント プロジェクトの VPC ネットワーク間のピアリング接続も作成されます。