ランナー環境を作成する

このページでは、オーケストレーション パイプラインを実行するランナー環境を作成するプロセスについて説明します。

ランナー環境について

各デプロイ環境には、ランナー環境が必要です。マネージド Airflow は、パイプラインのデプロイ後にパイプラインを実行するオーケストレーション エンジンです。ランナー環境は、デプロイ環境に割り当てたマネージド Airflow 環境です。

始める前に

  • 現時点では、Google Cloud の Orchestration Pipelines で使用できるランナーは Managed Service for Apache Airflow のみです。Managed Airflow のすべての割り当てとシステム上限が適用されます。ランナー環境の費用については、Managed Airflow の料金をご覧ください。

  • Orchestration Pipelines は、Managed Airflow(第 3 世代)と(第 2 世代)のランナー環境で実行できます。マネージド Airflow(第 3 世代)では、Airflow 3 と Airflow 2 の両方を使用できます。

  • Orchestration Pipelines パッケージは、次のバージョン以降のマネージド Airflow にプリインストールされています。

    • composer-3-airflow-3.1.7-build.5
    • composer-3-airflow-2.11.1-build.1composer-3-airflow-2.10.5-build.34composer-3-airflow-2.9.3-build.54
    • composer-2.16.11-airflow-2.11.1composer-2.16.11-airflow-2.10.5

    以前のバージョンの Managed Airflow を使用している場合は、PyPI から orchestration-pipelines パッケージを手動でインストールできます。

  • Managed Airflow 環境の作成に要する時間は約 25 分です。

  • マネージド Airflow 環境は、Google Cloud コンソール、gcloud CLI、Terraform で作成できます。このガイドでは、gcloud CLI コマンドのみを示します。他のアプローチの手順と例については、Managed Airflow ドキュメントの環境を作成するをご覧ください。

  • このガイドで提供されているデフォルト構成では、パブリック IP のマネージド Airflow 環境が作成されます。マネージド Airflow には、ネットワーキングとセキュリティ構成に関するオプションが多数用意されています。ランナー環境を設定するさまざまな方法の詳細については、Managed Airflow ドキュメントの環境を作成するをご覧ください。

必要な IAM ロールを確認する

プロジェクトでランナー環境を作成するために必要な権限を取得するには、次のロールを付与するよう管理者に依頼してください。

  • 環境とストレージ オブジェクト管理者composer.environmentAndStorageObjectAdmin)ロールとサービス アカウント ユーザーiam.serviceAccountUser)ロール。Managed Service for Apache Airflow で環境を作成して管理し、これらの環境に関連付けられたバケット内のオブジェクトを管理します。これらのユーザーロールの詳細については、Managed Service for Apache Airflow のドキュメントのユーザーにロールを付与するをご覧ください。

Cloud Composer API とアクション用 API を有効にする

  1. Cloud Composer API を有効にします。マネージド Airflow で使用されるサービスの完全な一覧については、マネージド Airflow に必要なサービスをご覧ください。
  2. 使用する Google Cloud サービスの API(Dataproc API など)を有効にします。

ランナー環境の新しいサービス アカウントを作成し、IAM ロールを付与する

ランナー環境のサービス アカウントは、新しい Managed Service for Apache Airflow 環境を作成し、そこにデプロイするすべてのオーケストレーション パイプラインを実行するために使用されます。

管理者に次のことを依頼してください。

  1. Identity and Access Management のドキュメントの説明に沿って、新しいサービス アカウントを作成します

  2. Composer ワーカーcomposer.worker)ロールを付与します。ほとんどの場合、このロールには、この必要な権限セットが含まれています。

    Google Cloud プロジェクト内の他のリソースにアクセスするには、このサービス アカウントにこれらのリソースにアクセスするための追加の権限を付与します。オーケストレーション パイプラインの運用に必要な場合のみ、このサービス アカウントに追加の権限を追加してください。

  3. Managed Airflow(第 2 世代)環境を使用する場合は、Managed Airflow サービス アカウントに必要な権限を付与するの手順に沿って、追加の権限を付与します。

  4. パイプラインに必要な権限を付与します。パイプライン内のすべてのオーケストレーション タスクは、このランナー環境のサービス アカウントによって実行されるため、このサービス アカウントに必要なすべての権限を手動で付与する必要があります。

    たとえば、パイプラインで Managed Service for Apache Spark エフェメラル クラスタで実行されるアクションを使用する場合、ランナー環境のサービス アカウントには、Managed Service for Apache Spark クラスタの作成と削除、Managed Service for Apache Spark ジョブのトリガーと管理を行う権限が必要です。また、Dataproc API を有効にする必要があります。

Managed Service for Apache Airflow 環境を作成する

次の考慮事項に沿って、Managed Service for Apache Airflow 環境を作成します。

  • 環境名: 任意の名前。この名前は、後でパイプラインを [デプロイ][op-deploy] するときに使用します。例: example-runner
  • イメージ バージョン: 使用する Managed Service for Apache Airflow と Airflow のバージョン。gcloud CLI では、デフォルト バージョンを指すエイリアス(composer-3-airflow-3composer-2-airflow-2 など)を使用できます。
  • 場所: 任意の場所。例: us-central1
  • サービス アカウント: この環境用に作成したサービス アカウント。

gcloud CLI コマンドの例:

gcloud composer environments create example-runner \
  --location us-central1 \
  --image-version composer-3-airflow-3 \
  --service-account "example-account@example-project.iam.gserviceaccount.com"

プレビューの推奨ワークロード構成の例(後でいつでもスケールアップまたはスケールダウンできます)。

gcloud composer environments create example-runner \
  --location us-central1 \
  --image-version composer-3-airflow-3 \
  --service-account "example-account@example-project.iam.gserviceaccount.com" \
  --scheduler-cpu 2 \
  --scheduler-memory 8GB \
  --dag-processor-cpu 4 \
  --dag-processor-memory 8GB \
  --worker-cpu 4 \
  --worker-memory 8GB

Managed Airflow 環境の作成には約 25 分かかります。

(省略可)PyPI から Orchestration Pipelines パッケージをインストールする

オーケストレーション パイプラインは、orchestration-pipelines PyPI パッケージに依存します。デフォルトでは、ランナー環境にこのパッケージがプリインストールされています。

このパッケージがプリインストールされていない以前のバージョンの Managed Airflow を使用している場合や、別のバージョンのパッケージをインストールする場合は、PyPI からこのパッケージをインストールできます。

例:

gcloud composer environments update example-runner \
    --location us-central1 \
    --update-pypi-package "orchestration-pipelines>=0.11.1"

ランナー環境に PyPI パッケージをインストールする方法と、 Google Cloud コンソールと Terraform でこれを行う例については、Managed Service for Apache Airflow ドキュメントの Python の依存関係をインストールするをご覧ください。

次のステップ

  • [デプロイ構成][op-deploy] にランナー環境を追加します。