Activer Private Service Connect sur une instance Cloud SQL existante exécutant PSA (Terraform)

1. Présentation

Il existe plusieurs options pour vous connecter à une instance Cloud SQL privée à partir d'un autre projet ou d'un autre réseau VPC. Vous pouvez utiliser l'accès aux services privés (PSA) pour accéder aux adresses IP internes de Google et des services tiers via des connexions privées. Pour étendre l'accès à la base de données, vous pouvez désormais également activer Private Service Connect (PSC).

Private Service Connect (PSC) permet aux producteurs de services d'exposer leurs services via des rattachements de service, que les consommateurs peuvent utiliser pour créer des points de terminaison PSC et/ou des backends PSC dans leur environnement. Grâce à ces points de terminaison PSC, ils peuvent se connecter aux services producteurs via une adresse IP privée spécifiée par l'utilisateur.

Dans cet atelier, vous allez configurer et tester l'option.

Dans cet atelier, vous allez créer une architecture simple qui illustre l'utilisation de l'accès aux points de terminaison PSA et PSC avec CloudSQL.

Figure 1.

e0e0f83704cc9d62.png

Pour cet atelier, vous aurez besoin de deux projets ou de VPC distincts dans le même projet.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer la tâche suivante:

  • Activer le service networking
  • Configurer l'adhésif sensible à la pression
  • Créer une instance Cloud SQL avec un PSA
  • Activez le rattachement de service PSC.
  • Créer un point de terminaison PSC dans le VPC du client pour se connecter à la base de données CloudSQL
  • Vérifier l'accès à la base de données SQL à partir de VM de test, dans les VPC producteur et consommateur

2. Préparation

Configuration de l'environnement au rythme de chacun

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. Si vous n'avez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

Démarrer Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.

Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

55efc1aaa7a4d3ad.png

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

7ffe5cbb04455448.png

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.

3. Tâche 1 : Configurer l'environnement pour un projet de base de données avec Terraform

Dans le projet de base de données, nous allons activer Service Networking, créer un VPC, créer une plage PSA, créer un appairage de Service Networking et créer des règles de pare-feu. Ouvrez Cloud Console, puis sélectionnez le projet que vous utiliserez pour la base de données.

  1. Ouvrez Cloud Shell en haut à droite de la console. Assurez-vous que l'ID de projet de la base de données s'affiche pour le projet de base de données dans Cloud Shell, puis confirmez les invites pour autoriser l'accès. 4261e776f64ea978.png
  2. Créez un dossier nommé terraform-db-psc et déplacez-vous vers ce dossier.
mkdir terraform-db-psc  && cd terraform-db-psc
  1. Créez des fichiers main.tf, variable.tf, nat-vm.tf et database.tf.
touch main.tf variable.tf nat-vm.tf database.tf 
  1. Accédez à la vue Éditeur Cloud Shell. Sélectionnez Éditeur, puis assurez-vous d'autoriser les invites nécessaires pour que l'interface puisse se charger.
  2. Une fois le fichier chargé, accédez à File > Open Folder (Fichier > Ouvrir le dossier), puis accédez à /home/votre-nom-utilisateur/terraform-db-psc et sélectionnez Ok (OK) pour ouvrir le dossier dans l'éditeur. 78f5eb9f2f82f1b0.png
  3. Sélectionnez le fichier variable.tf, puis ajoutez les éléments suivants. Remplacez le texte your-database-project-id-here par l'ID réel de votre projet de base de données entre guillemets. Remplacez le texte your-consumer-project-id-here par l'ID réel de votre projet client entre guillemets.
variable "project_id" {
  type = string
  default = "your-database-project-id-here"
}

variable "project_id_consumer" {
  type = set(string)
  default = ["your-consumer-project-id-here"]
}

variable "network_id" {
  type = string
  default = "database-net"
}

variable "region_id" {
  type = string
  default = "us-east1"
}

variable "db_password" {
  type = string
  default = "cloudsql24"
}
  1. Ouvrez ensuite le fichier main.tf. Nous allons ajouter du code Terraform pour effectuer diverses actions, comme expliqué ci-dessous.

Activer les API

resource "google_project_service" "default"

Créer un VPC

resource "google_compute_network" "default"

Ajouter des règles de pare-feu

resource "google_compute_firewall" "allow_icmp"

Créer une plage de messages d'annonce

resource "google_compute_global_address" "psa_range"

Créer un appairage

resource "google_service_networking_connection" "private_connection"

  1. Copiez et collez le code suivant dans le fichier main .tf.
resource "google_project_service" "default" {
 for_each = toset([
   "compute.googleapis.com",
   "servicenetworking.googleapis.com", 
   "sqladmin.googleapis.com",
   "cloudresourcemanager.googleapis.com"
 ])

 service            = each.value
 disable_on_destroy = false
}

resource "google_compute_network" "default" {
 project                = var.project_id
 name                    = var.network_id
 auto_create_subnetworks = true
 mtu                     = 1460
 routing_mode            = "GLOBAL"
}

resource "google_compute_global_address" "psa_range" {
  name                  = "psa-range-${google_compute_network.default.name}"
  project               = var.project_id
  purpose               = "VPC_PEERING"
  address_type          = "INTERNAL"
  prefix_length         = 20
  address               = "172.18.0.0"
  network               = google_compute_network.default.id

}

resource "google_service_networking_connection" "private_connection" {
  network = google_compute_network.default.self_link
  service = "servicenetworking.googleapis.com"

  reserved_peering_ranges = [
    google_compute_global_address.psa_range.name,
  ]
}

resource "google_compute_firewall" "allow_icmp" {
 name    = "allow-icmp-${google_compute_network.default.name}"
 network = google_compute_network.default.id
 project = var.project_id

 allow {
   protocol = "icmp"
 }

 source_ranges = ["0.0.0.0/0"]
 target_tags   = ["allow-icmp"]
}

resource "google_compute_firewall" "allow_ssh" {
 name    = "allow-ssh-${google_compute_network.default.name}"
 network = google_compute_network.default.id
 project = var.project_id

 allow {
   protocol = "tcp"
   ports    = ["22"]
 }

 source_ranges = ["0.0.0.0/0"]
 target_tags   = ["allow-ssh"]
}

resource "google_compute_firewall" "allow_sql" {
 name    = "allow-sql-${google_compute_network.default.name}"
 network = google_compute_network.default.id
 project = var.project_id

 allow {
   protocol = "tcp"
   ports    = ["3306"]
 }

 source_ranges = ["0.0.0.0/0"]
}

resource "google_compute_firewall" "allow_internal" {
 name    = "allow-internal-${google_compute_network.default.name}"
 network = google_compute_network.default.id
 project = var.project_id

 allow {
   protocol = "icmp"
 }

 allow {
   protocol = "tcp"
   ports    = ["0-65535"]
 }
 allow {
   protocol = "udp"
   ports    = ["0-65535"]
 }

 source_ranges = ["10.128.0.0/9", "172.18.0.0/20"] # Include PSA range
}
  1. Revenez au terminal Cloud Shell, assurez-vous d'être dans le répertoire cd terraform-db-psc terraform-db-psc, puis exécutez les commandes suivantes.

terraform init

Initialise le répertoire de travail. Cette étape télécharge les fournisseurs requis pour la configuration donnée.

terraform plan

Génère un plan d'exécution, qui indique les actions que Terraform effectuera pour déployer votre infrastructure.

  1. Pour créer les ressources, exécutez la commande terraform apply, puis saisissez yes pour l'exécuter.

4. Tâche 2 : Créer une instance CloudSQL avec PSA (Terraform)

Utilisons Terraform pour créer une instance CloudSQL, avec l'option PSA pour permettre la connectivité. Effectuez cette configuration dans le projet de base de données.

  1. Accédez à la vue Éditeur Cloud Shell. Assurez-vous d'être dans le dossier terraform-db-psc. Sélectionnez le fichier database.tf, puis ajoutez ce qui suit.
resource "google_sql_database_instance" "default" {
  name             = "psc-psa-sql-db"
  region           = var.region_id
  database_version = "MYSQL_8_0"  
  settings {
    tier              = "db-f1-micro"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled            = true
      binary_log_enabled = true
    }
    ip_configuration {      
      ipv4_enabled    = "false"
      private_network = google_compute_network.default.id
      
    }
  }
  deletion_protection = false 
}

resource "google_sql_user" "users" {
  name     = "testsql"
  instance = google_sql_database_instance.default.name
  password = var.db_password 
}

  1. Revenez au terminal Cloud Shell et assurez-vous d'être dans le répertoire terraform-db-psc. Pour créer les ressources, exécutez la commande terraform apply, puis saisissez yes pour l'exécuter. La création de l'instance Cloud SQL avec un PSA peut prendre jusqu'à 15 minutes ou plus.

Vérifier la base de données

  1. Une fois l'opération terminée, accédez à SQL dans la console, puis sélectionnez l'instance de base de données psc-psa-sql-db que vous venez de créer.
  2. Sur la gauche, développez le panneau des options SQL et sélectionnez Connexions.
  3. Dans l'onglet "Récapitulatif", vous pouvez consulter des informations sur la connexion.
  4. Copiez l'adresse IP interne, puis enregistrez-la sur votre système. Comme vous pouvez le constater, il a été attribué à partir de la plage que nous avons réservée.
  5. Vous en aurez besoin pour effectuer la tâche 3, étape 5.

5c00f08b0f44c957.png

  1. Sur la gauche, développez le panneau des options SQL, puis sélectionnez Utilisateurs.
  2. Un utilisateur appelé testsql avec le mot de passe cloudsql24(qui servira à accéder à la base de données plus tard) doit s'afficher.

5. Tâche 3 : Créer une VM de test et se connecter à une instance SQL à partir d'un projet de base de données (Terraform)

Utilisons Terraform pour créer une VM de test et une passerelle NAT. Effectuez cette configuration dans le projet de base de données.

  1. Accédez à la vue Éditeur Cloud Shell. Assurez-vous d'être dans le dossier terraform-db-psc. Sélectionnez le fichier nat-vm.tf, puis ajoutez ce qui suit.
resource "google_compute_router" "default" {
  name    = "outbound-nat"
  region  = var.region_id
  network = google_compute_network.default.id

 bgp {
  asn = 64514
  }
}

resource "google_compute_router_nat" "default" {
  name = "outbound-nat-gw"
  router = google_compute_router.default.name
  region = google_compute_router.default.region
  nat_ip_allocate_option = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

  log_config {
    enable = true
    filter = "ERRORS_ONLY"
  }
}


resource "google_compute_instance" "sql_net_vm" {
  name         = "db-vm-test"
  machine_type = "e2-medium"
  zone         = "${var.region_id}-b"
  project      = var.project_id

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = google_compute_network.default.self_link
  }

  # No external IP address
  network_performance_config {
    total_egress_bandwidth_tier = "DEFAULT"
  }

  tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"]

  # Install MariaDB at startup
  metadata_startup_script = <<EOF
#!/bin/bash
apt-get update
apt-get install -y mariadb-server
systemctl enable mariadb
EOF
}
  1. Revenez au terminal Cloud Shell et assurez-vous d'être dans le répertoire terraform-db-psc. Pour créer les ressources, exécutez la commande terraform plan, then terraform apply, puis saisissez yes pour l'exécuter. Une passerelle NAT et une VM avec MariaDB installé sont alors créées.

Vérifier la base de données

Effectuez cette opération dans le projet client.

  1. Accédez à Instance de VM. Sélectionnez db-vm-test.
  2. Sélectionnez l'option SSH pour vous connecter à la VM.
  3. Connectez-vous à la base de données via l'adresse IP locale que vous avez copiée précédemment avec la commande suivante:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24

P.S. Remplacez l'adresse IP par votre adresse IP réelle pour qu'elle se connecte.

  1. Une fois la connexion établie, créez une base de données avec localvpcsqldb.
CREATE DATABASE localvpcsqldb;
  1. Une fois la connexion établie, saisissez "exit" pour la quitter. Saisissez à nouveau "exit" pour fermer la VM.

6. Tâche 4 : Activer PSC sur l'instance CloudSQL

Utilisons les commandes gcloud pour activer l'option PSC afin d'autoriser la connectivité. Effectuez cette configuration dans le projet de base de données.

  1. Passez à la vue Cloud Shell.
  2. Exécutez la commande suivante dans Cloud Shell.
  • Remplacez "Assurez-vous que YOUR_DB_PROJECT_HERE" par l'ID du projet de la base de données.
  • Remplacez "Assurez-vous que YOUR_CONSUMER_PROJECT_HERE" par l'ID du projet client.
project_id=YOUR_DB_PROJECT_HERE
allowed_project=YOUR_CONSUMER_PROJECT_HERE

gcloud beta sql instances patch psc-psa-sql-db \
--project=$project_id \
--enable-private-service-connect \
--allowed-psc-projects=$allowed_project
  1. La base de données existante sera alors mise à jour avec la pièce jointe PSC. Cette opération peut prendre plus de 10 minutes.

Si vous recevez une erreur d'attente de délai avant expiration, vous devriez également recevoir la commande permettant de continuer à afficher la progression. Par exemple : "Vous pouvez continuer à attendre l'opération en exécutant "gcloud beta sql operations wait –project"

Notez que vous pouvez déployer une nouvelle base de données avec le PSA et le PSC activés dès le départ.

Vérifier la base de données

  1. Une fois l'opération terminée, accédez à SQL dans la console, puis sélectionnez l'instance de base de données psc-psa-sql-db.
  2. Sur la gauche, développez le panneau des options SQL et sélectionnez Connexions.
  3. Dans l'onglet "Récapitulatif", vous pouvez consulter des informations sur la connexion.
  4. Copiez l'adresse de l'accessoire de service, puis enregistrez-la sur votre système.
  5. Vous en aurez besoin pour effectuer la tâche 5, étape 8.

2cf5ce71eceea326.png

7. Tâche 5 : Configurer l'environnement pour le projet de consommateur (Terraform)

Dans le projet client,nous allons créer un VPC personnalisé avec des règles de pare-feu et un sous-réseau. Ouvrez la console Cloud, puis sélectionnez le projet que vous utiliserez.

  1. En haut à droite de la console, à côté de l'icône Google Cloud, cliquez sur le menu déroulant, puis sélectionnez l'onglet Tout.

barre de projetbarre de projet 2

  1. Dans la liste des projets, sélectionnez l'ID de votre projet client pour continuer.
  2. Ouvrez Cloud Shell en haut à droite de la console, assurez-vous que l'ID de projet client s'affiche dans Cloud Shell, puis confirmez les invites pour autoriser l'accès.
  3. Créez un dossier nommé terraform-consumer-psc et déplacez-vous vers ce dossier.
mkdir terraform-consumer-psc  && cd terraform-consumer-psc
  1. Créez des fichiers main.tf, variable.tf et psc.tf.
touch main.tf variable.tf psc.tf 
  1. Accédez à la vue de l'éditeur Cloud Shell pour l'ID de projet client. Sélectionnez Éditeur, puis assurez-vous d'autoriser les invites nécessaires pour que l'interface puisse se charger.
  2. Une fois le fichier chargé, accédez à File > Open Folder (Fichier > Ouvrir le dossier), puis accédez à /home/votre-nom-utilisateur/terraform-consumer-psc et sélectionnez Ok (OK) pour ouvrir le dossier dans l'éditeur. 78f5eb9f2f82f1b0.png
  3. Sélectionnez le fichier variable.tf, puis ajoutez les éléments suivants. Remplacez le texte your-consumer-project-id-here par votre ID de projet client réel entre guillemets. Remplacez le texte your-psc-attachment-id-here par votre adresse d'attachement psc entre guillemets. Il s'agit de l'ID que vous avez copié dans la section 5 à 7 de la tâche 4 : d7ac9629a59abfc6.png
variable "project_id" {
  type = string
  default = "your-consumer-project-id-here"
}

variable "psc_attachment_id" {
  type = string
  default = "your-psc-attachment-id-here"
}

variable "network_id" {
  type = string
  default = "psc-endpoint-vpc"
}

variable "region_id" {
  type = string
  default = "us-east1"
}

  1. Ouvrez ensuite le fichier main.tf. Nous allons ajouter du code Terraform pour effectuer diverses actions, comme expliqué ci-dessous.

Activer les API

resource "google_project_service"

Créer un VPC

resource "google_compute_network"

Créer une passerelle NAT

resource "google_compute_router"
resource "google_compute_router_nat"

Ajouter des règles de pare-feu

resource "google_compute_firewall"

  1. Copiez et collez le code suivant dans le fichier main .tf.
resource "google_project_service" "default" {
  for_each = toset([
    "compute.googleapis.com",
    "cloudresourcemanager.googleapis.com"
  ])

  service            = each.value
  disable_on_destroy = false
}

resource "google_compute_network" "default" {
  project                 = var.project_id
  name                    = var.network_id
  auto_create_subnetworks = false
  mtu                     = 1460
  routing_mode            = "GLOBAL"
}

resource "google_compute_subnetwork" "vm_subnet_pc" {
  name          = "vm-net"
  ip_cidr_range = "192.168.80.0/24"
  region        = var.region_id
  network       = google_compute_network.default.name
  project       = var.project_id
}

resource "google_compute_subnetwork" "psc_subnet_ip" {
  name          = "psc-subnet"
  ip_cidr_range = "192.168.100.0/24"
  region        = var.region_id
  network       = google_compute_network.default.name
  project       = var.project_id
}

resource "google_compute_router" "default" {
  name    = "outbound-nat"
  region  = var.region_id
  network = google_compute_network.default.id

 bgp {
  asn = 64514
  }
}

resource "google_compute_router_nat" "default" {
  name = "outbound-nat-gw"
  router = google_compute_router.default.name
  region = google_compute_router.default.region
  nat_ip_allocate_option = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

  log_config {
    enable = true
    filter = "ERRORS_ONLY"
  }
}

resource "google_compute_firewall" "allow_icmp" {
  name    = "allow-icmp-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "icmp"
  }

  source_ranges = ["0.0.0.0/0"]
  
}

resource "google_compute_firewall" "allow_ssh" {
  name    = "allow-ssh-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-ssh"]
}


resource "google_compute_firewall" "allow_internal" {
  name    = "allow-internal-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "icmp"
    }


  allow {
    protocol = "tcp"
    ports    = ["0-65535"]
  }
  allow {
    protocol = "udp"
    ports    = ["0-65535"]
  }

  source_ranges = ["192.168.0.0/16"]
 }
  1. Revenez au terminal Cloud Shell, assurez-vous d'être dans le répertoire cd terraform-consumer-psc terraform-consumer-psc du projet client, puis exécutez les commandes suivantes.

terraform init

Initialise le répertoire de travail. Cette étape télécharge les fournisseurs requis pour la configuration donnée.

terraform plan

Génère un plan d'exécution, qui indique les actions que Terraform effectuera pour déployer votre infrastructure.

  1. Pour créer les ressources, exécutez la commande terraform apply, puis saisissez yes pour l'exécuter.

8. Tâche 6 : Créer le point de terminaison PSC pour le rattachement à la base de données SQL dans le projet utilisateur et la VM de test (Terraform)

Effectuez cette configuration dans le projet client.

  1. Revenez à l'éditeur Cloud Shell, ouvrez le répertoire terraform-consumer-psc, puis sélectionnez le fichier psc.tf. Ajoutez le code Terraform suivant au fichier. Une adresse IP interne statique, un point de terminaison PSC et une VM de test avec Maria DB installé sont créés.
resource "google_compute_address" "default" {
  name = "psc-ip-1"
  region = var.region_id
  address_type = "INTERNAL"
  subnetwork = google_compute_subnetwork.psc_subnet_ip.name
  address = "192.168.100.100" 
}

resource "google_compute_forwarding_rule" "default" {
  name = "psc-sql-endpoint"
  region = var.region_id
  network = google_compute_network.default.name
  ip_address = google_compute_address.default.self_link
  load_balancing_scheme = ""
  target = var.psc_attachment_id
}


resource "google_compute_instance" "sql_test_vm" {
  name         = "remote-sql-test-vm"
  machine_type = "e2-medium"
  zone         = "${var.region_id}-b"
  project      = var.project_id

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.vm_subnet_pc.name
  }

  # No external IP address
  network_performance_config {
    total_egress_bandwidth_tier = "DEFAULT"
  }

  tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"]

  # Install MariaDB at startup
  metadata_startup_script = <<EOF
#!/bin/bash
apt-get update
apt-get install -y mariadb-server
systemctl enable mariadb
EOF
}
  1. Revenez au terminal Cloud Shell, assurez-vous d'être dans le répertoire cd terraform-consumer-psc terraform-consumer-psc du projet client, puis exécutez les commandes suivantes.

terraform plan

Génère un plan d'exécution, qui indique les actions que Terraform effectuera pour déployer votre infrastructure.

  1. Pour créer les ressources, exécutez la commande terraform apply, puis saisissez yes pour l'exécuter.

9. Tâche 7 : Vérifier la connectivité des points de terminaison à partir de la VM via l'adresse IP du PSC

Effectuez cette opération dans le projet client.

  1. Accédez à Instance de VM. Sélectionnez remote-sql-test-vm.
  2. Sélectionnez l'option SSH pour vous connecter à la VM.
  3. Connectez-vous à la base de données via le point de terminaison avec les éléments suivants:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
  1. Une fois la connexion établie, créez une base de données avec psc-sql-db.
CREATE DATABASE remotepscpsasqldb;
  1. Une fois la connexion établie, saisissez "exit" pour la quitter. Saisissez à nouveau "exit" pour fermer la VM.

10. Tâche 8 : Vérifier la saisie dans la base de données

Effectuez cette vérification dans le projet de base de données.

  1. En haut à droite de la console, à côté de l'icône Google Cloud, cliquez sur le menu déroulant, puis sélectionnez l'onglet Tout.

barre de projetbarre de projet 2

  1. Dans la liste des projets, sélectionnez l'ID de votre projet de base de données pour continuer.
  2. Accédez à SQL, sélectionnez la base de données psc-psa-sql-db, développez les options SQL, puis sélectionnez Databases (Bases de données). Vous devriez voir la base de données que vous venez de créer, appelée remotepscpsasqldb, à partir de la VM du projet client et également localvpcsqldb à partir de la VM du projet de base de données.**.**

36f5c03124ca20f6.png

11. Effectuer un nettoyage

Effectuez cette opération dans le projet client.

  1. Sélectionner l'ID du projet client
  2. Accédez à Cloud Shell et assurez-vous que l'ID du projet client s'affiche.
  3. Accédez au répertoire cd terraform-consumer-psc terraform-consumer-psc et exécutez la commande terraform destroy suivante, puis saisissez yes. Toutes les ressources que vous avez créées dans votre projet client avec Terraform seront supprimées.

Effectuez cette opération dans le projet de base de données.

  1. Sélectionner l'ID du projet de base de données
  2. Accédez à Cloud Shell et assurez-vous que l'ID du projet de base de données s'affiche.
  3. Accédez au répertoire cd terraform-db-psc terraform-db-psc, exécutez la commande terraform destroy suivante, puis saisissez yes. La plupart des ressources que vous avez créées dans votre projet de base de données avec Terraform seront supprimées. Il est possible que le service de mise en réseau ne soit pas supprimé et qu'une erreur s'affiche.
  4. Supprimez ensuite les fichiers suivants du dossier terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
  1. Dans la console, accédez à Réseaux VPC.
  2. Sélectionnez le VPC database-net, sélectionnez PRIVATE SERVICES ACCESS (ACCÈS AUX SERVICES PRIVÉS), sous Allocated IP Ranges for Services (Plages d'adresses IP attribuées pour les services), sélectionnez psa-range-database-net, puis sélectionnez l'option Release (Libérer).

e4dbfa8953c5b036.png

  1. Sélectionnez ensuite APPAIREMENT DE RÉSEAUX VPC, servicenetworking-googleapis-com, puis Supprimer.

4deab14044461d2d.png

  1. Sélectionnez ensuite Delete VPC network (Supprimer le réseau VPC) 2f4e96399b73d405.png.

12. Félicitations

Félicitations ! Vous avez correctement configuré une instance Cloud SQL avec un rattachement PSA et PSC, et créé un point de terminaison Private Service Connect dans un autre VPC.

En savoir plus

Pour en savoir plus sur Private Service Connect et Cloud SQL,

Autre atelier de programmation associé: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform