Apache Airflow ウェブ ユーザー インターフェースにアクセスする

Cloud Composer 1 | Cloud Composer 2

Apache Airflow には、ワークフロー(DAG)の管理、Airflow 環境の管理、管理アクションの実行に使用できるウェブ ユーザー インターフェース(UI)が含まれています。たとえば、ウェブ インターフェースを使用すると、DAG の進行状況の確認、新しいデータ接続の設定、以前の DAG 実行からのログの確認ができます。

Airflow ウェブサーバー

Cloud Composer 環境ごとに、Airflow ウェブ インターフェースを実行するウェブサーバーを持ちます。ウェブサーバーは Cloud Composer 環境アーキテクチャの一部です。

ウェブサーバーは dags/ フォルダ内の DAG 定義ファイルを解析します。また、DAG をロードし、HTTP リクエストを処理するため、DAG のデータとリソースにアクセスできる必要があります。

ウェブサーバーは DAG を 60 秒ごとに更新します。これは、Cloud Composer のデフォルト worker_refresh_interval です。更新間隔内でウェブサーバーがすべての DAG を解析できない場合、ウェブサーバー エラーが発生することがあります。

DAG ファイルの数が多い場合や、DAG ファイルを読み込む際の作業負荷が少なくない場合、DAG の読み込みに 60 秒以上かかることがあります。DAG の読み込み時間に関係なくウェブサーバーがアクセス可能な状態を維持できるように、非同期 DAG 読み込みを構成して、事前構成された間隔で DAG の解析と読み込みをバックグラウンドで行うことができます(composer-1.7.1-airflow-1.10.2 以降のバージョンで使用可能)。この構成では、DAG 更新時間も短縮できます。

ワーカーの更新間隔の超過だけではなく、ほどんどの場合の DAG 読み込みの失敗に対しても、ウェブサーバーは適切に対処できます。DAG が原因でウェブサーバーがクラッシュする、または終了する場合は、ブラウザでエラーが返されることがあります。詳細については、DAG のトラブルシューティングをご覧ください。

DAG 解析によってウェブサーバーの問題が引き続き発生する場合は、非同期 DAG 読み込みを使用することをおすすめします。

始める前に

  • Cloud Composer 環境を表示できるロールを付与されている必要があります。詳細については、アクセス制御をご覧ください。

  • 環境の作成中に、Cloud Composer によって Airflow ウェブ インターフェースを実行するウェブサーバーの URL が構成されます。この URL はカスタマイズできません。

  • Airflow ウェブ インターフェースの Airflow UI アクセス制御(Airflow ロールベースのアクセス制御)機能は、Composer バージョン 1.13.4 以降 Airflow バージョン 1.10.10 以降、Python 3 を実行している Cloud Composer 環境でサポートされています。

Airflow ウェブ インターフェースへのアクセス

Airflow ウェブサーバー サービスは appspot.com ドメインにデプロイされ、Airflow ウェブ インターフェースへのアクセスを提供します。Cloud Composer 1 では、ユーザー ID と、ユーザー用に定義された IAM ポリシー バインディングに基づいて、インターフェースにアクセスできます。Cloud Composer 1 では、この目的のために Identity-Aware Proxy を使用します。

新しい Cloud Composer 環境を作成してから、ウェブ インターフェースがホスティングを終了してアクセス可能になるまでに最大で 25 分間かかります。

Google Cloud Console からウェブ インターフェースへのアクセス

Google Cloud Console から Airflow ウェブ インターフェースにアクセスするには:

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. [Airflow webserver] 列で、ご使用の環境の [Airflow] リンクをクリックします。

  3. 適切な権限を持つ Google アカウントでログインします。

Airflow ウェブサーバーへのアクセスの制限

Composer 環境では、Airflow ウェブサーバーへのアクセスを制限できます。

  • すべてのアクセスをブロックする、または特定の IPv4 または IPv6 の外部 IP 範囲からのアクセスを許可することができます。
  • プライベート IP アドレスを使用して、許可された IP 範囲を構成することはできません。

gcloud コマンドライン ツールを使用したウェブ インターフェース URL の取得

任意のウェブブラウザから Airflow ウェブ インターフェースにアクセスできます。ウェブ インターフェースの URL を取得するには、gcloud コマンドを入力します。

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

以下を置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン

gcloud コマンドにより、ウェブ インターフェースの URL を含む Cloud Composer 環境のプロパティが表示されます。URL は、airflowUri として一覧表示されます。

config:
  airflowUri: https://example-tp.appspot.com

非同期 DAG 読み込みの構成

非同期の DAG 読み込みを有効にすると、Airflow ウェブサーバーによって新しいプロセスが作成されます。このプロセスはバックグラウンドで DAG を読み込み、新たに読み込まれた DAG を dagbag_sync_interval オプションで定義された間隔で送信して、スリープ状態になります。

プロセスは定期的に起動し、DAG を再読み込みします。その際の間隔は collect_dags_interval オプションによって定義されます。

非同期の DAG 読み込みを有効にするには:

  1. DAG のシリアル化を無効にする。非同期 DAG 読み込みは DAG シリアル化とは使用できません。async_dagbag_loaderstore_serialized_dags Airflow 構成オプションを使用すると HTTP 503 エラーが発生し、環境が壊れます。

  2. 次の Airflow 構成オプションをオーバーライドします。

    セクション キー
    webserver async_dagbag_loader True デフォルトは False です。
    webserver collect_dags_interval 30 デフォルトは 30 です。小さい値を指定するほど、更新間隔が短くなります。
    webserver dagbag_sync_interval 10 デフォルトは 10 です。
    webserver worker_refresh_interval 3600 デフォルトは 60 です。非同期の DAG 読み込みでは、より長い更新間隔を使用できます。

ウェブサーバーの再起動

Cloud Composer 環境のデバッグやトラブルシューティングを行う際は、Airflow ウェブサーバーを再起動することで一部の問題が解決する場合があります。ウェブサーバーは、restartWebServer API または restart-web-server gcloud コマンドを使用して再起動できます。

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
  --location=LOCATION