Private Service Connect (Terraform) की मदद से CloudSQL से कनेक्ट करना

1. खास जानकारी

किसी दूसरे प्रोजेक्ट या वीपीसी से निजी Cloud SQL इंस्टेंस से कनेक्ट करने के कई विकल्प हैं. Private Service Connect (पीएससी) की मदद से, सेवा देने वाली कंपनियां सेवा अटैचमेंट के ज़रिए अपनी सेवाएं दिखा सकती हैं. उपभोक्ता, अपने एनवायरमेंट में पीएससी एंडपॉइंट और/या पीएससी बैकएंड बनाने के लिए, सेवा के इन अटैचमेंट का इस्तेमाल कर सकते हैं. साथ ही, वे किसी खास निजी आईपी के ज़रिए, इन प्रोड्यूसर सेवाओं से कनेक्ट कर सकते हैं.

Cloud SQL में, निजी कनेक्शन की अनुमति देने के लिए, PSC सेवा अटैचमेंट का इस्तेमाल करने की सुविधा है. इस लैब में, इस विकल्प को कॉन्फ़िगर और टेस्ट किया जा सकता है.

इस लैब में, आपको एक आसान आर्किटेक्चर बनाना है. इसमें, CloudSQL के साथ PSC एंडपॉइंट ऐक्सेस के इस्तेमाल के बारे में बताया गया है.

पहला चित्र.

1893f48fe1298ea2.png

इस लैब के लिए, आपको दो प्रोजेक्ट या एक ही प्रोजेक्ट में अलग-अलग VPC की ज़रूरत होगी.

मकसद

इस लैब में, आपको यह काम करने का तरीका पता चलेगा:

  • PSC सेवा अटैचमेंट की मदद से CloudSQL इंस्टेंस बनाएं.
  • स्टैटिक आईपी पता बनाना
  • CloudSQL डेटाबेस से कनेक्ट करने के लिए, उपभोक्ता VPC में PSC एंडपॉइंट बनाएं
  • PSC एंडपॉइंट आईपी के ज़रिए, उपभोक्ता नेटवर्क में मौजूद टेस्ट वीएम से SQL डेटाबेस के ऐक्सेस की पुष्टि करें.

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको यह जानने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं आता है, तो कोई दूसरा आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है.
  • आपकी जानकारी के लिए बता दें कि तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको Cloud के संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले कार्यक्रम में शामिल हो सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से रिमोट तौर पर इस्तेमाल किया जा सकता है. हालांकि, इस कोडलैब में आपको Google Cloud Shell का इस्तेमाल करना होगा. यह Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं टूलबार में मौजूद Cloud Shell आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

एनवायरमेंट से कनेक्ट होने और उसे प्रोवाइड करने में सिर्फ़ कुछ मिनट लगेंगे. इसके पूरा होने पर, आपको कुछ ऐसा दिखेगा:

7ffe5cbb04455448.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल लोड होते हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. यह Google Cloud पर चलता है, जिससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की सुविधा बेहतर होती है. इस कोडलैब में, सारा काम ब्राउज़र में किया जा सकता है. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

3. पहला टास्क. Terraform की मदद से, डेटाबेस प्रोजेक्ट के लिए एनवायरमेंट सेट अप करना

डेटाबेस प्रोजेक्ट में,हम फ़ायरवॉल नियमों और सबनेट के साथ कस्टम वीपीसी बनाएंगे. Cloud Console खोलें और वह प्रोजेक्ट चुनें जिसका इस्तेमाल डेटाबेस के लिए किया जाएगा.

  1. अपने कंसोल में सबसे ऊपर दाईं ओर मौजूद Cloud Shell खोलें. पक्का करें कि आपको Cloud Shell में डेटाबेस प्रोजेक्ट के लिए डेटाबेस प्रोजेक्ट आईडी दिख रहा हो. ऐक्सेस की अनुमति देने के लिए, किसी भी प्रॉम्प्ट की पुष्टि करें. 4261e776f64ea978.png
  2. terraform-db नाम का फ़ोल्डर बनाएं और उसमें फ़ाइलें ले जाएं
mkdir terraform-db  && cd terraform-db
  1. main.tf, variable.tf, और database.tf फ़ाइल बनाएं.
touch main.tf variable.tf database.tf 
  1. Cloud Shell एडिटर व्यू पर स्विच करें. एडिटर चुनें. साथ ही, इंटरफ़ेस लोड हो सके, इसके लिए ज़रूरी प्रॉम्प्ट को अनुमति दें.
  2. लोड होने के बाद, फ़ाइल > फ़ोल्डर खोलें पर जाएं. इसके बाद, /home/your-user-name/terraform-db पर जाएं और फ़ोल्डर को Editor में खोलने के लिए, ठीक है को चुनें. 78f5eb9f2f82f1b0.png
  3. variable.tf फ़ाइल चुनें और नीचे दिया गया कोड जोड़ें. your-database-project-id-here टेक्स्ट को कोट में अपने असल डेटाबेस प्रोजेक्ट आईडी से बदलें. your-consumer-project-id-here टेक्स्ट को कोट में अपने असल उपभोक्ता प्रोजेक्ट आईडी से बदलें.
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. इसके बाद, main.tf फ़ाइल खोलें. हम यहां बताए गए तरीके से अलग-अलग कार्रवाइयां करने के लिए, कुछ terraform कोड जोड़ने जा रहे हैं.

एपीआई चालू करना

resource "google_project_service" "default"

VPC बनाना

resource "google_compute_network" "default"

फ़ायरवॉल के नियम जोड़ना

resource "google_compute_firewall" "allow_icmp"

  1. यहां दिए गए कोड को कॉपी करके, main .tf फ़ाइल में चिपकाएं.
resource "google_project_service" "default" {
  for_each = toset([
    "compute.googleapis.com",
    "sqladmin.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_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"]
 }
  1. Cloud Shell टर्मिनल पर वापस जाएं और पक्का करें कि आप terraform-db डायरेक्ट्री cd terraform-db में हों. इसके बाद, ये कमांड चलाएं

terraform init

वर्किंग डायरेक्ट्री को शुरू करता है. इस चरण में, दिए गए कॉन्फ़िगरेशन के लिए ज़रूरी प्रोवाइडर डाउनलोड किए जाते हैं.

terraform plan

यह एक प्लान जनरेट करता है. इसमें यह दिखाया जाता है कि आपके इन्फ़्रास्ट्रक्चर को डिप्लॉय करने के लिए, Terraform कौनसी कार्रवाइयां करेगा.

  1. अब संसाधन बनाने के लिए, terraform apply कमांड चलाएं और चलाने के लिए yes टाइप करें.

4. दूसरा टास्क. PSC अटैचमेंट (Terraform) की मदद से CloudSQL इंस्टेंस बनाना

आइए, Terraform का इस्तेमाल करके CloudSQL इंस्टेंस बनाएं. साथ ही, कनेक्टिविटी की अनुमति देने के लिए, PSC विकल्प का इस्तेमाल करें. डेटाबेस प्रोजेक्ट में यह कॉन्फ़िगरेशन पूरा करें.

  1. Cloud Shell एडिटर व्यू पर स्विच करें. पक्का करें कि आप terraform-db फ़ोल्डर में हों. database.tf फ़ाइल चुनें और नीचे दिया गया कोड जोड़ें.
resource "google_sql_database_instance" "default" {
  name             = "psc-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 {
      psc_config {
        psc_enabled               = true
        allowed_consumer_projects = var.project_id_consumer
      }
      ipv4_enabled = false
    }
  }
  deletion_protection = false 
}

resource "google_sql_user" "users" {
  name     = "testsql"
  instance = google_sql_database_instance.default.name
  password = var.db_password 
}
  1. Cloud Shell टर्मिनल पर वापस जाएं और पक्का करें कि आप terraform-db डायरेक्ट्री में हों. अब संसाधन बनाने के लिए, terraform apply कमांड चलाएं और चलाने के लिए yes टाइप करें. PSC अटैचमेंट के साथ CloudSQL इंस्टेंस बनाने में पांच मिनट से ज़्यादा लग सकते हैं.

डेटाबेस की पुष्टि करना

  1. इसके बाद, कंसोल में SQL पर जाएं और नया psc-sql-db डेटाबेस इंस्टेंस चुनें.
  2. बाईं ओर, SQL के विकल्पों वाले स्लाइडआउट को बड़ा करें और कनेक्शन चुनें
  3. समरी टैब में, आपको कनेक्शन की जानकारी दिख सकती है.
  4. सेवा के अटैचमेंट का पता कॉपी करें और उसे अपने सिस्टम में कहीं सेव करें.
  5. तीसरे टास्क के आठवें चरण को पूरा करने के लिए, आपको इसकी ज़रूरत होगी.

psc अटैचमेंट वाला Cloud SQL

  1. बाईं ओर, SQL के विकल्पों वाले स्लाइडआउट को बड़ा करें और उपयोगकर्ता चुनें.
  2. आपको testsql नाम का एक उपयोगकर्ता दिखेगा, जिसका पासवर्ड cloudsql24 होगा(इसका इस्तेमाल बाद में डीबी को ऐक्सेस करने के लिए किया जाएगा)

5. तीसरा टास्क. कंज्यूमर प्रोजेक्ट (Terraform) के लिए एनवायरमेंट सेट अप करना

उपभोक्ता प्रोजेक्ट में,हम फ़ायरवॉल नियमों और सबनेट के साथ कस्टम वीपीसी बनाएंगे. Cloud Console खोलें और वह प्रोजेक्ट चुनें जिसका इस्तेमाल करना है.

  1. अपने कंसोल में सबसे ऊपर, Google Cloud आइकॉन के बगल में मौजूद ड्रॉपडाउन पर क्लिक करें. इसके बाद, सभी टैब चुनें.

प्रोजेक्ट बारप्रोजेक्ट बार 2

  1. जारी रखने के लिए, सूची में दिए गए प्रोजेक्ट में से अपना उपभोक्ता प्रोजेक्ट आईडी चुनें.
  2. अपने कंसोल में सबसे ऊपर दाईं ओर मौजूद Cloud Shell खोलें. पक्का करें कि आपको Cloud Shell में उपभोक्ता प्रोजेक्ट आईडी दिख रहा हो. ऐक्सेस की अनुमति देने के लिए, किसी भी प्रॉम्प्ट की पुष्टि करें.
  3. terraform-consumer नाम का फ़ोल्डर बनाएं और उसमें जाएं
mkdir terraform-consumer  && cd terraform-consumer
  1. main.tf, variable.tf, और psc.tf फ़ाइल बनाएं.
touch main.tf variable.tf psc.tf 
  1. उपभोक्ता प्रोजेक्ट आईडी के लिए, Cloud Shell एडिटर व्यू पर स्विच करें. एडिटर चुनें. साथ ही, इंटरफ़ेस लोड हो सके, इसके लिए ज़रूरी प्रॉम्प्ट को अनुमति दें.
  2. लोड होने के बाद, फ़ाइल > फ़ोल्डर खोलें पर जाएं. इसके बाद, /home/your-user-name/terraform-consumer पर जाएं और फ़ोल्डर को Editor में खोलने के लिए, ठीक है को चुनें. 78f5eb9f2f82f1b0.png
  3. variable.tf फ़ाइल चुनें और नीचे दिया गया कोड जोड़ें. your-consumer-project-id-here टेक्स्ट को कोट में अपने असल उपभोक्ता प्रोजेक्ट आईडी से बदलें. your-psc-attachment-id-here टेक्स्ट को कोट में अपने पीएससी अटैचमेंट पते से बदलें. यह वह आईडी है जिसे आपने टास्क 2 के सेक्शन 2-5 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-net"
}

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

variable "region_id2" {
  type = string
  default = "us-central1"
}
  1. इसके बाद, main.tf फ़ाइल खोलें. हम यहां बताए गए तरीके से अलग-अलग कार्रवाइयां करने के लिए, कुछ terraform कोड जोड़ने जा रहे हैं.

एपीआई चालू करना

resource "google_project_service"

VPC बनाना

resource "google_compute_network"

NAT गेटवे बनाना

resource "google_compute_router"
resource "google_compute_router_nat"

फ़ायरवॉल के नियम जोड़ना

resource "google_compute_firewall"

  1. यहां दिए गए कोड को कॉपी करके, 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" {
  name          = "vm-subnet"
  ip_cidr_range = "192.168.50.0/24"
  region        = var.region_id2
  network       = google_compute_network.default.name
  project       = var.project_id
}

resource "google_compute_subnetwork" "psc_subnet" {
  name          = "psc-subnet"
  ip_cidr_range = "192.168.90.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_id2
  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. Cloud Shell टर्मिनल पर वापस जाएं और पक्का करें कि आप उपभोक्ता प्रोजेक्ट में terraform-consumer डायरेक्ट्री cd terraform-consumer में हों. इसके बाद, ये निर्देश चलाएं

terraform init

वर्किंग डायरेक्ट्री को शुरू करता है. इस चरण में, दिए गए कॉन्फ़िगरेशन के लिए ज़रूरी प्रोवाइडर डाउनलोड किए जाते हैं.

terraform plan

यह एक प्लान जनरेट करता है. इसमें यह दिखाया जाता है कि आपके इन्फ़्रास्ट्रक्चर को डिप्लॉय करने के लिए, Terraform कौनसी कार्रवाइयां करेगा.

  1. अब संसाधन बनाने के लिए, terraform apply कमांड चलाएं और चलाने के लिए yes टाइप करें.

6. चौथा टास्क. कंज्यूमर प्रोजेक्ट में SQL DB अटैचमेंट के लिए PSC एंडपॉइंट बनाएं और वीएम की जांच करें (Terraform)

उपभोक्ता प्रोजेक्ट में यह कॉन्फ़िगरेशन पूरा करें.

  1. Cloud Shell एडिटर पर वापस जाएं और terraform-consumer डायरेक्ट्री खोलें. इसके बाद, psc.tf फ़ाइल चुनें. फ़ाइल में यह Terraform कोड जोड़ें. इससे एक स्टैटिक इंटरनल आईपी, पीएससी एंडपॉइंट, और Maria DB इंस्टॉल किया गया टेस्ट वीएम बन जाता है.
resource "google_compute_address" "default" {
  name = "psc-ip"
  region = var.region_id
  address_type = "INTERNAL"
  subnetwork = google_compute_subnetwork.psc_subnet.name
  address = "192.168.90.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         = "sql-test-vm"
  machine_type = "e2-medium"
  zone         = "${var.region_id2}-b"
  project      = var.project_id

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

  network_interface {
    subnetwork = google_compute_subnetwork.vm_subnet.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. Cloud Shell टर्मिनल पर वापस जाएं और पक्का करें कि आप उपभोक्ता प्रोजेक्ट में terraform-consumer डायरेक्ट्री cd terraform-consumer में हों. इसके बाद, ये निर्देश चलाएं

terraform plan

यह एक प्लान जनरेट करता है. इसमें यह दिखाया जाता है कि आपके इन्फ़्रास्ट्रक्चर को डिप्लॉय करने के लिए, Terraform कौनसी कार्रवाइयां करेगा.

  1. अब संसाधन बनाने के लिए, terraform apply कमांड चलाएं और चलाने के लिए yes टाइप करें
  2. हमारा वीएम और एंडपॉइंट अलग-अलग इलाकों में हैं. इसलिए, हमें पीएससी एंडपॉइंट पर ग्लोबल ऐक्सेस चालू करना होगा. हम ऐसा कंसोल के ज़रिए करते हैं
  3. उपभोक्ता के प्रोजेक्ट कंसोल में, Private Service Connect पर जाएं. कनेक्ट किया गया एंडपॉइंट टैब में, एंडपॉइंट सेक्शन में जाएं और psc-sql-endpoint चुनें
  4. अब बदलाव करें को चुनें. इसके बाद,ग्लोबल ऐक्सेस चालू करें के बगल में मौजूद चेकबॉक्स और सेव करें विकल्प पर क्लिक करें. 7eeb5a4162f5f79d.png
  5. कनेक्टिविटी की पुष्टि करने के लिए, अगले चरण पर जाएं

7. पांचवां टास्क. PSC आईपी पते की मदद से, वीएम से एंडपॉइंट कनेक्टिविटी की पुष्टि करना

उपभोक्ता प्रोजेक्ट में यह काम पूरा करें

  1. VM इंस्टेंस पर जाएं. sql-test-vm चुनें
  2. VM से कनेक्ट करने के लिए, SSH विकल्प चुनें.
  3. एंडपॉइंट के ज़रिए डीबी से कनेक्ट करने के लिए, इनका इस्तेमाल करें:
mysql --host=192.168.90.100 --user=testsql --password=cloudsql24
  1. कनेक्शन बन जाने के बाद, psc-sql-db की मदद से डेटाबेस बनाएं.
CREATE DATABASE remotesqldb;
  1. इसके बाद, कनेक्शन से बाहर निकलने के लिए, 'बाहर निकलें' टाइप करें.

8. छठा टास्क. डेटाबेस एंट्री की पुष्टि करना

डेटाबेस प्रोजेक्ट में जाकर, पुष्टि की यह प्रक्रिया पूरी करें

  1. अपने कंसोल में सबसे ऊपर, Google Cloud आइकॉन के बगल में मौजूद ड्रॉपडाउन पर क्लिक करें. इसके बाद, सभी टैब चुनें.

प्रोजेक्ट बारप्रोजेक्ट बार 2

  1. जारी रखने के लिए, सूची में दिए गए प्रोजेक्ट में से अपना डेटाबेस प्रोजेक्ट आईडी चुनें.
  2. SQL पर जाएं. इसके बाद, डेटाबेस psc-sql-db चुनें. इसके बाद, एसक्यूएल के विकल्पों को बड़ा करें और डेटाबेस चुनें. आपको उपभोक्ता प्रोजेक्ट के VM**.** से, remotesqldb नाम का वह डेटाबेस दिखेगा जिसे आपने अभी बनाया है

cloud sql db

9. क्लीन अप

डेटाबेस प्रोजेक्ट में यह काम पूरा करना

  1. डेटाबेस प्रोजेक्ट आईडी चुनें
  2. Cloud Shell पर जाएं और पक्का करें कि आपको डेटाबेस प्रोजेक्ट आईडी दिख रहा हो
  3. terraform-db डायरेक्ट्री cd terraform-db पर जाएं और यह कमांड चलाएं terraform destroy. इसके बाद, yes टाइप करें. इससे, Terraform की मदद से बनाए गए आपके डीबी प्रोजेक्ट के सभी संसाधन हट जाएंगे.

उपभोक्ता प्रोजेक्ट में यह काम पूरा करना

  1. उपभोक्ता प्रोजेक्ट आईडी चुनें
  2. Cloud Shell पर जाएं और पक्का करें कि आपको उपभोक्ता प्रोजेक्ट आईडी दिख रहा हो
  3. terraform-consumer डायरेक्ट्री cd terraform-consumer पर जाएं और यह कमांड चलाएं terraform destroy. इसके बाद, yes टाइप करें. इससे, Terraform की मदद से बनाए गए आपके डीबी प्रोजेक्ट के सभी संसाधन हट जाएंगे.

10. बधाई हो

बधाई हो, आपने PSC अटैचमेंट की मदद से Cloud SQL इंस्टेंस को कॉन्फ़िगर कर लिया है. साथ ही, किसी दूसरे VPC में Private Service Connect एंडपॉइंट बना लिया है. आपने PSC एंडपॉइंट के ज़रिए, किसी रिमोट वीएम से डेटाबेस से कनेक्ट कर लिया है.

ज़्यादा जानें

Private Service Connect और Cloud SQL के बारे में ज़्यादा पढ़ा जा सकता है