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) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:


प्रोजेक्ट आईडी याद रखें. यह सभी 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 के चार संसाधन उपलब्ध कराता है:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
इस कोडलैब में, हम 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 में इंस्टेंस दिखेगा. कृपया ध्यान दें कि इंस्टेंस बनाने के बाद, क्षेत्र के हिसाब से कॉन्फ़िगरेशन में बदलाव नहीं किया जा सकता.

इंस्टेंस बनाने के बाद, हम अगले चरणों में डेटाबेस बनाएंगे. 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 इस इंस्टेंस के तहत उपलब्ध होगा:

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. डेटाबेस मिटाना
जब आपको किसी डेटाबेस की ज़रूरत न हो, तो उसे हमेशा के लिए मिटाया जा सकता है. डेटाबेस को 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 प्रोवाइडर का इस्तेमाल करने का तरीका.
- Cloud Spanner इंस्टेंस और डेटाबेस बनाने के लिए, Terraform का इस्तेमाल करना.
- Cloud Spanner संसाधनों में बदलाव करने के लिए, Terraform का इस्तेमाल करना.
- Cloud Spanner के संसाधनों को मिटाने के लिए Terraform का इस्तेमाल करना.
ज़्यादा जानें
- Google Cloud Spanner से जुड़ा दस्तावेज़ देखें.
- Google Cloud Spanner Terraform संसाधन के बारे में पढ़ें.
- इंस्टेंस और डेटाबेस के लिए IAM के नियम सेट करने के बारे में पढ़ें.