Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
このページでは、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.14.4-airflow-2.10.5 \ --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.14.4-airflow-2.10.5 \ --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.14.4-airflow-2.10.5" }, "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.14.4-airflow-2.10.5" }, "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.14.4-airflow-2.10.5" } 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.14.4-airflow-2.10.5" } 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" } } } }