環境の作成

このページでは、Cloud Composer 環境を作成する方法とその作成プロセス中にデフォルトの Airflow 環境設定をオーバーライドする方法について説明します。

Cloud Composer 環境では Apache Airflow ソフトウェアを実行します。Google Cloud Platform(GCP)プロジェクトで新しい環境を作成する際は、Compute Engine のマシンタイプやクラスタ内のノード数など、いくつかのパラメータを指定できます。

始める前に

アクセス制御

  • Cloud Composer 環境を作成するには environments.create 権限が必要です。詳細については、Cloud Composer のアクセス制御をご覧ください。

  • 組織でドメイン制限の共有を有効にしている場合は、環境を作成する前にポリシーの制約を無効にする必要があります。このアクションにより、必要な ALC を、環境の Cloud Storage バケットに適用できます。環境を作成した後に、ポリシーの制約を再度有効にできます。

  • デフォルトでは、Cloud Composer 環境は Compute Engine のデフォルトのサービス アカウントとして実行されます。環境の作成中にカスタムのサービス アカウントを指定できます。少なくとも、サービス アカウントには、composer.worker 役割によって提供される Cloud Composer 環境のリソースへのアクセス権が必要です。プロジェクトの IAM ポリシーまたは GCP Console には、Google が所有するその他のサービス アカウントが表示される場合があります。利用可能な種類と役割については、サービス アカウントをご覧ください。

  • タスクの実行中にカスタムのサービス アカウントから Google Cloud Platform プロジェクトの他のリソースにアクセスする必要がある場合は、必要な権限をサービス アカウントに追加できます。あるいは、関連する認証情報を Airflow 接続に提供してから、演算子でその接続を参照することもできます。

ベータ版機能

  • 環境でベータ版機能を使用するには、GCP Console でベータ版機能のサポートを有効にする必要があります。

  • ベータ版機能を使用する環境を作成する際は、ベータ版のインターフェースを使用して環境を更新または削除することも必要になります。詳細については、ベータ版機能のサポートをご覧ください。

  • 共有 VPC: Cloud Composer で共有 VPC を使用するための特定のネットワーク要件が存在します。詳細については、共有 VPC の構成をご覧ください。

  • プライベート IP: プライベート IP の Cloud Composer 環境を構築するための特定のネットワーク要件とピアリング要件が存在します。詳細については、プライベート IP の構成をご覧ください。

新しい環境を作成する

Cloud Composer 環境を作成するには次の手順を行います。

Console

  1. Google Cloud Platform Console の [環境の作成] ページを開きます。

    [環境の作成] ページを開く

  2. 環境の名前を入力します。

    名前は先頭を小文字にして、その後に 63 文字以下の小文字、数字、ハイフンで構成します。末尾をハイフンにすることはできません。

  3. [ノード構成] で、Google Kubernetes Engine クラスタのノードの設定を指定します。設定を指定しない場合は、デフォルトの設定が使用されます。

    設定 説明
    ノード数 環境の実行に使用する Google Kubernetes Engine のノード数。デフォルトのノード数は 3 です。ノード数は、環境の作成後に変更できる唯一の Google Kubernetes Engine クラスタ設定です。
    ロケーション (必須)環境を作成する Compute Engine のリージョン
    ゾーン接尾辞 Apache Airflow を実行する仮想マシンのインスタンスを作成する Compute Engine のゾーン。指定しない場合は、ロケーション内のゾーンがランダムに選択されます。
    マシンタイプ クラスタ インスタンスに使用する Compute Engine のマシンタイプ。マシンタイプによって、環境の CPU 数とメモリ容量が決まります。Cloud Composer は、Compute Engine の標準のマシンタイプをサポートしています。デフォルトのマシンタイプは n1-standard-1 です。
    ディスクサイズ ノード VM インスタンスに使用するディスクサイズ(GB)。最小サイズは 20 GB、デフォルトのサイズは 100 GB です。
    OAuth スコープ すべてのノード VM インスタンスで利用可能になる Google API スコープのセット。デフォルトは https://www.googleapis.com/auth/cloud-platform です。指定したスコープのリストに含める必要があります。
    サービス アカウント ノード VM インスタンスによって使用する Google Cloud Platform サービス アカウント。指定しない場合は、デフォルトの Compute Engine サービス アカウントが使用されます。
    タグ ノード VM インスタンスのすべてに適用されるインスタンス タグのリスト。タグは、ネットワーク ファイアウォールの有効なソースやターゲットを識別するために使用されます。リスト内の各タグは、RFC 1035 に準拠している必要があります。
    イメージのバージョン 環境に使用する Cloud Composer のバージョン(Cloud Composer と Airflow のバージョンを含む)。デフォルトのバージョン情報については、バージョン リストをご覧ください。
    Python バージョン 環境に使用する Python のバージョン。サポートされているバージョンは Python 2 と Python 3 です。デフォルトのバージョンは 2 です。
  4. [Network configuration] で、Google Kubernetes Engine クラスタのネットワーク設定を指定します。設定を指定しない場合は、デフォルトの設定が使用されます。

    設定 説明
    ネットワーク 環境でマシンの通信に利用できる VPC ネットワーク。デフォルトは [このプロジェクトのネットワーク] です。共有 VPC の場合は、[ホスト プロジェクトから共有されているネットワーク] を選択します。
    ネットワーク ID マシンの通信に使用する Virtual Private Cloud ネットワーク ID。ネットワーク ID は、サブネットワークを指定するために必要です。指定しない場合は、デフォルトのネットワークが使用されます。
    サブネットワーク ID マシンの通信に使用する Compute Engine サブネットワーク ID
    プライベート IP 環境 プライベート IP Cloud Composer 環境を有効にします。デフォルトでは無効にされています。
    外部 IP アドレスを使用して GKE マスターにアクセスする GKE クラスタ マスターへの公開アクセスを有効にします。プライベート IP 環境が必要になります。
    GKE マスター IP 範囲 マスターの VPC 用の限定公開 RFC 1918 範囲。プライベート IP 環境で必要になります。
  5. (省略可)[Add Airflow configuration property] をクリックして、Airflow 構成ファイル(airflow.cfg)のデフォルト値を変更またはオーバーライドします。

  6. (省略可)[環境変数の追加] をクリックして、環境変数を構成します。要件については、環境変数をご覧ください。

  7. (省略可)[ラベルを追加] をクリックして、ラベルを追加します。

    ラベルキーとラベル値には、文字、数字、ダッシュ、アンダースコアのみを含めることができます。ラベルキーの先頭は文字または数字である必要があります。

  8. [作成] をクリックします。

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    OTHER_ARGUMENTS

次のパラメータを指定します。

  • ENVIRONMENT_NAME は、環境の名前です。パターン ^[a-z](?:[-0-9a-z]{0,62}[0-9a-z])? と一致している必要があります。$
  • LOCATION は、環境が配置される Compute Engine のリージョンです。

次の引数はオプションです。

  • airflow-configs は、SECTION_NAME-PROPERTY_NAME=VALUE のリストです。Airflow 構成によりオーバーライドされます。セクション名とプロパティ名はハイフンで区切る必要があります。
  • disk-size は、ノード VM に使用するディスクのサイズ(GB)です。最小サイズは 20 GB で、デフォルトのサイズは 100 GB です。
  • env-variables は、Airflow スケジューラ、ワーカー、ウェブサーバー プロセスに設定されている NAME=VALUE 環境変数のリストです。
  • enable-private-environment により、プライベート IP Cloud Composer 環境が有効になります。
    • enable-private-endpoint は、GKE クラスタ マスターへの公開アクセスを有効にします。enable-private-environment が必須になります。
    • master-ipv4-cidr は、マスターの VPC 用の限定公開 RFC 1918 範囲です。enable-private-environment が true の場合は必須です。
  • image-version は、環境で composer-a.b.c-airflow-x.y.z 形式で使用する composer-addon バージョンと Airflow バージョンです。バージョンのエイリアスとデフォルトのバージョン情報については、Cloud Composer のバージョ二ングをご覧ください。
  • labels は、環境とそのリソースに付けるユーザー指定のラベルです。
  • machine-type は、クラスタ インスタンスに使用する Compute Engine のマシンタイプです。マシンタイプによって、環境の CPU 数とメモリ容量が決まります。Cloud Composer は、Compute Engine の標準のマシンタイプをサポートしています。デフォルトのマシンタイプは n1-standard-1 です。
  • network は、マシンの通信に使用する Virtual Private Cloud ネットワークです。ネットワークはサブネットワークの指定に必須になります。指定しない場合は、デフォルトのネットワークが使用されます。共有 VPC を使用する場合は、ネットワークの相対的なリソース名projects/HOST_PROJECT_ID/global/networks/NETWORK_ID の形式で指定する必要があります。共有 VPC のサブネットワーク要件については、下記の subnetwork を参照してください。
  • node-count は、環境を実行するために使用する GKE ノードの数です。デフォルトのノード数は 3 です。ノード数は、環境の作成後に変更できる唯一の Google Kubernetes Engine クラスタ設定です。
  • oauth-scopes は、すべてのノード VM で利用可能になる Google API スコープのセットです。デフォルトの OAuth スコープは https://www.googleapis.com/auth/cloud-platform であり、指定されている場合はスコープのリストに含める必要があります。
  • python-version は、環境で使用する Python のバージョンです。サポートされているバージョンは Python 2 と Python 3 です。デフォルトのバージョンは 2 です。
  • subnetwork は、環境が接続する Compute Engine のサブネットワークです。gcloud を使用して共有 VPC 環境を作成する場合は、セカンダリ IP 範囲の composer-podcomposer-services を使用する必要があります。Cloud Composer API を使用すると、別のセカンダリ範囲名を指定できます。サブネットワーク名は、projects/HOST_PROJECT_ID/regions/REGION_ID/subnetworks/SUBNET_ID 形式を使用して相対的なリソース名として指定する必要があります。共有 VPC はベータ版であり、gcloud beta composer environments create コマンドが必須になります。
  • service-account は、ノード VM インスタンスによって使用される Google Cloud Platform サービス アカウントです。指定しない場合は、デフォルトの Compute Engine サービス アカウントが使用されます。
  • tags は、ノード VM すべてに適用されるインスタンス タグのリストです。タグは、ネットワーク ファイアウォールの有効なソースまたはターゲットを識別するために使用されます。リスト内の各タグは、RFC 1035 に準拠している必要があります。

次の例では、beta 環境ラベルが指定された n1-standard-2 マシンタイプを使用する us-central1 リージョンで、サポートされている最新の Cloud Composer イメージ バージョンを実行する環境を作成します。

gcloud beta composer environments create test-environment \
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --image-version composer-latest-airflow-x.y.z \
    --labels env=beta  

次の共有 VPC の例では、ホスト プロジェクトに環境を作成します。環境は us-central1 リージョンにあり、beta 環境ラベルが指定された n1-standard-2 マシンタイプを使用しています。

gcloud beta composer environments create host-project-environment \
    --network vpc-network-name --subnetwork vpc-subnetwork-name
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --labels env=beta  

API

Cloud Composer REST API を使用して新しい Cloud Composer 環境を作成するには、environments.create API リクエストを作成し、Environment リソースに構成情報を入力します。

メール通知を構成する

SendGrid メールサービスの構成

通知を受け取るには、SendGrid メールサービスを介してメールを送信するように環境変数を構成します。

  1. まだメールサービスに登録していない場合は、Google Cloud Platform Console を介して SendGrid に登録して API キーを作成してください。Google Cloud Platform のデベロッパーとして登録すると、毎月 12,000 件の無料メールから始めることができます。

  2. GCP Console で、[環境の作成] ページを開きます。

    [環境の作成] ページを開く

  3. [ノード構成] で [環境変数を追加] をクリックします。

  4. 次の環境変数を入力します。

    名前
    SENDGRID_MAIL_FROM From: に指定するメールアドレス(noreply-composer@ など)。
    SENDGRID_API_KEY SendGrid API キー。
  5. SendGrid 構成をテストするには、次の手順を行います。

    1. EmailOperator を使用するテスト DAG を作成します。
    2. 環境に DAG をアップロードし、EmailOperator タスクが成功することを確認します。
    3. SendGrid の認証情報を使用して SendGrid にログインします。
    4. SendGrid UI で、[Activity] ページに移動します。
    5. メールのリストを検索します。SendGrid がメールを処理して配信したことを確認します。
    6. メールが処理、配信されていない場合は、次の手順を行います。
      • Sendgrid の構成を確認します。
      • 環境変数の SENDGRID_MAIL_FROMSENDGRID_API_KEY が正しく設定されていることを確認します。
      • メール クライアントのスパムフィルタを確認します。

サードパーティ製の SMTP サービスの構成

サードパーティ製の SMTP サービスを介してメールを送信するには、email_backend Airflow 構成をオーバーライドする必要があります。

  1. [環境の作成] ページを開きます。

    [環境の作成] ページを開く

  2. [Airflow 構成のオーバーライド] で、[Airflow 構成のオーバーライドを追加] をクリックします。
  3. 次の構成プロパティを入力します。

    セクション キー
    email email_backend airflow.utils.email.send_email_smtp
    smtp smtp_host SMTP サーバーのホスト名。
    smtp smtp_user SMTP サーバー上のユーザー名。
    smtp smtp_port ポート 25 以外のポート。ポート 25 はブロックされています。
    smtp smtp_password Airflow のデフォルトの SMTP パスワード。新しいパスワードを構成することはできません。
    smtp smtp_mail_from From: に指定するメールアドレス(noreply-composer@ など)。
    smtp smtp_starttls セキュリティを強化するには、True に設定します。
    smtp smtp_ssl セキュリティを強化するには、True に設定します。

その他の SMTP 構成については、お使いの Airflow リリースの default_airflow.cfg をご覧ください。

Airflow 構成をオーバーライドする

環境を作成または更新する際に、Apache Airflow の構成プロパティをオーバーライドできます。一部のプロパティはブロックされています。

Console

  1. [環境の作成] ページを開きます。

    [環境の作成] ページを開く

  2. [Airflow 構成のオーバーライド] で、[Airflow 構成のオーバーライドを追加] をクリックします。

  3. 構成の、セクションキー、新しいを入力します。

例:

セクション キー
webserver dag_orientation RL

gcloud

環境を作成するときに Airflow 構成をオーバーライドするコードは、次のとおりです。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --airflow-configs=KEY=VALUE,KEY=VALUE,...

ここで

  • ENVIRONMENT_NAME は、環境の名前です。
  • LOCATION は、環境が配置される Compute Engine のリージョンです。
  • KEY=VALUE は、ハイフンで区切られた構成のセクションとプロパティ名(core-print_stats_interval など)とそれに対応する値です。

例:

gcloud composer environments create test-environment \
    --location us-central1 \
    --airflow-configs=core-load_example=True,webserver-dag_orientation=TB 

オペレーションが完了すると、コマンドは終了します。待機しないようにするには、--async フラグを指定してください。その他の例については、gcloud composer 環境の更新リファレンス ページをご覧ください。

API

Cloud Composer 環境の作成中に Cloud Composer REST API を使用して Airflow のプロパティをオーバーライドするには、environments.create リクエストを作成する際に、Environment リソースのオプション airflowConfigOverrides フィールドを入力します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...