১. সংক্ষিপ্ত বিবরণ
সর্বশেষ হালনাগাদ: ২০২০-০৭-২৩
ক্লাউড স্প্যানার কী?
গুগল ক্লাউড স্প্যানার হলো একটি বিশ্বব্যাপী বিতরণকৃত, ACID-সম্মত ডেটাবেস যা স্বয়ংক্রিয়ভাবে রেপ্লিকা, শার্ডিং এবং ট্রানজ্যাকশন প্রসেসিং পরিচালনা করে, ফলে আপনি যেকোনো ব্যবহারের ধরন অনুযায়ী দ্রুত স্কেল করতে পারেন এবং আপনার পণ্যের সাফল্য নিশ্চিত করতে পারেন।
মূল বৈশিষ্ট্য
- স্কেলের জন্য নির্মিত রিলেশনাল ডেটাবেস: একটি রিলেশনাল ডেটাবেস থেকে আপনি যা যা প্রত্যাশা করেন—স্কিমা, SQL কোয়েরি, এবং ACID ট্রানজ্যাকশন—তার সবকিছুই এতে রয়েছে, যা বহুবার পরীক্ষিত এবং বিশ্বব্যাপী স্কেল করার জন্য প্রস্তুত।
- ৯৯.৯৯৯% প্রাপ্যতা: ক্লাউড স্প্যানার মাল্টি-রিজিওনাল ইনস্ট্যান্সগুলির জন্য শিল্প-সেরা ৯৯.৯৯৯% প্রাপ্যতা প্রদান করে—যা ফোর নাইনস-এর তুলনায় ১০ গুণ কম ডাউনটাইম—এবং অঞ্চল ও মাল্টি-রিজিওন কনফিগারেশন জুড়ে স্বচ্ছ, সিঙ্ক্রোনাস রেপ্লিকেশন সরবরাহ করে।
- স্বয়ংক্রিয় শার্ডিং: ক্লাউড স্প্যানার অনুরোধের চাপ এবং ডেটার আকারের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ডেটা শার্ডিং করার মাধ্যমে পারফরম্যান্স উন্নত করে। ফলে, আপনি আপনার ডাটাবেস কীভাবে স্কেল করবেন তা নিয়ে কম চিন্তা করে, তার পরিবর্তে আপনার ব্যবসাকে বড় করার দিকে মনোযোগ দিতে পারেন।
আপনি যা শিখবেন
- গুগল ক্লাউড টেরাফর্ম প্রোভাইডার কীভাবে ব্যবহার করবেন।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার ইনস্ট্যান্স এবং ডেটাবেস তৈরি করা।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার রিসোর্স পরিবর্তন করা।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার রিসোর্স ডিলিট করা।
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
আপনার যদি আগে থেকে কোনো গুগল অ্যাকাউন্ট (জিমেইল বা গুগল অ্যাপস) না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে। গুগল ক্লাউড প্ল্যাটফর্ম কনসোলে ( console.cloud.google.com ) সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন:


প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে ব্যবহৃত হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে এটিকে পরবর্তীতে PROJECT_ID হিসাবে উল্লেখ করা হবে।
এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।
এই কোডল্যাবটি চালাতে আপনার কয়েক ডলারের বেশি খরচ হওয়ার কথা নয়, কিন্তু আপনি যদি আরও রিসোর্স ব্যবহার করার সিদ্ধান্ত নেন অথবা সেগুলোকে চালু রাখেন, তাহলে খরচ আরও বেশি হতে পারে (এই ডকুমেন্টের শেষে 'ক্লিনআপ' অংশটি দেখুন)।
গুগল ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা ৩০০ ডলারের একটি বিনামূল্যে ট্রায়ালের জন্য যোগ্য।
প্রমাণীকরণ
যদি আগে থেকে ইনস্টল করা না থাকে, তবে অনুগ্রহ করে gcloud কমান্ড লাইন টুলটি ইনস্টল করুন। gcloud ইনস্টল হয়ে গেলে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস সক্রিয় করুন:
$ gcloud auth application-default login
টেরাফর্ম
যদি আগে Terraform ইনস্টল না করে থাকেন, তাহলে Terraform ইনস্টল করুন ।
৩. গুগল ক্লাউড টেরাফর্ম প্রোভাইডার
গুগল ক্লাউড টেরাফর্ম প্রোভাইডার চারটি ক্লাউড স্প্যানার রিসোর্স প্রদান করে:
- গুগল_স্প্যানার_ইনস্ট্যান্স
- গুগল_স্প্যানার_ডাটাবেস
- google_spanner_instance_iam
- গুগল_স্প্যানার_ডাটাবেস_আইএএম
এই কোডল্যাবে আমরা ক্লাউড স্প্যানার ইনস্ট্যান্স এবং ডেটাবেস তৈরি ও পরিচালনা করব।
পরিবেশ
আপনার ডেভেলপমেন্ট এনভায়রনমেন্টে, আপনার Terraform কনফিগারেশন ফাইলগুলোর জন্য একটি নতুন ডিরেক্টরি তৈরি করুন।
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
এরপর, 'main.tf' নামে একটি ফাইল তৈরি করুন এবং তাতে নিম্নলিখিত বিষয়বস্তু লিখুন। PROJECT_ID-এর জায়গায় আপনার নিজের গুগল ক্লাউড প্রজেক্ট আইডি বসান:
$ cat >> main.tf <<'EOF'
provider "google" {
project = "PROJECT_ID"
}
EOF
এই কোডল্যাবের বাকি অংশে, আমরা এই ফাইলটি পরিবর্তন করে প্রয়োগ করব।
৪. ইনস্ট্যান্স এবং ডেটাবেস তৈরি করা
একটি নতুন ক্লাউড স্প্যানার ইনস্ট্যান্স যোগ করতে 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.
পরিবর্তনগুলি প্রয়োগ করার পরে, আপনি গুগল ক্লাউড কনসোলে ইনস্ট্যান্সটি দেখতে পাবেন। অনুগ্রহ করে মনে রাখবেন যে, একটি ইনস্ট্যান্স তৈরি হয়ে গেলে আঞ্চলিক কনফিগারেশন পরিবর্তন করা সম্ভব নয়।

ইনস্ট্যান্স তৈরি করার পর, আমরা পরবর্তী ধাপে একটি ডাটাবেস তৈরি করব। 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 ইনস্ট্যান্সটির অধীনে উপলব্ধ হবে:

৫. একটি ইনস্ট্যান্স পরিবর্তন করা
পূর্ববর্তী বিভাগে যেমন উল্লেখ করা হয়েছে, ইনস্ট্যান্সের সমস্ত বৈশিষ্ট্য পরিবর্তনযোগ্য নয়। কিন্তু ইনস্ট্যান্স দ্বারা ব্যবহৃত রিসোর্স সামঞ্জস্য করতে আপনি নোডের সংখ্যা বাড়াতে/কমাতে পারেন। তৈরি করা ইনস্ট্যান্সটিতে ৩টি নোড ছিল। main.tf ফাইলটি পরিবর্তন করে, আমরা নোডের সংখ্যা বাড়িয়ে ৫ করতে যাচ্ছি:
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.
সফল হলে, ইনস্ট্যান্সটি ৫টি নোড ব্যবহার করবে।
৬. ডাটাবেস মুছে ফেলা
আপনার আর প্রয়োজন না থাকলে আপনি একটি ডাটাবেস স্থায়ীভাবে মুছে ফেলতে পারেন। এর জন্য, 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.
সফল হলে ডাটাবেসটি স্থায়ীভাবে মুছে ফেলা হবে।
৭. একটি ইনস্ট্যান্স মুছে ফেলা
আপনার আর প্রয়োজন না থাকলে আপনি একটি ইনস্ট্যান্স স্থায়ীভাবে মুছে ফেলতে পারেন। এর জন্য, main.tf থেকে ইনস্ট্যান্সটি সরিয়ে দিন এবং পরিবর্তনগুলো প্রয়োগ করুন।
provider "google" {
project = "PROJECT_ID"
}
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
সফল হলে, ইনস্ট্যান্সটি স্থায়ীভাবে মুছে ফেলা হবে।
৮. অভিনন্দন!
আপনি Terraform ব্যবহার করে Cloud Spanner রিসোর্স তৈরি, পরিবর্তন এবং মুছে ফেলেছেন।
আমরা যা আলোচনা করেছি
- গুগল ক্লাউড টেরাফর্ম প্রোভাইডার কীভাবে ব্যবহার করবেন।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার ইনস্ট্যান্স এবং ডেটাবেস তৈরি করা।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার রিসোর্স পরিবর্তন করা।
- টেরাফর্ম ব্যবহার করে ক্লাউড স্প্যানার রিসোর্স ডিলিট করা।
আরও জানুন
- গুগল ক্লাউড স্প্যানার ডকুমেন্টেশন দেখুন।
- Google Cloud Spanner Terraform রিসোর্সটি সম্পর্কে পড়ুন।
- ইনস্ট্যান্স এবং ডেটাবেসের জন্য IAM নিয়ম সেট করার বিষয়ে পড়ুন।