Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
このページでは、Airflow ウェブサーバーの一般的な問題に関する情報とトラブルシューティングの手順について説明します。
Airflow ウェブサーバーは、Airflow の DAG とタスクを管理するためのユーザー インターフェースを提供する Airflow コンポーネントです。このページでは、環境の Airflow ウェブサーバーにアクセスする際のさまざまな問題や、Airflow ログに表示されるウェブサーバー関連の警告に関するトラブルシューティングの手順について説明します。
ネットワーク アクセス制御が有効になっている場合に Airflow UI にアクセスできない
症状: ウェブサーバーのアクセス制御を構成した後、Airflow UI にアクセスできません。通常、この状況で表示されるエラーコードは 403 です。
問題に関する情報: Cloud Composer はウェブサーバーのネットワーク アクセス制御をサポートしているため、ウェブサーバーに接続できる IP 範囲を指定することができます。
Airflow UI へのアクセスで問題が発生すると、通常はエラー 403 が発生します。エラーがウェブサーバーのネットワーク アクセス制御に関連しているかどうかを確認するには、次の操作を行います。
- 環境のリストで、ご利用の環境の名前をクリックします。 [環境の詳細] ページが開きます。
- [環境の設定] タブに移動します。
- [ウェブサーバーのアクセス制御] 項目が [すべての IP アドレスがアクセスできる(デフォルト)] に設定されているかどうかを確認します。
- [すべての IP アドレスがアクセスできる(デフォルト)] とは異なる値が構成されている場合、ネットワーク アクセス制御が有効になり、Airflow UI の公開設定は、指定された IPv4 と IPv6 のアドレス範囲に制限されます。この場合、問題がウェブサーバーのネットワーク アクセス制御に関係している可能性があります。
ほとんどの場合、問題の原因は、指定した目的の IP と、Airflow UI に接続するために実際に解決された IP の不一致です。問題を解決するには、次の手順を行います。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[ウェブサーバーのアクセス制御] の項目を見つけて、[編集] をクリックします。
[ウェブサーバーのネットワーク アクセス制御] ダイアログで、[すべての IP アドレスからのアクセスを許可する] を選択します。
Airflow UI に複数回アクセスし、問題なく動作することを確認します。
問題が起きない場合は、次のステップに進みます。
この時点で問題が発生した場合は、IAM 権限の構成に関する問題がある可能性があります。Cloud Composer の IAM 権限の詳細については、アクセス制御をご覧ください。
[ウェブサーバーのネットワーク アクセス制御] ダイアログで、[特定の IP アドレスからのアクセスのみを許可する] を選択します。
0.0.0.0/0
IP 範囲を追加し、Airflow UI に複数回アクセスして、問題なく動作することを確認します。問題が発生しない場合は、接続している IP が IPv4 アドレスです。
この時点で問題が発生した場合は、接続している IP が IPv6 アドレスであることを意味します。
0.0.0.0/0
IP 範囲を削除し、::/0
IP 範囲を追加します。問題が発生しない場合は、接続している IP が IPv6 アドレスです。
この時点で問題が発生した場合は、接続している IP が IPv4 アドレスであることを意味します。
これで、解決されたアドレスが IPv4 か IPv6 かを特定できました。
アドレスの種類に応じて、
::/0
または0.0.0.0/0
の範囲をより具体的なものに絞り込み、アクセスが停止する範囲のうち最も広いものを確認します。IP アドレスを想定しているアドレスを含むワイド サブネット マスク(
192.0.2.0/8
など)で開始できます。IP アドレスを確認するには、ページにアクセスしたときに外部 IP アドレスを提供するサードパーティ サービスを使用します。このようなサービスは、「私の IP アドレスは何ですか」という検索クエリで検索できます。
構成ページに構成値が表示されない
機密情報にアクセスできないように、Airflow の一部のパラメータは構成ページに表示されません。たとえば、Airflow データベースにアクセスするための認証情報は表示されません。
非表示フィールドを表示するには、次の Airflow 構成オプションをオーバーライドします。必要な値を取得したら、変更を元に戻すことをおすすめします。
セクション | キー | 値 | メモ |
---|---|---|---|
webserver
|
expose_config
|
True
|
デフォルト値は non-sensitive-only です。すべての構成パラメータを非表示にするには、False に設定します。 |
DAG で Airflow ウェブサーバーがクラッシュする、または 502 ゲートウェイ タイムアウト エラーが返される
ウェブサーバーでは、いくつかの異なる理由で失敗が生じる可能性があります。Cloud Logging で airflow-webserver ログを確認して、502 gateway timeout
エラーの原因を特定します。
負荷の高い計算
このセクションは、Cloud Composer 1 にのみ適用されます。
CPU とメモリ容量を増やすためにマシンタイプをカスタマイズできるワーカーノードやスケジューラ ノードとは異なり、ウェブサーバーは固定されたマシンタイプを使用します。そのため、解析時の処理が重すぎる場合、DAG の解析の失敗を引き起こす可能性があります。
ウェブサーバーには 2 つの vCPU と 2 GB のメモリが備わっています。
core-dagbag_import_timeout
のデフォルト値は 30 秒です。このタイムアウト値により、Airflow が /dags
フォルダ内の Python モジュールの読み取りに費やす時間の上限が定義されます。
不適切な権限
このセクションは、Cloud Composer 1 にのみ適用されます。
ウェブサーバーは、ワーカーやスケジューラと同じサービス アカウントでは動作しません。そのため、ワーカーとスケジューラはウェブサーバーがアクセスできない、ユーザー管理のリソースにもアクセスできる場合があります。
DAG の解析中は、非公開リソースへのアクセスは避けることをおすすめします。これを回避できない場合もあります。その場合は、ウェブサーバーのサービス アカウントに権限を付与する必要があります。サービス アカウント名は、ウェブサーバーのドメインから取得されます。たとえば、ドメインが example-tp.appspot.com
の場合、サービス アカウントは [email protected]
になります。
DAG エラー
このセクションは、Cloud Composer 1 にのみ適用されます。
ウェブサーバーは App Engine 上で動作し、環境の GKE クラスタとは分離しています。ウェブサーバーは DAG 定義ファイルを解析し、DAG にエラーがある場合は 502 gateway timeout
が発生する可能性があります。問題のある DAG によって GKE で実行中のプロセスが中断されない場合、Airflow は正常に機能しているウェブサーバーなしでも正常に機能します。この場合、環境から詳細を取得し、ウェブサーバーが利用できなくなった場合の回避策とするために gcloud composer environments run
を使用できます。
その他の場合には、GKE で DAG の解析を実行して、致命的な Python 例外をスローする DAG やそのタイムアウト(デフォルトは 30 秒)を確認できます。 トラブルシューティングを行うには、Airflow ワーカー コンテナ内のリモートシェルに接続して構文エラーをテストします。詳細については、DAG のテストをご覧ください。