Cloud Composer 内の Private Service Connect を構成する

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 環境を作成する際は、次の点に注意してください。

  1. [ネットワークの構成] セクションで、[ネットワーク構成を表示] 項目を展開します。

  2. [ネットワークの種類] セクションで、[Private IP environment] オプションを選択してプライベート IP 環境を作成します。

  3. [Composer の接続性] セクションで、[Private Service Connect] を選択します。

  4. [Composer 接続サブネットワーク] プルダウン リストで、Private Service Connect エンドポイントのサブネットワークを選択します。

    環境のサブネットワークを使用できます。

    他の方法としては、別のサブネットワークを指定することもできます。これにより、PSC エンドポイントの IP アドレスが選択される CIDR 範囲をより細かく制御できます。この範囲は、複数の Cloud Composer 環境で共有できます。各環境には、1 つの IP アドレスが必要です。

  5. プライベート 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"
      }
    }
 }
}

次のステップ