Configurer Private Service Connect dans Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment créer un environnement d'adresse IP privée qui utilise Private Service Connect au lieu des appairages de VPC.

Pour obtenir des informations générales sur la création d'environnements d'adresse IP privée, consultez la page Configurer un environnement d'adresse IP privée.

À propos de Private Service Connect dans Cloud Composer

Les composants de votre environnement sont répartis entre le locataire et le projet client. Dans les environnements d'adresse IP privée, les composants situés dans ces deux projets se connectent à l'aide d'appairages VPC. Les appairages VPC présentent certaines limites, y compris une limite de nombre maximal d'appairages dans un VPC. Ces limites peuvent devenir plus évidentes si vous utilisez des réseaux à grande échelle avec des environnements Cloud Composer.

Grâce à la compatibilité de Private Service Connect dans Cloud Composer, vos environnements IP privés communiquent en interne sans avoir à utiliser d'appairage de VPC. Ces environnements utilisent l'adresse IP privée avec architecture PSC.

Avant de commencer

  • Private Service Connect n'est disponible que dans Cloud Composer 2.

  • Vous ne pouvez activer Private Service Connect que lorsque vous créez un environnement. Vous ne pouvez pas passer d'un environnement existant à Private Service Connect.

  • Votre environnement doit être un environnement d'adresse IP privée. Comme les appairages de VPC ne sont pas utilisés, vous n'avez pas besoin de spécifier les plages CIDR de l'instance Cloud SQL et du réseau interne Cloud Composer.

  • Si la contrainte de règle d'administration Désactiver Private Service Connect pour les clients refuse les points de terminaison SERVICE_PRODUCER, il n'est pas possible de créer des environnements avec Private Service Connect. Cette règle n'affecte pas les environnements Cloud Composer existants avec PSC. Ces environnements peuvent fonctionner lorsque cette règle est activée.

Activer Private Service Connect lorsque vous créez un environnement

Console

Pour créer un environnement avec Private Service Connect, sélectionnez le type de connectivité Private Service Connect lorsque vous créez un environnement d'adresse IP privée. Spécifiez ensuite le sous-réseau pour la connexion Private Service Connect.

Lorsque vous créez un environnement d'adresse IP privée:

  1. Dans la section Configuration du réseau, développez l'élément Afficher la configuration réseau.

  2. Dans la section Type de réseau, sélectionnez l'option Environnement d'adresse IP privée pour créer un environnement d'adresse IP privée.

  3. Dans la section Connectivité Composer, sélectionnez Private Service Connect.

  4. Dans la liste déroulante Sous-réseau de connexion Composer, sélectionnez le sous-réseau des points de terminaison Private Service Connect.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Cela vous permet de mieux contrôler la plage CIDR dans laquelle l'adresse IP du point de terminaison PSC est sélectionnée. Cette plage peut être partagée par plusieurs environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

  5. Spécifiez les autres paramètres de votre environnement d'adresse IP privée.

gcloud

Pour créer un environnement avec Private Service Connect, utilisez l'argument --connection-subnetwork lorsque vous créez un environnement d'adresse IP privée. Spécifiez ensuite le sous-réseau pour la connexion Private Service Connect.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau pour les points de terminaison Private Service Connect.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Cela vous permet de mieux contrôler la plage CIDR à partir de laquelle les adresses IP du point de terminaison PSC sont sélectionnées. Cette plage peut être partagée par plusieurs environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

Rédigez une requête API environments.create. Dans la ressource Environment, spécifiez les paramètres de configuration de la connexion Private Service Connect.

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.6.6-airflow-2.6.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"
        }
      ]
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • ENVIRONMENT_NETWORK par l'URI du réseau de votre environnement.
  • ENVIRONMENT_SUBNETWORK par l'URI du sous-réseau de votre environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau des points de terminaison PSC.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Cela vous permet de mieux contrôler la plage CIDR à partir de laquelle l'adresse IP du point de terminaison PSC est sélectionnée. Cette plage peut être partagée par plusieurs environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {

    "softwareConfig": {
      "imageVersion": "composer-2.6.6-airflow-2.6.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

Lorsque vous créez un environnement, le champ cloud_composer_connection_subnetwork du bloc private_environment_config active Private Service Connect.

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {
      image_version = "composer-2.6.6-airflow-2.6.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"
      }
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • ENVIRONMENT_NETWORK par l'URI du réseau de votre environnement.
  • ENVIRONMENT_SUBNETWORK par l'URI du sous-réseau de votre environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau des points de terminaison PSC.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Cela vous permet de mieux contrôler la plage CIDR à partir de laquelle l'adresse IP du point de terminaison PSC est sélectionnée. Cette plage peut être partagée par plusieurs environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

Exemple :

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.6.6-airflow-2.6.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"
      }
    }
 }
}

Étapes suivantes