Włączanie funkcji Private Service Connect w istniejącej instancji Cloud SQL z usługą PSA (Terraform)

1. Przegląd

Istnieje kilka opcji łączenia się z prywatnąinstancją Cloud SQL z innego projektu lub sieci VPC. Prywatny dostęp do usług (PSA) umożliwia dostęp do wewnętrznych adresów IP usług Google i innych firm za pomocą połączeń prywatnych. Aby rozszerzyć dostęp do bazy danych, możesz teraz włączyć Private Service Connect (PSC).

Private Service Connect (PSC) umożliwia producentom usług udostępnianie usług za pomocą przyłączy usług, których konsumenci mogą używać do tworzenia punktów końcowych PSC lub backendów PSC w swoim środowisku. Za pomocą tych punktów końcowych PSC mogą łączyć się z usługami producenta za pomocą prywatnego adresu IP określonego przez użytkownika.

W tym module możesz skonfigurować i przetestować tę opcję.

W tym module utworzysz prostą architekturę, która ilustruje użycie dostępu do punktów końcowych PSA i PSC w Cloud SQL.

Rysunek 1.

e0e0f83704cc9d62.png

Na potrzeby tego modułu potrzebujesz 2 projektów lub oddzielnych sieci VPC w tym samym projekcie.

Cele

W tym laboratorium dowiesz się, jak wykonać następujące zadanie:

  • Włączanie sieci usług
  • Konfigurowanie PSA
  • Tworzenie instancji Cloud SQL z zakresem PSA
  • Włącz przyłącze usługi PSC.
  • Utwórz punkt końcowy PSC w sieci VPC klienta, aby połączyć się z bazą danych Cloud SQL.
  • Sprawdź dostęp do bazy danych SQL z testowych maszyn wirtualnych w sieciach VPC producenta i konsumenta.

2. Konfiguracja i wymagania

Samodzielne konfigurowanie środowiska

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu.
  • Warto wiedzieć, że istnieje trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego ćwiczenia nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Uruchamianie Cloud Shell

Z Google Cloud można korzystać zdalnie na laptopie, ale w tym ćwiczeniu użyjesz Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.

W konsoli Google Cloud kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

55efc1aaa7a4d3ad.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno wyświetlić się coś takiego:

7ffe5cbb04455448.png

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym ćwiczeniu w Codelabs możesz wykonać w przeglądarce. Nie musisz niczego instalować.

3. Zadanie 1. Konfigurowanie środowiska dla projektu bazy danych (Terraform)

W projekcie bazy danych włączymy sieć usług, utworzymy sieć VPC, utworzymy zakres PSA, utworzymy równorzędne połączenie sieci usług i utworzymy reguły zapory sieciowej. Otwórz konsolę Google Cloud i wybierz projekt, którego będziesz używać w przypadku bazy danych.

  1. Otwórz Cloud Shell w prawym górnym rogu konsoli i sprawdź, czy w Cloud Shell widzisz identyfikator projektu bazy danych dla projektu bazy danych. Potwierdź wszystkie prośby o zezwolenie na dostęp. 4261e776f64ea978.png
  2. Utwórz folder o nazwie terraform-db-psc i przejdź do niego.
mkdir terraform-db-psc  && cd terraform-db-psc
  1. Utwórz pliki main.tf, variable.tf, nat-vm.tf i database.tf.
touch main.tf variable.tf nat-vm.tf database.tf 
  1. Przełącz się na widok edytora Cloud Shell. Kliknij edytor i zaakceptuj wszystkie niezbędne prośby, aby interfejs mógł się załadować.
  2. Po załadowaniu przejdź do Plik > Otwórz folder i otwórz /home/your-user-name/terraform-db-psc. Następnie kliknij OK, aby otworzyć folder w edytorze. 78f5eb9f2f82f1b0.png
  3. Wybierz plik variable.tf i dodaj do niego te informacje: Zastąp tekst your-database-project-id-here rzeczywistym identyfikatorem projektu bazy danych w cudzysłowie. Zastąp tekst your-consumer-project-id-here rzeczywistym identyfikatorem projektu konsumenckiego w cudzysłowie.
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. Następnie otwórz plik main.tf. Dodamy kod Terraform, aby wykonać różne działania opisane poniżej.

Włączanie interfejsów API

resource "google_project_service" "default"

Utwórz VPC

resource "google_compute_network" "default"

Dodawanie reguł zapory sieciowej

resource "google_compute_firewall" "allow_icmp"

Tworzenie zakresu PSA

resource "google_compute_global_address" "psa_range"

Tworzenie połączenia równorzędnego

resource "google_service_networking_connection" "private_connection"

  1. Skopiuj poniższy kod i wklej go do pliku 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. Wróć do terminala Cloud Shell i upewnij się, że jesteś w katalogu terraform-db-psc cd terraform-db-psc, a następnie uruchom te polecenia:

terraform init

Inicjuje katalog roboczy. Ten krok pobiera dostawców wymaganych w danej konfiguracji.

terraform plan

Generuje plan wykonania, który pokazuje, jakie działania Terraform podejmie w celu wdrożenia infrastruktury.

  1. Aby utworzyć zasoby, uruchom polecenie terraform apply i wpisz yes.

4. Zadanie 2. Tworzenie instancji Cloud SQL z usługą PSA (Terraform)

Użyjemy Terraform, aby utworzyć instancję Cloud SQL z opcją PSA, która umożliwia połączenie. Skonfiguruj to w projekcie bazy danych.

  1. Przełącz się na widok edytora Cloud Shell. Upewnij się, że jesteś w folderze terraform-db-psc. Wybierz plik database.tf i dodaj te elementy:
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. Wróć do terminala Cloud Shell i upewnij się,że jesteś w katalogu terraform-db-psc. Aby utworzyć zasoby, uruchom polecenie terraform apply i wpisz yes. Tworzenie instancji Cloud SQL z PSA może potrwać ponad 15 minut.

Weryfikowanie bazy danych

  1. Po zakończeniu otwórz SQL w konsoli i wybierz nowo utworzoną instancję bazy danych psc-psa-sql-db.
  2. Po lewej stronie rozwiń wysuwane menu opcji SQL i wybierz Połączenia.
  3. Na karcie podsumowania znajdziesz informacje o połączeniu.
  4. Skopiuj wewnętrzny adres IP i zapisz go w dowolnym miejscu w systemie. Jak widać, został on przypisany z zarezerwowanego przez nas zakresu.
  5. Ten adres IP będzie potrzebny do wykonania kroku 5 w zadaniu 3.

5c00f08b0f44c957.png

  1. Po lewej stronie rozwiń panel opcji SQL i kliknij Użytkownicy.
  2. Powinien pojawić się użytkownik o nazwie testsql z hasłem cloudsql24(będzie ono używane do uzyskiwania dostępu do bazy danych w przyszłości).

5. Zadanie 3. Tworzenie testowej maszyny wirtualnej i łączenie się z instancją SQL w projekcie bazy danych (Terraform)

Użyjemy Terraform do utworzenia testowej maszyny wirtualnej i bramy NAT. Skonfiguruj to w projekcie bazy danych.

  1. Przełącz się na widok edytora Cloud Shell. Upewnij się, że jesteś w folderze terraform-db-psc. Wybierz plik nat-vm.tf i dodaj te elementy:
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. Wróć do terminala Cloud Shell i upewnij się,że jesteś w katalogu terraform-db-psc. Aby utworzyć zasoby, uruchom polecenie terraform plan, then terraform apply i wpisz yes. Spowoduje to utworzenie bramy NAT i maszyny wirtualnej z zainstalowaną bazą danych MariaDB.

Weryfikowanie bazy danych

Wykonaj to w projekcie konsumenta

  1. Otwórz instancję maszyny wirtualnej. Wybierz db-vm-test.
  2. Aby połączyć się z maszyną wirtualną, wybierz opcję SSH.
  3. Połącz się z bazą danych za pomocą skopiowanego wcześniej lokalnego adresu IP:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24

PS Aby nawiązać połączenie, zmień adres IP na swój rzeczywisty adres IP.

  1. Po nawiązaniu połączenia utwórz bazę danych o nazwie localvpcsqldb.
CREATE DATABASE localvpcsqldb;
  1. Po zakończeniu wpisz exit, aby zamknąć połączenie. Wpisz ponownie exit, aby zamknąć maszynę wirtualną.

6. Zadanie 4. Włączanie PSC w instancji Cloud SQL

Użyjemy poleceń gcloud, aby włączyć opcję PSC i umożliwić łączność. Skonfiguruj to w projekcie bazy danych.

  1. Przełącz się na widok Cloud Shell.
  2. Uruchom w Cloud Shell to polecenie:
  • Zastąp Ensure YOUR_DB_PROJECT_HERE identyfikatorem projektu bazy danych.
  • Zastąp Ensure YOUR_CONSUMER_PROJECT_HERE identyfikatorem projektu konsumenta.
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. Spowoduje to zaktualizowanie istniejącej bazy danych o załącznik PSC. Potrwa to trochę czasu (ponad 10 minut).

Jeśli pojawi się błąd przekroczenia limitu czasu oczekiwania, powinien też wyświetlić polecenie umożliwiające sprawdzenie postępu. Na przykład: „Możesz poczekać na zakończenie operacji, uruchamiając polecenie `gcloud beta sql operations wait –project”.

Pamiętaj, że możesz wdrożyć nową bazę danych z włączonymi usługami PSA i PSC od samego początku.

Weryfikowanie bazy danych

  1. Po zakończeniu przejdź do sekcji SQL w konsoli i wybierz instancję bazy danych psc-psa-sql-db.
  2. Po lewej stronie rozwiń wysuwane menu opcji SQL i wybierz Połączenia.
  3. Na karcie podsumowania znajdziesz informacje o połączeniu.
  4. Skopiuj adres załącznika usługi i zapisz go w systemie.
  5. Będzie to potrzebne do wykonania następnego zadania 5 w kroku 8.

2cf5ce71eceea326.png

7. Zadanie 5. Konfigurowanie środowiska projektu konsumenta (Terraform)

W projekcie klienta utworzymy niestandardową sieć VPC z regułami zapory sieciowej i podsiecią. Otwórz konsolę Google Cloud i wybierz projekt, którego będziesz używać.

  1. W prawym górnym rogu konsoli obok ikony Google Cloud kliknij menu i wybierz kartę wszystkie.

pasek projektupasek projektu 2

  1. Z wyświetlonej listy projektów wybierz identyfikator projektu konsumenckiego, aby kontynuować.
  2. Otwórz Cloud Shell w prawym górnym rogu konsoli. Sprawdź, czy w Cloud Shell widzisz identyfikator projektu klienta, i potwierdź wszystkie prośby o zezwolenie na dostęp.
  3. Utwórz folder o nazwie terraform-consumer-psc i przenieś do niego plik.
mkdir terraform-consumer-psc  && cd terraform-consumer-psc
  1. Utwórz pliki main.tf, variable.tfpsc.tf.
touch main.tf variable.tf psc.tf 
  1. Przełącz się na widok edytora Cloud Shell dla identyfikatora projektu klienta. Kliknij edytor i zaakceptuj wszystkie niezbędne prośby, aby interfejs mógł się załadować.
  2. Po załadowaniu przejdź do Plik > Otwórz folder i otwórz folder /home/your-user-name/terraform-consumer-psc. Następnie kliknij OK, aby otworzyć folder w edytorze. 78f5eb9f2f82f1b0.png
  3. Wybierz plik variable.tf i dodaj do niego te informacje: Zastąp tekst your-consumer-project-id-here rzeczywistym identyfikatorem projektu klienta w cudzysłowie. Zastąp tekst your-psc-attachment-id-here adresem załącznika PSC w cudzysłowie. Jest to identyfikator skopiowany w sekcji 5–7 zadania 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. Następnie otwórz plik main.tf. Dodamy kod Terraform, aby wykonać różne działania opisane poniżej.

Włączanie interfejsów API

resource "google_project_service"

Utwórz VPC

resource "google_compute_network"

Tworzenie bramy NAT

resource "google_compute_router"
resource "google_compute_router_nat"

Dodawanie reguł zapory sieciowej

resource "google_compute_firewall"

  1. Skopiuj poniższy kod i wklej go do pliku 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. Wróć do terminala Cloud Shell i upewnij się, że znajdujesz się w katalogu terraform-consumer-psc cd terraform-consumer-psc w projekcie klienta. Następnie uruchom te polecenia:

terraform init

Inicjuje katalog roboczy. Ten krok pobiera dostawców wymaganych w danej konfiguracji.

terraform plan

Generuje plan wykonania, który pokazuje, jakie działania Terraform podejmie w celu wdrożenia infrastruktury.

  1. Aby utworzyć zasoby, uruchom polecenie terraform apply i wpisz yes.

8. Zadanie 6. Tworzenie przyłącza punktu końcowego PSC do bazy danych SQL w projekcie konsumenta i testowanie maszyny wirtualnej (Terraform)

Dokończ tę konfigurację w projekcie konsumenta.

  1. Wróć do edytora Cloud Shell, otwórz katalog terraform-consumer-psc i wybierz plik psc.tf. Dodaj do pliku ten kod Terraform. Spowoduje to utworzenie statycznego wewnętrznego adresu IP, punktu końcowego usługi PSC i maszyny wirtualnej z zainstalowaną bazą danych MariaDB.
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. Wróć do terminala Cloud Shell i upewnij się, że znajdujesz się w katalogu terraform-consumer-psc cd terraform-consumer-psc w projekcie klienta. Następnie uruchom te polecenia:

terraform plan

Generuje plan wykonania, który pokazuje, jakie działania Terraform podejmie w celu wdrożenia infrastruktury.

  1. Aby utworzyć zasoby, uruchom polecenie terraform apply i wpisz yes.

9. Zadanie 7. Sprawdzanie połączenia punktu końcowego z maszyny wirtualnej za pomocą adresu IP PSC

Wykonaj to w projekcie konsumenta

  1. Otwórz instancję maszyny wirtualnej. Wybierz remote-sql-test-vm.
  2. Aby połączyć się z maszyną wirtualną, wybierz opcję SSH.
  3. Połącz się z bazą danych za pomocą punktu końcowego w następujący sposób:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
  1. Po nawiązaniu połączenia utwórz bazę danych o nazwie psc-sql-db.
CREATE DATABASE remotepscpsasqldb;
  1. Po zakończeniu wpisz exit, aby zamknąć połączenie. Wpisz ponownie exit, aby zamknąć maszynę wirtualną.

10. Zadanie 8. Weryfikowanie wpisu w bazie danych

Przeprowadź weryfikację w projekcie bazy danych.

  1. W prawym górnym rogu konsoli obok ikony Google Cloud kliknij menu i wybierz kartę wszystkie.

pasek projektupasek projektu 2

  1. Aby kontynuować, z listy projektów wybierz identyfikator projektu bazy danych.
  2. Otwórz SQL, wybierz bazę danych psc-psa-sql-db, rozwiń opcje SQL i kliknij Bazy danych. W projekcie klienta na maszynie wirtualnej remotepscpsasqldb powinna być widoczna utworzona przez Ciebie baza danych, a w projekcie bazy danych na maszynie wirtualnej localvpcsqldb powinna być widoczna baza danych**.**.

36f5c03124ca20f6.png

11. Czyszczenie

Wykonaj te czynności w projekcie konsumenta

  1. Wybierz identyfikator projektu konsumenta
  2. Otwórz Cloud Shell i sprawdź, czy widzisz identyfikator projektu klienta.
  3. Przejdź do katalogu terraform-consumer-psc cd terraform-consumer-psc i uruchom to polecenie terraform destroy. Wpisz yes wszystkie zasoby utworzone w projekcie konsumenta za pomocą Terraform. Zostaną one usunięte.

Wykonaj to w projekcie bazy danych

  1. Wybierz identyfikator projektu bazy danych
  2. Otwórz Cloud Shell i sprawdź, czy widzisz identyfikator projektu bazy danych.
  3. Przejdź do katalogu terraform-db-psc cd terraform-db-psc i uruchom to polecenie terraform destroy. Wpisz yes większość zasobów utworzonych w projekcie bazy danych za pomocą Terraform zostanie usunięta. Nie można usunąć sieci usług i może wystąpić błąd.
  4. Następnie usuń te pliki z folderu terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
  1. Następnie w konsoli otwórz Sieci VPC.
  2. Wybierz sieć VPC database-net, kliknij PRYWATNY DOSTĘP DO USŁUG, w sekcji Przydzielone zakresy adresów IP dla usług wybierz psa-range-database-net i kliknij Zwolnij.

e4dbfa8953c5b036.png

  1. Następnie wybierz POŁĄCZENIE RÓWNORZĘDNE SIECI VPC,servicenetworking-googleapis-comUsuń.

4deab14044461d2d.png

  1. Następnie wybierz Usuń sieć VPC 2f4e96399b73d405.png.

12. Gratulacje

Gratulacje. Udało Ci się skonfigurować instancję Cloud SQL z przyłączem PSA i PSC oraz utworzyć punkt końcowy Private Service Connect w innej sieci VPC.

Więcej informacji

Więcej informacji o Private Service Connect i Cloud SQL

Inne powiązane ćwiczenia z programowania: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform