ランナー環境を作成する

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

ランナー環境について

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

始める前に

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

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

  • Orchestration Pipelines パッケージは、 次の バージョン以降の Managed 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

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

  • マネージド Airflow 環境の作成に要する時間は約 25 分です。

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

  • このガイドで提供されているデフォルト構成では、パブリック IP Managed 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. 使用するサービス(Dataproc API など)の API を有効にします。 Google Cloud

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

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

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

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

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

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

  3. マネージド Airflow(第 2 世代)環境を使用する場合は、 マネージド 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

マネージド Airflow 環境の作成には約 25 分かかります。

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

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]に追加します。