Cloud Spanner עם Terraform

1. סקירה כללית

עדכון אחרון: 23 ביולי 2020

מה זה Cloud Spanner?

Google Cloud Spanner הוא מסד נתונים תואם ACID שמופץ ברחבי העולם ומטפל באופן אוטומטי ברפליקות, בפיצול ובעיבוד טרנזקציות. כך ניתן להתאים את ההיקף במהירות לכל דפוס שימוש ולהבטיח את הצלחת המוצרים.

תכונות עיקריות

  • מסד נתונים רלציוני, שמותאם להתאמה לעומס: כל מה שאפשר לצפות ממסד נתונים רלציוני – סכימות, שאילתות SQL ועסקאות ACID – נבדק ומוכן להתאמה לעומס (scaling) בכל העולם.
  • זמינות של 99.999%: Cloud Spanner מספק זמינות של 99.999% מהמובילות בתחום למכונות במספר אזורים – פי 10 פחות זמן השבתה מאשר ארבע תשע, ומספק רפליקציה שקופה וסינכרונית בין אזורים ובתצורות במספר אזורים.
  • פיצול אוטומטי: Cloud Spanner מבצע אופטימיזציה של הביצועים על ידי פיצול נתונים באופן אוטומטי על סמך טעינת הבקשה וגודל הנתונים. כתוצאה מכך, תוכלו לחסוך זמן בדאגה לגבי התאמת מסד הנתונים שלכם, ובמקום זאת להתמקד בהרחבת העסק שלכם.

הצגת כל התכונות

מה תלמדו

  • איך משתמשים בספק Google Cloud Terraform.
  • שימוש ב-Terraform כדי ליצור מכונות ומסדי נתונים של Cloud Spanner.
  • שימוש ב-Terraform כדי לשנות משאבים של Cloud Spanner.
  • שימוש ב-Terraform כדי למחוק משאבים של Cloud Spanner.

2. הגדרה ודרישות

הגדרת סביבה בקצב עצמאי

אם אין לכם עדיין חשבון Google (Gmail או Google Apps), עליכם ליצור חשבון. נכנסים למסוף Google Cloud Platform ( console.cloud.google.com) ויוצרים פרויקט חדש:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

חשוב לזכור את מזהה הפרויקט, שם ייחודי לכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא מתאים לכם, סליחה). בהמשך ב-Codelab הזה, המערכת תתייחס אליה בתור PROJECT_ID.

בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.

ההרצה של קוד ה-Codelab הזה לא אמורה לעלות לך יותר מכמה דולרים, אבל הוא יכול להיות גבוה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (עיינו בקטע 'ניקוי' בסוף המסמך).

משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.

אימות

אם לא עשיתם זאת בעבר, התקינו את כלי שורת הפקודה gcloud. אחרי שמתקינים את gcloud, מפעילים את Application Default Credentials על ידי הרצת הפקודה הבאה בטרמינל:

$ gcloud auth application-default login

Terraform

אם לא התקנתם את Terraform בעבר, תוכלו להתקין את Terraform.

3. ספק של Google Cloud Terraform

Google Cloud Terraform Provider מספק ארבעה משאבים של Cloud Spanner:

ב-Codelab הזה, ניצור וננהל מכונות ומסדי נתונים של 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

בחלק הזה של השיעור ב-Codelab, נשנה את הקובץ הזה ונחיל שינויים.

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. חשוב לשים לב שאי אפשר לשנות את ההגדרות האזוריות אחרי שיוצרים מכונה.

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. שינוי של מכונה

כפי שצוין בקטע הקודם, לא כל המאפיינים של המופעים ניתנים לשינוי. אבל אפשר להגדיל או להקטין את מספר הצמתים כדי להתאים את המשאבים שבהם המכונה משתמשת. למכונה שנוצרה היו 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.

מידע נוסף