آچار ابری با Terraform

1. بررسی اجمالی

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

Cloud Spanner چیست؟

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

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

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

مشاهده تمام ویژگی ها

چیزی که یاد خواهید گرفت

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

2. راه اندازی و الزامات

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

اگر قبلاً یک حساب Google (Gmail یا Google Apps) ندارید، باید یک حساب ایجاد کنید . به کنسول Google Cloud Platform ( consol.cloud.google.com ) وارد شوید و یک پروژه جدید ایجاد کنید:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

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

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

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

کاربران جدید Google Cloud Platform واجد شرایط استفاده آزمایشی رایگان 300 دلاری هستند.

احراز هویت

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

$ 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. ایجاد نمونه ها و پایگاه های داده

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.

پس از اعمال تغییرات، می‌توانید نمونه را در 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 تحت این مثال در دسترس خواهد بود:

9962a71c6b2a3aff.png

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

همانطور که در بخش قبل ذکر شد، همه ویژگی های نمونه ها قابل تغییر نیستند. اما می‌توانید تعداد گره‌ها را افزایش یا کاهش دهید تا منابع مورد استفاده نمونه را تنظیم کنید. نمونه ایجاد شده دارای 3 گره بود. با تغییر فایل 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. تبریک می گویم!

شما منابع Cloud Spanner را با استفاده از Terraform ایجاد، اصلاح و حذف کرده اید.

آنچه را پوشش داده ایم

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

بیشتر بدانید