टेराफ़ॉर्म के साथ क्लाउड स्पैनर

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

पिछले अपडेट की तारीख: 23-07-2020

Cloud Spanner क्या है?

Google Cloud Spanner, दुनिया भर में उपलब्ध एक ऐसा डेटाबेस है जो ACID के सिद्धांतों का पालन करता है. यह रेप्लिका, शार्डिंग, और लेन-देन की प्रोसेसिंग को अपने-आप मैनेज करता है. इससे आपको इस्तेमाल के किसी भी पैटर्न के हिसाब से जल्दी से स्केल करने और अपने प्रॉडक्ट की सफलता को पक्का करने में मदद मिलती है.

मुख्य सुविधाएं

  • स्केल के लिए बनाया गया रिलेशनल डेटाबेस: इसमें आपको रिलेशनल डेटाबेस से जुड़ी हर सुविधा मिलती है. जैसे, स्कीमा, SQL क्वेरी, और ACID ट्रांज़ैक्शन. इसे कई बार टेस्ट किया गया है और यह दुनिया भर में इस्तेमाल करने के लिए तैयार है.
  • 99.999% उपलब्धता: Cloud Spanner, एक से ज़्यादा क्षेत्रों में मौजूद इंस्टेंस के लिए, इंडस्ट्री में सबसे ज़्यादा 99.999% उपलब्धता देता है. यह चार नाइन से 10 गुना कम डाउनटाइम है. साथ ही, यह क्षेत्र और एक से ज़्यादा क्षेत्रों के कॉन्फ़िगरेशन में पारदर्शी और सिंक्रोनस रेप्लिकेशन उपलब्ध कराता है.
  • डेटा अपने-आप शार्ड होना: Cloud Spanner, अनुरोध के लोड और डेटा के साइज़ के आधार पर डेटा को अपने-आप शार्ड करके परफ़ॉर्मेंस को ऑप्टिमाइज़ करता है. इस वजह से, आपको डेटाबेस को बढ़ाने के तरीके के बारे में कम सोचना पड़ता है. इसके बजाय, अपने कारोबार को बढ़ाने पर ध्यान दिया जा सकता है.

सभी सुविधाएँ देखें

आपको क्या सीखने को मिलेगा

  • Google Cloud Terraform प्रोवाइडर का इस्तेमाल करने का तरीका.
  • Cloud Spanner इंस्टेंस और डेटाबेस बनाने के लिए, Terraform का इस्तेमाल करना.
  • Cloud Spanner संसाधनों में बदलाव करने के लिए, Terraform का इस्तेमाल करना.
  • Cloud Spanner के संसाधनों को मिटाने के लिए Terraform का इस्तेमाल करना.

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

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

अगर आपके पास पहले से कोई Google खाता (Gmail या Google Apps) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Platform Console ( console.cloud.google.com) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:

50983ac3fdbbf8d0.pngea581205026ca8e3.png

प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोडलैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.

इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.

इस कोडलैब को पूरा करने में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करने पड़ेंगे. हालांकि, अगर आपको ज़्यादा संसाधनों का इस्तेमाल करना है या उन्हें चालू रखना है, तो यह खर्च बढ़ सकता है. इस दस्तावेज़ के आखिर में "सफाई" सेक्शन देखें.

Google Cloud Platform के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मुफ़्त में आज़माने के लिए मिलता है.

पुष्टि करना

अगर आपने पहले से ऐसा नहीं किया है, तो कृपया gcloud कमांड लाइन टूल इंस्टॉल करें. gcloud इंस्टॉल होने के बाद, अपने टर्मिनल में यह कमांड चलाकर, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल चालू करें:

$ gcloud auth application-default login

Terraform

अगर आपने पहले Terraform इंस्टॉल नहीं किया है, तो Terraform इंस्टॉल करें.

3. Google Cloud Terraform Provider

Google Cloud Terraform Provider, Cloud Spanner के चार संसाधन उपलब्ध कराता है:

इस कोडलैब में, हम Cloud Spanner इंस्टेंस और डेटाबेस बनाएंगे और उन्हें मैनेज करेंगे.

परिवेश

अपने डेवलपमेंट एनवायरमेंट में, Terraform कॉन्फ़िगरेशन फ़ाइलों के लिए नई डायरेक्ट्री बनाएं.

$ mkdir ~/terraform-spanner
$ cd ~/terraform-spanner

इसके बाद, नीचे दिए गए कॉन्टेंट के साथ "main.tf" नाम की एक फ़ाइल बनाएं. साथ ही, PROJECT_ID की जगह अपना Google Cloud प्रोजेक्ट आईडी डालें:

$ cat >> main.tf <<'EOF'
provider "google" {
  project = "PROJECT_ID"
}
EOF

इस कोडलैब के बाकी बचे हिस्से में, हम इस फ़ाइल में बदलाव करेंगे और बदलाव लागू करेंगे.

4. इंस्टेंस और डेटाबेस बनाना

नया Cloud Spanner इंस्टेंस जोड़ने के लिए, main.tf फ़ाइल में यह कॉन्टेंट जोड़ें:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

बदलाव लागू करने के लिए, यह कमांड चलाएं:

$ terraform apply
# ...
Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes
# ...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

बदलाव लागू होने के बाद, आपको Google Cloud Console में इंस्टेंस दिखेगा. कृपया ध्यान दें कि इंस्टेंस बनाने के बाद, क्षेत्र के हिसाब से कॉन्फ़िगरेशन में बदलाव नहीं किया जा सकता.

48b67416982fa152.png

उदाहरण बनाने के बाद, हम अगले चरणों में डेटाबेस बनाएंगे. main.tf फ़ाइल में यह कॉन्टेंट जोड़ें:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

बदलावों को लागू करने के लिए, इस निर्देश का फिर से इस्तेमाल करें:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

सफल होने पर, my-first-database इस इंस्टेंस के तहत उपलब्ध होगा:

9962a71c6b2a3aff.png

5. किसी इंस्टेंस में बदलाव करना

जैसा कि पिछले सेक्शन में बताया गया है, इंस्टेंस की सभी प्रॉपर्टी में बदलाव नहीं किया जा सकता. हालांकि, इंस्टेंस के लिए इस्तेमाल किए गए संसाधनों को अडजस्ट करने के लिए, नोड की संख्या बढ़ाई या घटाई जा सकती है. बनाए गए इंस्टेंस में तीन नोड थे. main.tf फ़ाइल में बदलाव करके, हम नोड की संख्या को 5 तक बढ़ाएंगे:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

अगला चरण, बदलावों को लागू करना है:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

अपग्रेड हो जाने के बाद, इंस्टेंस में पांच नोड इस्तेमाल किए जाएंगे.

6. डेटाबेस मिटाना

जब आपको किसी डेटाबेस की ज़रूरत न हो, तो उसे हमेशा के लिए मिटाया जा सकता है. बस, database को main.tf से हटाएं और बदलाव लागू करें.

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

डेटाबेस मिटाने की प्रोसेस पूरी होने के बाद, उसे हमेशा के लिए मिटा दिया जाएगा.

7. किसी इंस्टेंस को मिटाना

जब आपको किसी इंस्टेंस की ज़रूरत न हो, तो उसे हमेशा के लिए मिटाया जा सकता है. बस, इंस्टेंस को main.tf से हटाएं और बदलाव लागू करें.

provider "google" {
  project = "PROJECT_ID"
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

सफल होने पर, इंस्टेंस हमेशा के लिए मिटा दिया जाएगा.

8. बधाई हो!

आपने Terraform का इस्तेमाल करके, Cloud Spanner के संसाधन बनाए, उनमें बदलाव किए, और उन्हें मिटाया है.

हमने क्या-क्या बताया

  • Google Cloud Terraform provider का इस्तेमाल करने का तरीका.
  • Cloud Spanner इंस्टेंस और डेटाबेस बनाने के लिए, Terraform का इस्तेमाल करना.
  • Cloud Spanner संसाधनों में बदलाव करने के लिए, Terraform का इस्तेमाल करना.
  • Cloud Spanner के संसाधनों को मिटाने के लिए Terraform का इस्तेमाल करना.

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