יצירת מופע ראשי

כדי לתמוך בעומסי עבודה של קריאה וכתיבה באשכול AlloyDB ל-PostgreSQL, אתם יכולים ליצור מכונה ראשית באמצעות מסוף Google Cloud ,‏ Google Cloud CLI,‏ Terraform או AlloyDB API. המכונה הראשית מספקת את משאבי המחשוב שמעבדים טרנזקציות ומתאמים פעולות קריאה וכתיבה באשכול.

לפני שמתחילים

  • Google Cloud לפרויקט שבו אתם משתמשים צריכה להיות גישה ל-AlloyDB.
  • בפרויקט ב- Google Cloud שבו אתם משתמשים, צריך להיות לכם אחד מתפקידי ה-IAM הבאים:
    • ‫roles/alloydb.admin (תפקיד IAM מוגדר מראש של אדמין ב-AlloyDB)
    • ‫roles/owner (תפקיד ה-IAM הבסיסי "בעלים")
    • ‫roles/editor (תפקיד העריכה הבסיסי ב-IAM)

    אם לא הוקצו לכם התפקידים האלה, פנו לאדמין הארגוני כדי לבקש גישה.

יצירת מכונה ראשית ב-AlloyDB

המסוף

  1. נכנסים לדף Clusters.

    כניסה לדף Clusters

  2. לוחצים על אשכול בעמודה Resource Name.

  3. בדף Overview, עוברים לקטע Instances in your cluster ולוחצים על Create primary instance.

  4. מגדירים את המכונה הראשית:

    1. בשדה Instance ID, מזינים מזהה למכונה הראשית.
    2. בקטע Zonal availability, בוחרים אחת מהאפשרויות הבאות:
      1. כדי ליצור מכונה בסביבת ייצור עם זמינות גבוהה ויתירות כשל אוטומטית, בוחרים באפשרות Multiple zones (Highly available).
      2. כדי ליצור מכונה בסיסית שלא צריכה להיות בזמינות גבוהה, בוחרים באפשרות Single zone.
    3. בוחרים אחת מסדרות המכונות הבאות:

      • ‫C4A (סדרת מכונות שמבוססת על Google Axion)
      • ‫N2 (סדרת מכונות שמבוססת על x86). זו סדרת המכונות שמוגדרת כברירת מחדל.
      • ‫C4 (סדרת מכונות שמבוססת על x86)
      • ‫Z3 (סדרת מכונות שמבוססות על Intel Xeon)
    4. בוחרים סוג מכונה.

      • ב-C4A יש תמיכה ב-1, 2, 4, 8, 16, 32, 48, 64 ו-72 מעבדי vCPU
      • ב-N2 יש תמיכה ב-2, 4, 8, 16, 32, 64, 96 ו-128 מעבדי vCPU
      • ב-C4 יש תמיכה ב-4, 8, 16, 24, 32, 48, 96, 144, 192 ו-288 מעבדי vCPU
      • ב-Z3 יש תמיכה ב-8,‏ 14,‏ 16,‏ 22,‏ 32,‏ 44 ו-88 מעבדי vCPU
    5. אופציונלי: כדי לחבר את האפליקציות והלקוחות דרך האינטרנט הציבורי, מסמנים את התיבה Enable Public IP בקטע Public IP Connectivity. כדי להפעיל כתובת IP ציבורית, יכול להיות שתצטרכו להגדיר הגדרות נוספות כדי לוודא שהחיבור מאובטח. מידע נוסף זמין במאמר התחברות באמצעות כתובת IP ציבורית.

      כברירת מחדל, כתובת IP פרטית תמיד מופעלת. מידע נוסף זמין במאמר הפעלת גישה לשירותים פרטיים.

    6. אופציונלי: כדי להפעיל מאגר חיבורים מנוהל, בוחרים באפשרות Enable managed connection pool בקטע Managed connection pool. למידע נוסף, קראו את המאמר הגדרת מאגר חיבורים מנוהל.

    7. אופציונלי: כדי להגדיר דגלים בהתאמה אישית למכונה, מרחיבים את Advanced configuration options ומבצעים את הפעולות הבאות לכל דגל:

      1. לוחצים על הוספת סימון.
      2. בוחרים דגל לניהול מסד נתונים מהרשימה New database flag.
      3. צריך לספק ערך לדגל.
      4. לוחצים על סיום.
    8. אופציונלי: כדי להגדיר דרישות SSL או מחבר במכונה, מרחיבים את Advanced configuration options ומבצעים את הפעולות הבאות:

      1. כברירת מחדל, מכונות AlloyDB דורשות שכל החיבורים ישתמשו בהצפנת SSL. כדי לאפשר חיבורים שאינם מסוג SSL, מבטלים את הסימון בתיבה Only allow SSL connections.
      2. כדי לדרוש שכל החיבורים של מסד הנתונים למכונה ישתמשו ב-AlloyDB Auth Proxy או בספריות של המחברים המאובטחים ש-Google מספקת, בוחרים באפשרות Enforce mTLS via AlloyDB connectors.
  5. לוחצים על Create instance.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את Google Cloud CLI או להשתמש ב-Cloud Shell.

משתמשים בפקודה gcloud alloydb instances create כדי ליצור מכונה ראשית.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --cpu-count=CPU_COUNT \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID
  • ‫INSTANCE_ID: המזהה של המכונה שאתם יוצרים. הוא חייב להתחיל באות קטנה באנגלית ויכול להכיל אותיות קטנות, מספרים ומקפים.
  • ‫AVAILABILITY: אם המכונה הזו צריכה להיות בזמינות גבוהה (HA), עם צמתים בכמה אזורים. הערכים התקינים כוללים:
    • ‫REGIONAL: יוצרת מכונה עם זמינות גבוהה, עם צומתי פעילות וצומתי המתנה נפרדים ועם יתירות כשל אוטומטית ביניהם. זהו ערך ברירת המחדל, שמתאים לסביבות ייצור.
    • ‫ZONAL: יוצר מכונה בסיסית שמכילה רק צומת אחד, ללא יתירות כשל אוטומטית.
  • ‫REGION_ID: האזור שבו רוצים למקם את המכונה. לדוגמה, us-central1.
  • ‫CLUSTER_ID: המזהה של האשכול שבו רוצים למקם את המכונה.
  • ‫CPU_COUNT: מספר המעבדים הווירטואליים שרוצים להקצות למכונה.

    • צריך לציין את cpu_count או את machine_type.
    • אם מציינים רק את cpu_count, נוצר מכונה מסוג N2 עם המאפיינים הבאים:
      • ‫2: 2 מעבדי vCPU, ‏16GB RAM
      • ‫4: 4 מעבדים וירטואליים, זיכרון RAM בנפח 32GB
      • ‫8: 8 מעבדים וירטואליים, זיכרון RAM בנפח 64GB
      • ‫16: 16 מעבדי vCPU, ‏128GB RAM
      • ‫32: 32 מעבדים וירטואליים, זיכרון RAM בנפח 256GB
      • ‫64: ‏64 vCPUs, ‏512GB RAM
      • ‫96: 96 מעבדי vCPU, ‏768GB RAM
      • ‫128: ‏128‎ vCPUs, ‏864GB RAM
    • אם מציינים גם את machine_type וגם את cpu_count, הערך של cpu_count צריך להתאים למספר ה-vCPU שצוין ב-machine_type. לדוגמה, אם הערך של machine_type הוא n2-highmem-4, צריך להגדיר את cpu_count ל-4.
  • ‫MACHINE_TYPE: בוחרים מתוך רשימה של סוגי מכונות נתמכים, כמו n2-highmem-4, ‏ c4-highmem-4-lssd או c4a-highmem-4-lssd. מידע נוסף זמין במאמר בחירת סוג מכונה ב-AlloyDB.

    כשמשתמשים ב-machine_type וב-cpu_count ביחד, הערכים ב-cpu_count וב-machine_type חייבים להיות זהים. לדוגמה, אם machine_type הוא n2-highmem-4, צריך להגדיר את cpu_count לערך 4.

  • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא האשכול.

כברירת מחדל, במכונות חדשות כל החיבורים צריכים להשתמש בהצפנת SSL. כדי לאפשר חיבורים למכונה שהם לא מסוג SSL, מוסיפים לפקודה את הדגל --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

כדי לאכוף חיבור מאובטח בין הלקוח לבין מכונה של AlloyDB באמצעות Auth Proxy או אפליקציות אחרות שמשתמשות בספריות מחברים ש-Google מספקת, מוסיפים לפקודה את הדגל --require-connectors:

gcloud alloydb instances create INSTANCE_ID \
 --instance-type=PRIMARY \
 --region=REGION_ID \
 --cluster=CLUSTER_ID \
 --cpu-count=CPU_COUNT \
 --machine-type=MACHINE_TYPE \
 --project=PROJECT_ID \
 --require-connectors

כדי להפעיל מאגר חיבורים מנוהל במכונה של AlloyDB, מוסיפים את הדגל --enable-connection-pooling לפקודה gcloud alloydb instances create:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --enable-connection-pooling

אפשר גם ליצור מכונה של AlloyDB עם Private Service Connect. במאמר יצירת מכונה של AlloyDB מוסבר איך יוצרים מכונה ראשית לאשכול שמופעל בו Private Service Connect.

Terraform

יצירת מכונה

כדי ליצור מכונה באשכול מסד הנתונים, משתמשים במשאב של Terraform.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"

  machine_config {
    cpu_count = 2
  }

  depends_on = [google_service_networking_connection.vpc_connection]
}

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }

  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          =  "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

בדוגמה הזו נוצרת מכונה מסוג N2. רשימה של סוגי מכונות נתמכים אחרים, כמו n2-highmem-4, ‏ c4-highmem-4-lssd או c4a-highmem-4-lssd, מופיעה במאמר בחירת סוג מכונה של AlloyDB.

הכנת Cloud Shell

כדי להחיל את ההגדרות האישיות של Terraform בפרויקט ב- Google Cloud , מכינים את Cloud Shell באופן הבא:

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו, שנקראת גם מודול ברמה הבסיסית.

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב להיות קובץ TF, למשל main.tf. במסמך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם. לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. בספרייה terraform-docs-samples, עוברים לספרייה alloydb.
    cd terraform-docs-samples/alloydb
  4. מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.
    cp SAMPLE_FILE main.tf
    מחליפים את <var>SAMPLE_FILE</var> בשם של הקובץ לדוגמה שרוצים להעתיק, למשל main.tf.
  5. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  6. שומרים את השינויים.
  7. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init
    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:
    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהעדכונים של Terraform תואמים לציפיות שלכם:
    terraform plan
    מתקנים את ההגדרות לפי הצורך.
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply
    ממתינים עד שב-Terraform תוצג ההודעה Apply complete!.

פותחים את הפרויקט ב- Google Cloud כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

REST v1

יצירת מכונה

בדוגמה הזו נוצרת מכונה ראשית. לרשימה המלאה של הפרמטרים של הקריאה הזו, ראו Method: projects.locations.clusters.instances.create. למידע על הגדרות של אשכולות, ראו הצגת הגדרות של אשכולות ומכונות.

אל תכללו מידע רגיש או פרטים אישיים מזהים במזהה האשכול, כי הוא גלוי באופן חיצוני. לא צריך לכלול את מזהה הפרויקט בשם האשכול, כי זה נעשה באופן אוטומטי במקומות המתאימים, למשל בקובצי היומן.

כדי לשלוח את הבקשה, שומרים את גוף הבקשה בקובץ בשם instance_request.json.

{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": CPU_COUNT
  }
}

מחליפים את הפרטים הבאים:

  • ‫CPU_COUNT: מספר ליבות ה-CPU הגלויות במכונה שרוצים ליצור.

בדוגמה שלמעלה נוצר מכונה מסוג N2 עם המפרט הבא:

  • ‫2: 2 מעבדי vCPU, ‏16GB RAM
  • ‫4: 4 מעבדים וירטואליים, זיכרון RAM בנפח 32GB
  • ‫8: 8 מעבדים וירטואליים, זיכרון RAM בנפח 64GB
  • ‫16: 16 מעבדי vCPU, ‏128GB RAM
  • ‫32: 32 מעבדים וירטואליים, זיכרון RAM בנפח 256GB
  • ‫64: ‏64 vCPUs, ‏512GB RAM
  • ‫96: 96 מעבדי vCPU, ‏768GB RAM
  • ‫128: ‏128‎ vCPUs, ‏864GB RAM
"machine_config": {
  "machine_type": "MACHINE_TYPE"
}

מחליפים את MACHINE_TYPE בסוג מכונה נתמך, כמו n2-highmem-4, ‏ c4-highmem-4-lssd או c4a-highmem-4-lssd. מידע נוסף על סוגי המכונות הנתמכים זמין במאמר בחירת סוג מכונה של AlloyDB.

משתמשים ב-method הבא ב-HTTP ובכתובת ה-URL:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID

מחליפים את הפרטים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים למקם את האשכול.
  • ‫LOCATION_ID: מזהה האזור של האשכול.
  • ‫CLUSTER_ID: המזהה של האשכול שאתם יוצרים. המזהה חייב להתחיל באות קטנה באנגלית, ויכול לכלול אותיות קטנות, מספרים ומקפים.
  • ‫INSTANCE_ID: השם של המכונה הראשית שרוצים ליצור.

אפשר להשתמש ב-curl כדי לבצע את הבקשה, כמו בדוגמה הבאה:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID   -d @instance_request.json

המאמרים הבאים