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

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

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

Cloud Spanner क्या है?

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

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

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

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

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

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

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

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

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

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

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

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

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

Google Cloud Platform के नए उपयोगकर्ता $300 के मुफ़्त परीक्षण के लिए योग्य हैं.

पुष्टि करना

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

$ gcloud auth application-default login

टेराफ़ॉर्म

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

3. Google क्लाउड टेराफ़ॉर्म कंपनी

Google Cloud टेराफ़ॉर्म प्रोवाइडर, क्लाउड स्पैनर में चार संसाधन उपलब्ध कराता है:

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

परिवेश

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

$ 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.

सफलता के बाद, मेरा-पहला-डेटाबेस उदाहरण के नीचे उपलब्ध होगा:

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.

सफल होने के बाद, इंस्टेंस, 5 नोड का इस्तेमाल करेगा.

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

अगर आपको किसी डेटाबेस की ज़रूरत न हो, तो उसे हमेशा के लिए मिटाया जा सकता है. बस, डेटाबेस को 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 टेराफ़ॉर्म सेवा देने वाली कंपनी को इस्तेमाल करने का तरीका.
  • Teraform का इस्तेमाल करके, Cloud Spanner के इंस्टेंस और डेटाबेस बनाना.
  • Cloud Spanner संसाधनों में बदलाव करने के लिए Teraform का इस्तेमाल करना.
  • Cloud Spanner संसाधनों को मिटाने के लिए Teraform का इस्तेमाल किया जा रहा है.

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