آچار ابری با Terraform

۱. مرور کلی

آخرین به‌روزرسانی: 2020-07-23

کلود اسپنر چیست؟

Google Cloud Spanner یک پایگاه داده توزیع‌شده جهانی و سازگار با ACID است که به‌طور خودکار کپی‌ها، شاردینگ و پردازش تراکنش‌ها را مدیریت می‌کند، بنابراین می‌توانید به‌سرعت برای برآورده کردن هر الگوی مصرفی مقیاس‌پذیر شوید و موفقیت محصولات خود را تضمین کنید.

ویژگی‌های کلیدی

  • پایگاه داده رابطه‌ای، ساخته شده برای مقیاس‌پذیری: هر آنچه از یک پایگاه داده رابطه‌ای انتظار دارید - طرحواره‌ها، پرس‌وجوهای SQL و تراکنش‌های ACID - آزمایش شده و آماده مقیاس‌پذیری در سطح جهانی است.
  • ۹۹.۹۹۹٪ دسترس‌پذیری: Cloud Spanner برای نمونه‌های چند منطقه‌ای، ۹۹.۹۹۹٪ دسترس‌پذیری پیشرو در صنعت را ارائه می‌دهد - ۱۰ برابر زمان از کارافتادگی کمتر از four nines - و تکثیر شفاف و همزمان را در پیکربندی‌های منطقه‌ای و چند منطقه‌ای فراهم می‌کند.
  • تقسیم‌بندی خودکار داده‌ها: Cloud Spanner با تقسیم‌بندی خودکار داده‌ها بر اساس بار درخواست و اندازه داده‌ها، عملکرد را بهینه می‌کند. در نتیجه، می‌توانید زمان کمتری را صرف نگرانی در مورد چگونگی مقیاس‌بندی پایگاه داده خود کنید و در عوض بر مقیاس‌بندی کسب‌وکار خود تمرکز کنید.

مشاهده همه امکانات

آنچه یاد خواهید گرفت

  • نحوه استفاده از ارائه دهنده Google Cloud Terraform .
  • استفاده از Terraform برای ایجاد نمونه‌ها و پایگاه‌های داده Cloud Spanner.
  • استفاده از Terraform برای تغییر منابع Cloud Spanner.
  • استفاده از Terraform برای حذف منابع Cloud Spanner.

۲. تنظیمات و الزامات

تنظیم محیط خودتنظیم

اگر از قبل حساب گوگل (جیمیل یا برنامه‌های گوگل) ندارید، باید یکی ایجاد کنید . وارد کنسول پلتفرم ابری گوگل ( console.cloud.google.com ) شوید و یک پروژه جدید ایجاد کنید:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه‌های Google Cloud (نام بالا قبلاً گرفته شده و برای شما کار نخواهد کرد، متاسفیم!). بعداً در این آزمایشگاه کد به آن PROJECT_ID گفته خواهد شد.

در مرحله بعد، برای استفاده از منابع گوگل کلود، باید صورتحساب را در کنسول کلود فعال کنید .

اجرای این آزمایشگاه کد نباید بیش از چند دلار برای شما هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتر بگیرید یا اگر آنها را در حال اجرا رها کنید، می‌تواند بیشتر هم بشود (به بخش «پاکسازی» در انتهای این سند مراجعه کنید).

کاربران جدید پلتفرم ابری گوگل واجد شرایط دریافت یک دوره آزمایشی رایگان ۳۰۰ دلاری هستند.

احراز هویت

اگر قبلاً این کار را نکرده‌اید، لطفاً ابزار خط فرمان gcloud را نصب کنید. پس از نصب gcloud، با اجرای دستور زیر در ترمینال خود، اعتبارنامه‌های پیش‌فرض برنامه را فعال کنید:

$ gcloud auth application-default login

ترافرم

اگر قبلاً Terraform را نصب نکرده‌اید، Terraform را نصب کنید .

۳. ارائه‌دهنده‌ی خدمات Terraform گوگل کلود

ارائه دهنده Google Cloud Terraform چهار منبع 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

در ادامه‌ی این بخش از کد، قصد داریم این فایل را تغییر داده و تغییرات را اعمال کنیم.

۴. ایجاد نمونه‌ها و پایگاه‌های داده

فایل main.tf را با محتوای زیر تغییر دهید تا یک نمونه جدید از Cloud Spanner اضافه شود:

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.

پس از اعمال تغییرات، می‌توانید نمونه را در کنسول ابری گوگل مشاهده کنید. لطفاً توجه داشته باشید که پیکربندی منطقه‌ای پس از ایجاد نمونه قابل تغییر نیست.

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

۵. اصلاح یک نمونه

همانطور که در بخش قبلی اشاره شد، همه ویژگی‌های نمونه‌ها قابل تغییر نیستند. اما می‌توانید تعداد گره‌ها را برای تنظیم منابع مورد استفاده توسط نمونه افزایش/کاهش دهید. نمونه ایجاد شده دارای ۳ گره بود. با تغییر فایل 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 Terraform.
  • استفاده از Terraform برای ایجاد نمونه‌ها و پایگاه‌های داده Cloud Spanner.
  • استفاده از Terraform برای تغییر منابع Cloud Spanner.
  • استفاده از Terraform برای حذف منابع Cloud Spanner.

اطلاعات بیشتر