1. סקירה כללית
העדכון האחרון: 23 ביולי 2020
מה זה Cloud Spanner?
Google Cloud Spanner הוא מסד נתונים מבוזר ברחבי העולם, שתואם ל-ACID ומטפל אוטומטית בשכפולים, בחלוקה ובטיפול בעסקאות. כך תוכלו להרחיב במהירות את הקיבולת כדי לעמוד בכל דפוס שימוש ולהבטיח את הצלחת המוצרים שלכם.
תכונות עיקריות
- מסד נתונים רלציוני, שנועד להתרחבות: כל מה שמצפים ממסד נתונים רלציוני – סכימות, שאילתות SQL ועסקאות ACID – נבדק היטב ומוכן להתרחבות גלובלית.
- זמינות של 99.999%: Cloud Spanner מספק זמינות מובילה בתעשייה של 99.999% עבור מופעים רב-אזוריים – זמן השבתה נמוך פי 10 מזה של ארבע תשיעיות – ומספק שכפול שקוף וסינכרוני בהגדרות אזוריות ורב-אזוריות.
- חלוקה אוטומטית למקטעים (sharding): Cloud Spanner מבצע אופטימיזציה של הביצועים על ידי חלוקה אוטומטית של הנתונים למקטעים על סמך עומס הבקשות וגודל הנתונים. כך תוכלו להקדיש פחות זמן לדאגה לגבי הרחבת מסד הנתונים, ובמקום זאת להתמקד בהרחבת העסק.
מה תלמדו
- איך משתמשים ב-Google Cloud Terraform Provider.
- שימוש ב-Terraform כדי ליצור מסדי נתונים ומופעים של Cloud Spanner.
- שימוש ב-Terraform כדי לשנות משאבים של Cloud Spanner.
- שימוש ב-Terraform כדי למחוק משאבים של Cloud Spanner.
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
אם עדיין אין לכם חשבון Google (Gmail או Google Apps), אתם צריכים ליצור חשבון. נכנסים ל-Google Cloud Platform Console ( console.cloud.google.com) ויוצרים פרויקט חדש:


חשוב לזכור את מזהה הפרויקט, שהוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא יתאים לכם, מצטערים!). בהמשך ה-codelab הזה נתייחס אליו בתור PROJECT_ID.
בשלב הבא, כדי להשתמש במשאבים של Google Cloud, צריך להפעיל את החיוב ב-Cloud Console.
העלות של ה-Codelab הזה לא אמורה להיות גבוהה מכמה דולרים, אבל היא יכולה להיות גבוהה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (ראו את הקטע 'ניקוי נתונים' בסוף המסמך הזה).
משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.
אימות
אם עדיין לא עשיתם זאת, עליכם להתקין את כלי שורת הפקודה gcloud. אחרי שמתקינים את gcloud, מפעילים את Application Default Credentials על ידי הרצת הפקודה הבאה במסוף:
$ gcloud auth application-default login
Terraform
אם לא התקנתם את Terraform קודם, מתקינים את Terraform.
3. ספק Terraform של Google Cloud
Google Cloud Terraform Provider מספק ארבעה משאבי Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
ב-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. יצירת מופעים ומסדי נתונים
כדי להוסיף מופע חדש של 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. חשוב לזכור שאי אפשר לשנות את ההגדרה האזורית אחרי שיוצרים את המופע.

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

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 provider.
- שימוש ב-Terraform כדי ליצור מסדי נתונים ומופעים של Cloud Spanner.
- שימוש ב-Terraform כדי לשנות משאבים של Cloud Spanner.
- שימוש ב-Terraform כדי למחוק משאבים של Cloud Spanner.
מידע נוסף
- משאבי עזרה ל-Google Cloud Spanner
- מידע על משאב Terraform של Google Cloud Spanner
- אפשר לקרוא על הגדרת כללי IAM למופעים ולמסדי נתונים.