Cloud Composer 1 | Cloud Composer 2
Apache Airflow には、ワークフロー(DAG)の管理、Airflow 環境の管理、管理アクションの実行に使用できるウェブ ユーザー インターフェース(UI)が含まれています。たとえば、ウェブ インターフェースを使用すると、DAG の進行状況の確認、新しいデータ接続の設定、以前の DAG 実行からのログの確認ができます。
Airflow ウェブサーバー
Cloud Composer 環境ごとに、Airflow ウェブ インターフェースを実行するウェブサーバーを持ちます。ウェブサーバーは、Cloud Composer 環境アーキテクチャの一部です。
始める前に
Cloud Composer 環境を表示できるロールを付与されている必要があります。詳細については、アクセス制御をご覧ください。
環境の作成中に、Cloud Composer によって Airflow ウェブ インターフェースを実行するウェブサーバーの URL が構成されます。この URL はカスタマイズできません。
Cloud Composer 2 は、Airflow ウェブ インターフェースの Airflow UI アクセス制御(Airflow ロールベース アクセス制御)機能をサポートしています。
[API の制御] > [未設定のサードパーティ製アプリ] > [ユーザーにサードパーティ製アプリへのアクセスを許可しない] オプションが Google Workspace で有効になっており、Cloud Composer アプリの Apache Airflow が明示的に許可されていない場合、アプリケーションを明示的に許可しない限り、ユーザーは Airflow UI にアクセスできません。アクセスを許可するには、Google Workspace で Airflow UI へのアクセスを許可するで説明されている手順を行います。
Airflow ウェブ インターフェースへのアクセス
Airflow ウェブサーバーは、環境クラスタ内のワークロードとして動作します。ウェブサーバーは composer.googleusercontent.com
ドメインにデプロイされ、Airflow ウェブ インターフェースにアクセスできます。
Cloud Composer 2 では、ユーザー ID と、ユーザー用に定義された IAM ポリシー バインディングに基づいて、インターフェースにアクセスできます。Cloud Composer 1 と異なり、Cloud Composer 2 は Identity-Aware Proxy に依存しない別のメカニズムを使用します。
Google Cloud コンソールからウェブ インターフェースへのアクセス
Google Cloud Console から Airflow ウェブ インターフェースにアクセスするには:
Google Cloud Console で [環境] ページに移動します。
[Airflow webserver] 列で、ご使用の環境の [Airflow] リンクをクリックします。
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
および airflowByoidUri
として一覧表示されます。
airflowUri
URL アドレスは、Google アカウントで使用されます。airflowByoidUri
URL アドレスは、プロジェクトで Workforce Identity 連携を構成する場合に、外部 ID で使用されます。
config:
airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com
ウェブサーバーの再起動
Cloud Composer 環境のデバッグやトラブルシューティングを行う際は、Airflow ウェブサーバーを再起動することで一部の問題が解決する場合があります。ウェブサーバーは、restartWebServer API または restart-web-server
gcloud コマンドを使用して再起動できます。
gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
ウェブサーバーへのネットワーク アクセスの構成
Airflow ウェブサーバーのアクセス パラメータは、環境の種類に依存しません。代わりに、ウェブサーバーのアクセスを個別に構成します。たとえば、プライベート IP 環境で、引き続きインターネットから Airflow UI にアクセスできます。
プライベート IP アドレスを使用して、許可された IP 範囲を構成することはできません。
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[ネットワークの構成] セクションで、[ウェブサーバーのアクセス制御] 項目を探して、[編集] をクリックします。
[ウェブサーバーのネットワーク アクセス制御] ダイアログで、次の操作を行います。
すべての IP アドレスから Airflow ウェブサーバーへのアクセスを許可するには、[すべての IP アドレスからのアクセスを許可する] を選択します。
アクセスを特定の IP 範囲のみに制限するには、[特定の IP アドレスからのアクセスのみを許可する] を選択します。[IP 範囲] フィールドに、CIDR 表記の IP 範囲を指定します。[説明] フィールドに、この範囲の説明を入力します(省略可)。複数の範囲を指定する場合は、[IP 範囲の追加] をクリックします。
すべての IP アドレスのアクセスを禁止するには、[特定の IP アドレスからのアクセスのみを許可する] を選択し、空の範囲エントリの横にある [項目を削除する] をクリックします。
gcloud
ウェブサーバーのアクセス パラメータは、環境を更新するときに次の引数で制御します。
--web-server-allow-all
を使用すると、すべての IP アドレスから Airflow にアクセスできます。これはデフォルトのオプションです。--web-server-allow-ip
は、特定のソース IP 範囲へのアクセスのみを制限します。複数の IP 範囲を指定するには、この引数を複数回使用します。--web-server-deny-all
は、すべての IP アドレスに対してアクセスを禁止します。
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
次のように置き換えます。
ENVIRONMENT_NAME
: 環境の名前。LOCATION
: 環境が配置されているリージョン。WS_IP_RANGE
: Airflow UI にアクセスできる IP 範囲(CIDR 表記)。WS_RANGE_DESCRIPTION
: IP 範囲の説明。
例:
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
[
environments.patch
][api-patch] API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.webServerNetworkAccessControl
マスクを指定します。リクエストの本文で、Airflow タスクログの保存方法を指定します。
すべての IP アドレスから Airflow へのアクセスを許可するには、空の
config
要素を指定します(webServerNetworkAccessControl
要素が存在してはなりません)。アクセスを特定の IP 範囲に制限するには、
allowedIpRanges
で 1 つ以上の範囲を指定します。すべての IP アドレスに対するアクセスを禁止するには、空の
webServerNetworkAccessControl
要素を指定します。webServerNetworkAccessControl
要素は存在している必要がありますが、allowedIpRanges
要素を含めることはできません。
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
次のように置き換えます。
WS_IP_RANGE
: Airflow UI にアクセスできる IP 範囲(CIDR 表記)。WS_RANGE_DESCRIPTION
: IP 範囲の説明。
例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
}
}
}
Terraform
allowed_ip_range
ブロックの web_server_network_access_control
で、ウェブサーバーにアクセスできる IP 範囲を指定します。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
}
}
以下のように置き換えます。
WS_IP_RANGE
は、Airflow UI にアクセスできる IP 範囲(CIDR 表記)に置き換えます。WS_RANGE_DESCRIPTION
は、IP 範囲の説明に置き換えます。
例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "office net 1"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "office net 3"
}
}
}