Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
このページでは、VPC ピアリングではなく Private Service Connect を使用するプライベート IP 環境を作成する方法について説明します。
プライベート IP 環境の作成に関する一般的な情報については、プライベート IP 環境を構成するをご覧ください。
Cloud Composer 内の Private Service Connect について
環境のコンポーネントは、テナント プロジェクトと顧客プロジェクトの間で分散されます。プライベート IP 環境では、これら 2 つのプロジェクトにあるコンポーネントは VPC ピアリングを使用して接続します。VPC ピアリングには、VPC のピアリングの最大数の上限など、いくつかの上限があります。これらの上限は、Cloud Composer 環境で大規模なネットワークを使用すると、より顕著になる可能性があります。
Cloud Composer の Private Service Connect サポートによって、プライベート IP で環境は VPC ピアリングを使用せずに内部で通信します。このような環境では、PSC を使用したプライベート IP アーキテクチャ を使用します。
始める前に
Private Service Connect のサポートは、Cloud Composer 2 でのみ使用できます。
新しい環境を作成する場合は、Private Service Connect を有効化することのみ行えます。既存の環境を切り替えて Private Service Connect を使用することはできません。
環境は、プライベート IP 環境である必要があります。 VPC ピアリングは使用されないため、Cloud SQL インスタンスと内部 Cloud Composer ネットワークの CIDR 範囲を指定する必要はありません。
Private Service Connect for Consumers を無効にする組織ポリシーの制約で SERVICE_PRODUCER エンドポイントが拒否される場合、Private Service Connect で環境を作成できません。このポリシーは、Private Service Connect を備える既存の Cloud Composer 環境には影響しません。このポリシーが有効になっている場合は、このような環境が動作します。
環境を作成する際に Private Service Connect を有効にする
コンソール
Private Service Connect を備える環境を作成するには、プライベート IP 環境を作成するときに [Private Service Connect] 接続タイプを選択します。次に、Private Service Connect 接続のサブネットワークを指定します。
プライベート IP 環境を作成する際は、次の点に注意してください。
[ネットワークの構成] セクションで、[ネットワーク構成を表示] 項目を展開します。
[ネットワークの種類] セクションで、[Private IP environment] オプションを選択してプライベート IP 環境を作成します。
[Composer の接続性] セクションで、[Private Service Connect] を選択します。
[Composer 接続サブネットワーク] プルダウン リストで、Private Service Connect エンドポイントのサブネットワークを選択します。
環境のサブネットワークを使用できます。
他の方法としては、別のサブネットワークを指定することもできます。これにより、PSC エンドポイントの IP アドレスが選択される CIDR 範囲をより細かく制御できます。この範囲は、複数の Cloud Composer 環境で共有できます。各環境には、1 つの IP アドレスが必要です。
プライベート IP 環境の他のパラメータを指定します。
gcloud
Private Service Connect を備える環境を作成するには、プライベート IP 環境を作成するときに --connection-subnetwork
引数を使用します。次に、Private Service Connect 接続のサブネットワークを指定します。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--web-server-allow-all \
--connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。ENVIRONMENT_PSC_SUBNETWORK
は、Private Service Connect エンドポイントのサブネットワークの URI に置き換えます。環境のサブネットワークを使用できます。
他の方法としては、別のサブネットワークを指定することもできます。これにより、PSC エンドポイントの IP アドレスが選択される CIDR 範囲をより細かく制御できます。この範囲は、複数の Cloud Composer 環境で共有できます。各環境には、1 つの IP アドレスが必要です。
例:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--web-server-allow-all \
--connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"
API
environments.create
API リクエストを作成します。Environment リソースで、Private Service Connect 接続の構成パラメータを指定します。
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.9.7-airflow-2.9.3"
},
"nodeConfig": {
"network": "ENVIRONMENT_NETWORK",
"subnetwork": "ENVIRONMENT_SUBNETWORK"
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"privateClusterConfig": {
"enablePrivateEndpoint": false
},
"cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
}
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "0.0.0.0/0",
"description": "Allows access from all IPv4 addresses"
},
{
"value": "::0/0",
"description": "Allows access from all IPv6 addresses"
}
]
}
}
}
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。ENVIRONMENT_NETWORK
は、環境のネットワークの URI。ENVIRONMENT_SUBNETWORK
は、環境のサブネットワークの URI。ENVIRONMENT_PSC_SUBNETWORK
は、PSC エンドポイントのサブネットワークの URI。環境のサブネットワークを使用できます。
他の方法としては、別のサブネットワークを指定することもできます。これにより、PSC エンドポイントの IP アドレスが選択される CIDR 範囲をより細かく制御できます。この範囲は、複数の Cloud Composer 環境で共有できます。各環境には、1 つの IP アドレスが必要です。
例:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.9.7-airflow-2.9.3"
},
"nodeConfig": {
"network": "projects/example-project/global/networks/default",
"subnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"privateClusterConfig": {
"enablePrivateEndpoint": false
},
"cloudComposerConnectionSubnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
}
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "0.0.0.0/0",
"description": "Allows access from all IPv4 addresses"
},
{
"value": "::0/0",
"description": "Allows access from all IPv6 addresses"
}
]
}
}
}
Terraform
環境を作成するときに、private_environment_config
ブロックの cloud_composer_connection_subnetwork
フィールドで Private Service Connect を有効にします。
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "composer-2.9.7-airflow-2.9.3"
}
node_config {
network = "ENVIRONMENT_NETWORK"
subnetwork = "ENVIRONMENT_SUBNETWORK"
}
private_environment_config {
// Other private IP environment parameters
cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
}
web_server_network_access_control {
allowed_ip_range {
value = "0.0.0.0/0"
description = "Allows access from all IPv4 addresses"
}
allowed_ip_range {
value = "::0/0"
description = "Allows access from all IPv6 addresses"
}
}
}
}
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。ENVIRONMENT_NETWORK
は、環境のネットワークの URI。ENVIRONMENT_SUBNETWORK
は、環境のサブネットワークの URI。ENVIRONMENT_PSC_SUBNETWORK
は、PSC エンドポイントのサブネットワークの URI。環境のサブネットワークを使用できます。
他の方法としては、別のサブネットワークを指定することもできます。これにより、PSC エンドポイントの IP アドレスが選択される CIDR 範囲をより細かく制御できます。この範囲は、複数の Cloud Composer 環境で共有できます。各環境には、1 つの IP アドレスが必要です。
例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
environment_size = "ENVIRONMENT_SIZE_SMALL"
software_config {
image_version = "composer-2.9.7-airflow-2.9.3"
}
node_config {
network = "projects/example-project/global/networks/default"
subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
}
private_environment_config {
// Other private IP environment parameters
enable_private_endpoint = "true"
cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
}
web_server_network_access_control {
allowed_ip_range {
value = "0.0.0.0/0"
description = "Allows access from all IPv4 addresses"
}
allowed_ip_range {
value = "::0/0"
description = "Allows access from all IPv6 addresses"
}
}
}
}