התחברות למופע באמצעות Private Service Connect

כדי להתחבר למכונה ראשית, למאגר קריאה או למכונה משנית של AlloyDB ל-PostgreSQL מכמה רשתות של ענן וירטואלי פרטי (VPC) ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים בלי להגדיר קישור בין רשתות VPC שכנות (peering), אתם יכולים להגדיר את Private Service Connect.

התפקידים הנדרשים

בהתאם לפעולה שאתם מבצעים – הגדרת תשתית של Private Service Connect או התחברות כלקוח של מסד נתונים – אתם צריכים להקצות את התפקידים המתאימים בניהול הזהויות והרשאות הגישה (IAM):

משימה תפקיד תיאור
הגדרת נקודות קצה (endpoint) וחיבורי רשת של Private Service Connect אדמין של רשת Compute‏ (roles/compute.networkAdmin) נותן שליטה מלאה ברשת ה-VPC של הצרכן שיוזמת חיבור למכונה של AlloyDB. אם אתם מתחברים מכמה רשתות VPC, כל רשת מנוהלת על ידי אדמין משלה.
יצירת נקודות קצה של Private Service Connect או משאבי לקוח בפרויקטים של שירות VPC משותף משתמש ברשת Compute‏ (roles/compute.networkUser) נותן הרשאות בפרויקט המארח של ה-VPC המשותף או ברשתות המשנה המשותפות, כדי שאדמינים של פרויקטי שירות וסוכני שירות בפרויקטים מצורפים של שירות יוכלו ליצור נקודות קצה של Private Service Connect או מכונות וירטואליות של לקוחות שמשתמשות ברשת ה-VPC המשותפת וברשתות המשנה של הפרויקט המארח.
הגדרת תחומים ורשומות פרטיים של DNS אדמין DNS‏ (roles/dns.admin) התפקיד הזה נותן שליטה מלאה על משאבי Cloud DNS, כולל תחומים פרטיים וקבוצות של רשומות ב-DNS.
יצירה וניהול של אשכולות ומכונות של AlloyDB אדמין ב-AlloyDB‏ (roles/alloydb.admin) התפקיד הזה נותן שליטה מלאה על אשכולות ומכונות של AlloyDB במהלך מחזור החיים שלהם. אם משתמשים בתפקיד בהתאמה אישית, צריך לתת את ההרשאות alloydb.clusters.create (כדי להפעיל את Private Service Connect באשכול), alloydb.instances.create ו-alloydb.instances.update (כדי להגדיר את הפרויקטים המורשים של הצרכנים ואת מזהי ה-URI של מחברי הרשת).
התחברות למכונה כלקוח לקוח AlloyDB‏ (roles/alloydb.client) וצרכן השימוש בשירות (roles/serviceusage.serviceUsageConsumer) (אופציונלי) נדרש אם מתחברים באמצעות שרת ה-proxy לאימות של AlloyDB או מחברי השפות ל-AlloyDB. אם אתם משתמשים גם באימות של מסד הנתונים באמצעות IAM, אתם צריכים להקצות את התפקיד "משתמש במסד הנתונים של AlloyDB" (roles/alloydb.databaseUser). אם אתם מתחברים ישירות באמצעות אימות מובנה של מסד הנתונים, לא נדרשים תפקידי IAM לחיבור הלקוח.

יצירת נקודת קצה מסוג Private Service Connect

נקודות הקצה של Private Service Connect הן כתובות IP פנימיות ברשת VPC של צרכן, שלקוחות ברשת הזו יכולים לגשת אליהן ישירות כדי להתחבר למכונות AlloyDB.

כדי ש-AlloyDB ייצור את נקודת הקצה של Private Service Connect באופן אוטומטי, מבצעים את הפעולות הבאות:

אתם יכולים גם ליצור את נקודת הקצה של Private Service Connect באופן ידני או להגדיר נקודות קצה ב-VPC משותף עם כמה פרויקטים או ברשת Hub-and-Spoke.

יצירת נקודת הקצה באופן אוטומטי

כדי להגדיר את המכונה כך ש-AlloyDB ייצור את נקודת הקצה של Private Service Connect באופן אוטומטי, מבצעים את השלבים הכלליים הבאים:

  1. יצירת מדיניות של חיבורי שירות.
  2. יוצרים מכונה של AlloyDB.
  3. אחזור נקודת הקצה.
  4. עדכון מכונה ליצירת נקודות קצה באופן אוטומטי.
  5. הגדרת קישוריות יוצאת.

יצירת מדיניות של חיבור לשירות

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

מדיניות חיבור לשירות מאפשרת לכם לאשר למחלקת שירות מסוימת ליצור נקודת קצה (endpoint) של Private Service Connect ברשת ה-VPC של הצרכן. אתם יכולים להשתמש במדיניות החיבור לשירות כדי לאפשר ל-AlloyDB ליצור נקודות קצה (endpoints) של Private Service Connect באופן אוטומטי.

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה לדף Private Service Connect

  2. לוחצים על הכרטיסייה מדיניות חיבורים.

  3. לוחצים על Create connection policy.

  4. מזינים שם למדיניות החיבור.

  5. בקטע Service details, בשדה Service class בוחרים באפשרות google-cloud-alloydb.

  6. בקטע Endpoints scope, בוחרים את ה-Network ואת ה-Region שהמדיניות חלה עליהם.

  7. בקטע Endpoints configuration, בוחרים רשת משנה אחת או יותר מהתפריט Subnetworks. רשתות המשנה משמשות להקצאת כתובות IP לנקודות קצה.

  8. אופציונלי: מציינים מגבלת חיבורים למדיניות. המגבלה קובעת כמה נקודות קצה (endpoints) אפשר ליצור ב-AlloyDB למדיניות החיבור הזו. אם לא מציינים מגבלת חיבורים, אין מגבלה.

  9. לוחצים על יצירת מדיניות.

gcloud

כדי ליצור מדיניות חיבור לשירות, משתמשים בפקודה service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES

מחליפים את מה שכתוב בשדות הבאים:

  • ‫POLICY_NAME: השם של מדיניות החיבור לשירות.
  • ‫NETWORK: הרשת שהמדיניות הזו חלה עליה.
  • ‫PROJECT_ID: מזהה הפרויקט או מספר הפרויקט של רשת ה-VPC. ברשתות VPC משותפות, צריך לפרוס את כללי המדיניות של החיבור לשירות בפרויקט המארח, כי כללי המדיניות האלה לא נתמכים בפרויקטים של שירות.
  • ‫REGION: האזור שהמדיניות הזו חלה עליו. אותה מדיניות צריכה להתקיים בכל אזור שבו רוצים להפוך את הקישוריות של השירות לאוטומטית.
  • ‫SERVICE_CLASS: מזהה המשאב של מחלקת השירות, שסופק על ידי היצרן. ב-AlloyDB, מחלקת השירות היא google-cloud-alloydb.
  • ‫SUBNETS: רשת משנה אחת או יותר של צרכן רגיל, שמשמשת להקצאת כתובות IP לנקודות קצה של Private Service Connect. כתובות ה-IP האלה מוקצות באופן אוטומטי ומוחזרות למאגר של תת-הרשת, בזמן שנוצרים ונמחקים מכונות של שירותים מנוהלים. רשתות המשנה צריכות להיות באותו אזור שבו נמצאת מדיניות החיבור לשירות. אם לכמה כללי מדיניות של חיבורים יש את אותו אזור, אפשר להשתמש באותה רשת משנה בכללי המדיניות האלה. אפשר להזין כמה רשתות משנה ברשימה מופרדת בפסיקים.
  • ‫LIMIT: המספר המקסימלי של נקודות קצה שאפשר ליצור באמצעות המדיניות הזו. אם לא מציינים מגבלה, אין מגבלה.
  • ‫DESCRIPTION: תיאור אופציונלי של מדיניות החיבור לשירות.
  • ‫PRODUCER_INSTANCE_LOCATION: מציין אם המדיניות הופכת את החיבורים למכונות AlloyDB לאוטומטיים. אפשר להגדיר את הערך הזה לאחת מהאפשרויות הבאות:

    • ‫none (ברירת המחדל): המכונה של AlloyDB נמצאת באותו פרויקט שבו נמצאת מדיניות החיבור לשירות. בסביבת VPC משותף, אם המכונה של AlloyDB נמצאת בפרויקט שירות ואתם יוצרים את מדיניות החיבור בפרויקט המארח, צריך להגדיר את הפרמטר הזה לערך custom-resource-hierarchy-levels.
    • ‫custom-resource-hierarchy-levels: צריך להגדיר את נתיב המיקום של מנהל המשאבים לפרויקטים שרוצים להפוך את הקישוריות שלהם לאוטומטית באמצעות הפרמטר allowed-google-producers-resource-hierarchy-level.
  • ‫LIST_OF_NODES: צריך להגדיר את הפרמטר הזה אם המיקום של מכונת ה-producer מוגדר ל-custom-resource-hierarchy-levels. הפרמטר הזה הוא רשימה של פרויקטים, תיקיות וארגונים שבהם נמצאים המכונות שאתם רוצים להפוך את הקישוריות שלהן לאוטומטית. הרשימה היא בפורמט projects/PROJECT_ID,‏ folders/FOLDER_ID או organizations/ORGANIZATION_ID.

לדוגמה, הפקודה הבאה יוצרת מדיניות חיבור לשירות עבור מחלקת השירות google-cloud-alloydb, שמקצה כתובות IP מרשת המשנה managed-service-subnet. באמצעות המדיניות הזו אפשר ליצור עד 10 נקודות קצה (endpoint) מסוג Private Service Connect. צריך ליצור את נקודות הקצה בפרויקטים שנמצאים באותו ארגון שבו נמצא המכונה של השירות המנוהל. מכונת AlloyDB נמצאת בפרויקט myproject.

gcloud network-connectivity service-connection-policies create alloydb-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-alloydb \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

יצירת מכונה של AlloyDB

אתם יכולים ליצור מכונה עם Private Service Connect ולהגדיר אותה כך שתיצור נקודות קצה (endpoints) באופן אוטומטי באמצעות מסוף Google Cloud , ה-CLI של gcloud או Terraform.

המסוף

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. לוחצים על Create cluster.

  3. בשדה Cluster ID, מזינים my-cluster.

  4. מזינים סיסמה. שימו לב לסיסמה הזו, כי תצטרכו להשתמש בה במדריך למתחילים.

  5. משאירים את גרסת ברירת המחדל של מסד הנתונים.

  6. בוחרים את האזור us-central1 (Iowa).

  7. משאירים את מזהה המכונה שמוגדר כברירת מחדל, my-cluster-primary.

  8. בקטע Zonal availability, משאירים את האפשרות Single zone מסומנת. למרות שלא מומלץ להשתמש במכונה באזור יחיד בסביבת ייצור, במדריך למתחילים הזה תשתמשו באזור יחיד כדי לצמצם את העלויות. מידע נוסף זמין במאמר הפחתת עלויות באמצעות מכונות בסיסיות.

  9. בוחרים את סוג המכונה 2 vCPU, 16 GB.

  10. שמירה על קישוריות של כתובת IP פרטית.

    1. בוחרים באפשרות Private Service Connect (PSC).
    2. לוחצים על הוספת נקודת קצה.
    3. בוחרים את הפרויקט שבו רוצים ליצור את נקודת הקצה.
    4. בוחרים את הרשת.
    5. לוחצים על Check policy כדי לקבל מידע על מדיניות החיבור לשירות.
  11. שומרים את הגדרות ברירת המחדל בקטע Network security.

  12. לא מבצעים שינויים בקטע הצגת אפשרויות מתקדמות.

  13. לוחצים על Create cluster. יכול להיות שיחלפו כמה דקות עד ש-AlloyDB ייצור את האשכול ויציג אותו בדף Overview של האשכול הראשי.

gcloud

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

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

מחליפים את מה שכתוב בשדות הבאים:

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

  • ‫PASSWORD: הסיסמה שמשמשת את משתמש ברירת המחדל postgres.

  • ‫REGION_ID: האזור שבו נמצא האשכול.

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

הפקודה הזו מפעילה פעולה ממושכת ומחזירה מזהה פעולה.

כדי ליצור את מכונת AlloyDB, ראשית או מאגר קריאה לשימוש ב-Private Service Connect, משתמשים בפקודה gcloud alloydb instances create. כדי לציין אילו פרויקטים של צרכנים יכולים ליצור נקודות קצה (endpoints) שיתחברו למכונה הזו, צריך לכלול את הפרמטר --allowed-psc-projects.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ID: המזהה של המכונה שיוצרים. הוא חייב להתחיל באות קטנה באנגלית ויכול להכיל אותיות קטנות, מספרים ומקפים.
  • ‫CPU_COUNT: מספר המעבדים הווירטואליים שרוצים להקצות למכונה. הערכים התקינים כוללים:
    • ‫2: ‏2 vCPUs, ‏16GB RAM
    • ‫4: ‏4 מעבדי vCPU, ‏32GB RAM
    • ‫8: ‏8 vCPU, ‏64GB RAM
    • ‫16: ‏16 מעבדי vCPU, ‏RAM בנפח 128GB
    • ‫32: ‏32 מעבדי vCPU, ‏256GB RAM
    • ‫64: ‏64 מעבדי vCPU, ‏512GB RAM
    • ‫96: ‏96 מעבדי vCPU, ‏768GB RAM
    • 128: ‏128 מעבדי vCPU, ‏864GB RAM
  • ‫AVAILABILITY: מציין אם המכונה הזו צריכה להיות בזמינות גבוהה (HA), עם צמתים בכמה אזורים. הערכים התקינים כוללים:
    • ‫REGIONAL: יוצרת מכונה עם זמינות גבוהה (HA) עם צומתי המתנה וצמתים פעילים נפרדים, ויתירות כשל אוטומטית ביניהם. זהו ערך ברירת המחדל, שמתאים לסביבות ייצור.
    • ‫ZONAL: יוצרת מכונה בסיסית שמכילה רק צומת אחד, ללא יתירות כשל אוטומטית.
  • ‫REGION_ID: האזור שבו נמצאת המכונה.
  • ‫CLUSTER_ID: המזהה של האשכול שיצרתם קודם.
  • ‫ALLOWED_PROJECT_LIST: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים שרוצים לאפשר להם גישה למכונה – לדוגמה, my-project-1, ‏ 12345, ‏ my-project-n.
  • ‫NETWORK_ATTACHMENT_URI (אופציונלי): שם המשאב המלא של ה-URI של חיבור הרשת שאתם יוצרים לקישוריות יוצאת. לדוגמה: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • ‫CONSUMER_NETWORK: הנתיב לרשת ה-VPC שבה נוצרו נקודות הקצה של Private Service Connect. לדוגמה: projects/my-host-project/global/networks/default. האפשרות הזו רלוונטית כשיוצרים נקודות קצה באופן אוטומטי. מוודאים שמדיניות החיבור לשירות נוצרה. אפשר ליצור את המדיניות לפני או אחרי שיוצרים את המכונה.
  • ‫CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות. כל הפרויקטים שתציינו בפרמטרים של החיבור האוטומטי יתווספו אוטומטית לפרויקטים המורשים שלכם. אם רוצים ליצור נקודות קצה של Private Service Connect באופן ידני בפרויקטים מסוימים, אפשר להוסיף את הפרויקטים האלה לרשימת הפרויקטים המורשים.

אשכול משני שנוצר בשביל אשכול ראשי שמופעל בו Private Service Connect, מקבל בירושה באופן אוטומטי את ההגדרות של Private Service Connect. מידע נוסף זמין במאמר יצירת אשכול משני.

Terraform

כדי ליצור אשכול ומכונה של AlloyDB עם Private Service Connect, משתמשים במשאבי Terraform‏ google_alloydb_cluster ו-google_alloydb_instance:

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  psc_config {
    psc_enabled = true
  }
}

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
    allowed_consumer_projects = [data.google_project.project.number]
    psc_auto_connections {
      consumer_network = google_compute_network.default.id
      consumer_project = data.google_project.project.project_id
    }
    psc_interface_configs {
      network_attachment_resource = google_compute_network_attachment.default.id
    }
  }
}

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

resource "google_compute_subnetwork" "default" {
  name          = "alloydb-subnetwork"
  region        = "us-central1"
  network       = google_compute_network.default.id
  ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform.

אחזור נקודת הקצה (endpoint)

אחרי שמאחזרים את כתובת ה-IP הפנימית, שהיא נקודת הקצה של Private Service Connect למכונה, אפשר להשתמש בנקודת הקצה הזו כדי להתחבר למכונה.

כדי להציג מידע על מכונה, כולל כתובת ה-IP שהיא נקודת הקצה של Private Service Connect של המכונה, משתמשים בפקודה gcloud alloydb instances describe:

gcloud alloydb instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--format='json(pscInstanceConfig.pscAutoConnections)'

מחליפים את מה שכתוב בשדות הבאים:

בתגובה, שימו לב לערך שמופיע לצד השדה pscInstanceConfig.pscAutoConnections.ipAddress. הערך הזה הוא כתובת ה-IP הפנימית, שהיא גם נקודת הקצה של Private Service Connect במכונה.

עדכון מכונה ליצירת נקודות קצה באופן אוטומטי

כדי לעדכן מכונה כך שתיצור נקודות קצה באופן אוטומטי, משתמשים בפקודה gcloud alloydb instances update עם הפרמטר --psc-auto-connections:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ID: המזהה של המכונה שמעדכנים.
  • ‫CLUSTER_ID: מזהה האשכול.
  • ‫REGION_ID: האזור שבו נמצאת המכונה.
  • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
  • ‫CONSUMER_NETWORK: הנתיב לרשת ה-VPC שבה נוצרות נקודות הקצה של Private Service Connect, לדוגמה projects/my-host-project/global/networks/default.
  • ‫CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect.

הגדרת קישוריות יוצאת

כדי להפעיל קישוריות יוצאת למכונה של AlloyDB שמופעל בה Private Service Connect, צריך להגדיר את ה-URI של מחבר הרשת למכונה. מידע נוסף זמין במאמר הגדרת קישוריות יוצאת.

יצירת נקודת הקצה באופן ידני

בקטעים הבאים מוסבר איך ליצור נקודת קצה של Private Service Connect באופן ידני.

יצירת מכונה של AlloyDB

אפשר ליצור מכונה עם Private Service Connect באמצעות מסוף Google Cloud , ה-CLI של gcloud או Terraform.

המסוף

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. לוחצים על Create cluster.

  3. בשדה Cluster ID, מזינים my-cluster.

  4. מזינים סיסמה. שימו לב לסיסמה הזו, כי תצטרכו להשתמש בה במדריך למתחילים.

  5. משאירים את גרסת ברירת המחדל של מסד הנתונים.

  6. בוחרים את האזור us-central1 (Iowa).

  7. משאירים את מזהה המכונה שמוגדר כברירת מחדל, my-cluster-primary.

  8. בקטע Zonal availability, משאירים את האפשרות Single zone מסומנת. למרות שלא מומלץ להשתמש במכונה באזור יחיד בסביבת ייצור, במדריך למתחילים הזה תשתמשו באזור יחיד כדי לצמצם את העלויות. מידע נוסף זמין במאמר הפחתת עלויות באמצעות מכונות בסיסיות.

  9. בוחרים את סוג המכונה 2 vCPU, 16 GB.

  10. משאירים את הקישוריות לכתובת ה-IP הפרטית ובוחרים באפשרות Private Service Connect (PSC)‎.

  11. בקטע Allowed consumer projects, מזינים את מזהי הפרויקטים או את מספרי הפרויקטים שרוצים לאפשר להם להתחבר למכונה.

  12. שומרים את הגדרות ברירת המחדל בקטע Network security.

  13. לא מבצעים שינויים בקטע הצגת אפשרויות מתקדמות.

  14. לוחצים על Create cluster. יכול להיות שיחלפו כמה דקות עד ש-AlloyDB ייצור את האשכול ויציג אותו בדף Overview של האשכול הראשי.

gcloud

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

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

מחליפים את מה שכתוב בשדות הבאים:

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

  • ‫PASSWORD: הסיסמה שמשמשת את משתמש ברירת המחדל postgres.

  • ‫REGION_ID: האזור שבו נמצא האשכול.

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

הפקודה הזו מפעילה פעולה ממושכת ומחזירה מזהה פעולה.

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

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ID: המזהה של המכונה שיוצרים. הוא חייב להתחיל באות קטנה באנגלית ויכול להכיל אותיות קטנות, מספרים ומקפים.
  • ‫CPU_COUNT: מספר המעבדים הווירטואליים שרוצים להקצות למכונה. הערכים התקינים כוללים:
    • ‫2: ‏2 vCPUs, ‏16GB RAM
    • ‫4: ‏4 מעבדי vCPU, ‏32GB RAM
    • ‫8: ‏8 vCPU, ‏64GB RAM
    • ‫16: ‏16 מעבדי vCPU, ‏RAM בנפח 128GB
    • ‫32: ‏32 מעבדי vCPU, ‏256GB RAM
    • ‫64: ‏64 מעבדי vCPU, ‏512GB RAM
    • ‫96: ‏96 מעבדי vCPU, ‏768GB RAM
    • 128: ‏128 מעבדי vCPU, ‏864GB RAM
  • ‫AVAILABILITY: מציין אם המכונה הזו צריכה להיות בזמינות גבוהה (HA), עם צמתים בכמה אזורים. הערכים התקינים כוללים:
    • ‫REGIONAL: יוצרת מכונה עם זמינות גבוהה (HA) עם צומתי המתנה וצמתים פעילים נפרדים, ויתירות כשל אוטומטית ביניהם. זהו ערך ברירת המחדל, שמתאים לסביבות ייצור.
    • ‫ZONAL: יוצרת מכונה בסיסית שמכילה רק צומת אחד, ללא יתירות כשל אוטומטית.
  • ‫REGION_ID: האזור שבו נמצאת המכונה.
  • ‫CLUSTER_ID: המזהה של האשכול שיצרתם קודם.
  • ‫ALLOWED_PROJECT_LIST: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים שרוצים לאפשר להם גישה למכונה – לדוגמה, my-project-1, ‏ 12345, ‏ my-project-n.
  • ‫NETWORK_ATTACHMENT_URI (אופציונלי): שם המשאב המלא של ה-URI של חיבור הרשת שאתם יוצרים לקישוריות יוצאת. לדוגמה: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.

אשכול משני שנוצר בשביל אשכול ראשי שמופעל בו Private Service Connect, מקבל בירושה באופן אוטומטי את ההגדרות של Private Service Connect. מידע נוסף זמין במאמר יצירת אשכול משני.

Terraform

כדי ליצור אשכול ומכונה של AlloyDB עם Private Service Connect, משתמשים במשאבי Terraform‏ google_alloydb_cluster ו-google_alloydb_instance:

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  psc_config {
    psc_enabled = true
  }
}

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
    allowed_consumer_projects = [data.google_project.project.number]
    psc_interface_configs {
      network_attachment_resource = google_compute_network_attachment.default.id
    }
  }
}

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

resource "google_compute_subnetwork" "default" {
  name          = "alloydb-subnetwork"
  region        = "us-central1"
  network       = google_compute_network.default.id
  ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform.

אחזור של צירוף השירות

אחרי שיוצרים מכונה של AlloyDB עם Private Service Connect, מקבלים את כתובת ה-URL של הקובץ המצורף לשירות ומשתמשים בה כדי ליצור את נקודת הקצה (endpoint) של Private Service Connect.

כדי לראות פרטים על מכונה, משתמשים בפקודה gcloud alloydb instances describe.

gcloud alloydb instances describe INSTANCE_ID \
 --cluster=CLUSTER_ID \
 --region=REGION_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ID: מזהה המכונה.
  • ‫CLUSTER_ID: מזהה האשכול.
  • ‫REGION_ID: האזור שבו פרוס אשכול AlloyDB.

התגובה לדוגמה לפקודה היא:

{
  "pscInstanceConfig": {
    "serviceAttachmentLink": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id",
    "allowedConsumerProjects": [
      "45678",
      "12345",
      "67890"
    ],
    "pscDnsName": "015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog."
  }
}

הפרמטר serviceAttachmentLink מכיל את הערך של כתובת ה-URL של צירוף השירות.

יצירת נקודת קצה מסוג Private Service Connect

כדי ליצור נקודת קצה (endpoint) של Private Service Connect, צריך להעביר את כתובת ה-URL של קובץ השירות המצורף יחד עם שם ייחודי של נקודת הקצה. מידע נוסף על יצירת נקודת קצה מסוג Private Service Connect זמין במאמר יצירת נקודת קצה.

אפשר גם לשמור כתובת IP פנימית לנקודת הקצה של Private Service Connect באמצעות הפקודה gcloud compute addresses create, ואז להשתמש בכתובת ה-IP השמורה כשיוצרים את נקודת הקצה, או להקצות את כתובת ה-IP הפנימית ואת כלל ההעברה באמצעות Terraform:

resource "google_compute_address" "psc_endpoint_ip" {
  name         = "alloydb-psc-endpoint-ip"
  region       = "us-central1"
  subnetwork   = google_compute_subnetwork.default.id
  address_type = "INTERNAL"
}

resource "google_compute_forwarding_rule" "psc_endpoint" {
  name                  = "alloydb-psc-endpoint"
  region                = "us-central1"
  network               = google_compute_network.default.id
  ip_address            = google_compute_address.psc_endpoint_ip.self_link
  load_balancing_scheme = ""
  target                = google_alloydb_instance.default.psc_instance_config[0].service_attachment_link
}

הגדרת נקודות קצה ברשת VPC משותפת עם כמה פרויקטים או ברשת מסוג Hub-and-Spoke

בארכיטקטורה של כמה פרויקטים, אתם יכולים לפרוס נקודת קצה מרכזית של Private Service Connect בפרויקט מארח או בפרויקט רכזת. לקוחות של מסדי נתונים בכמה פרויקטים של שירות או פרויקטים של Spoke יכולים להתחבר למכונה של AlloyDB דרך נקודת הקצה הזו.

האופן שבו לקוחות בפרויקטים מסוג Spoke מגיעים לנקודת הקצה המרכזית תלוי בטופולוגיה של הרשת:

  • ‫VPC משותף: הפרויקט המארח והפרויקטים המצורפים של השירות חולקים רשת VPC אחת. לקוחות של מסד נתונים בכל פרויקט שירות מצורף יכולים להגיע לנקודת הקצה באותו אזור, או באזורים שונים כשהגישה הגלובלית מופעלת.

  • ‫Multi-VPC hub-and-spoke with Network Connectivity Center: פרויקטים של Spoke משתמשים ברשתות VPC נפרדות שמתחברות לרכזת של Network Connectivity Center. לקוחות ברשתות VPC אחרות יכולים להגיע לנקודת קצה של Private Service Connect ברשת ה-VPC המרכזית, אם מפעילים את הפצת החיבורים של Private Service Connect ב-Hub.

  • רשת VPC מרובה מסוג Hub-and-Spoke עם קישור בין רשתות VPC שכנות (peering): אי אפשר להגיע לנקודות קצה של Private Service Connect באופן טרנזיטיבי דרך קישור בין רשתות VPC שכנות (peering). במקום זאת, צריך לפרוס נקודת קצה נפרדת של Private Service Connect בכל רשת VPC מקושרת.

מומלץ ליצור מדיניות חיבור לשירות בפרויקט המארח כדי להקצות את נקודת הקצה באופן אוטומטי. אם אתם לא יכולים ליצור מדיניות חיבור לשירות, אתם יכולים ליצור נקודת קצה של Private Service Connect באופן ידני בפרויקט מארח של VPC משותף. כדי לעשות את זה:

  1. מאשרים את הפרויקט שבבעלותו נקודת הקצה בהגדרת המכונה של AlloyDB.

    בדגל --allowed-psc-projects של מכונת AlloyDB, צריך לכלול את מזהה הפרויקט שבו יוצרים את נקודת הקצה. כשפורסים נקודת קצה מרכזית בפרויקט המארח, צריך לכלול את מזהה הפרויקט המארח. אין צורך לציין פרויקטים של שירות שמריצים רק עומסי עבודה של לקוחות שמתחברים לנקודת הקצה של הפרויקט המארח. כדי לאפשר לפרויקטים של שירותים לפרוס את נקודות הקצה שלהם באופן מקומי, צריך לכלול גם את מזהי הפרויקטים האלה. כדי לעדכן את הפרויקטים המורשים במכונה קיימת, מריצים את הפקודה gcloud alloydb instances update עם הדגל --allowed-psc-projects. הדגל --allowed-psc-projects מחליף את הרשימה הקיימת של הפרויקטים המורשים, במקום להוסיף לה. כדי שנקודות הקצה הקיימות לא ינותקו, צריך לכלול את כל מזהי הפרויקטים המותרים הקיימים יחד עם מזהה הפרויקט המארח החדש.

  2. בפרויקט המארח, שומרים כתובת IP פנימית לנקודת הקצה באמצעות הפקודה gcloud compute addresses create:

    gcloud compute addresses create ADDRESS_NAME \
        --project=HOST_PROJECT_ID \
        --region=REGION_ID \
        --subnet=HOST_SUBNET

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ADDRESS_NAME: השם שרוצים להקצות לכתובת ה-IP השמורה.

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף.

    • ‫REGION_ID: האזור של כתובת ה-IP של נקודת הקצה. האזור הזה צריך להיות אותו אזור שבו נמצא המכונה של AlloyDB.

    • ‫HOST_SUBNET: השם של רשת המשנה של הפרויקט המארח שמספקת את כתובת ה-IP של נקודת הקצה.

  3. בפרויקט המארח, יוצרים את כלל ההעברה לנקודת הקצה באמצעות הפקודה gcloud compute forwarding-rules create:

    gcloud compute forwarding-rules create ENDPOINT_NAME \
        --project=HOST_PROJECT_ID \
        --region=REGION_ID \
        --network=HOST_NETWORK \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT_URL

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT_NAME: השם שרוצים להקצות לנקודת הקצה.

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף.

    • ‫REGION_ID: האזור של נקודת הקצה.

    • ‫HOST_NETWORK: השם של רשת ה-VPC המארחת.

    • ‫ADDRESS_NAME: השם של כתובת ה-IP השמורה מהשלב הקודם.

    • ‫SERVICE_ATTACHMENT_URL: כתובת ה-URL של חיבור השירות שקיבלתם ממכונת AlloyDB.

    כדי לאפשר ללקוחות בכל אזור של רשת ה-VPC המשותפת להגיע לנקודת הקצה, צריך לכלול את הדגל האופציונלי --allow-psc-global-access.

  4. באמצעות הפקודה gcloud compute forwarding-rules describe, מוודאים שסטטוס החיבור של נקודת הקצה הוא ACCEPTED:

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
        --project=HOST_PROJECT_ID \
        --region=REGION_ID \
        --format="value(pscConnectionStatus)"
  5. מקצים את התפקיד "משתמש ברשת Compute"‏ (roles/compute.networkUser) ברשת המשנה המשותפת לאדמינים ולסוכני השירות של כל פרויקט שירות.

    עומסי עבודה של לקוחות ברשת VPC משותפת לא צריכים את התפקיד roles/compute.networkUser ברשת המשנה של נקודת הקצה כדי לשלוח תנועה ברשת לנקודת קצה של פרויקט מארח. עם זאת, אדמין של VPC משותף צריך להקצות את התפקיד roles/compute.networkUser בפרויקט המארח או ברשתות המשנה המשותפות, כדי שאדמינים של פרויקטים של שירות וסוכני שירות יוכלו להקצות מכונות וירטואליות של Compute Engine או אשכולות של Google Kubernetes Engine (GKE) ברשתות משנה משותפות.

    כדי להקצות את התפקיד roles/compute.networkUser ברשת משנה משותפת, מריצים את הפקודה gcloud compute networks subnets add-iam-policy-binding:

    gcloud compute networks subnets add-iam-policy-binding SHARED_SUBNET \
        --project=HOST_PROJECT_ID \
        --region=SUBNET_REGION_ID \
        --member=PRINCIPAL \
        --role=roles/compute.networkUser

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SHARED_SUBNET: השם של תת-הרשת המשותפת בפרויקט המארח, שבו פרויקט השירות פורס משאבי לקוח, כמו מכונות וירטואליות של Compute Engine או צומתי GKE. תת-הרשת הזו לא צריכה להיות תת-הרשת של HOST_SUBNET שבה שמרתם את כתובת ה-IP של נקודת הקצה.

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף.

    • ‫SUBNET_REGION_ID: האזור של רשת המשנה המשותפת.

    • ‫PRINCIPAL: חשבון המשתמש בפרויקט השירות, למשל user:admin@example.com או serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

    אם עומסי העבודה של הלקוח בפרויקט שירות או בפרויקט Spoke מתחברים באמצעות שרת ה-proxy לאימות של AlloyDB, מחברי שפות ל-AlloyDB או אימות של מסד נתונים ב-IAM, צריך להקצות את תפקידי הלקוח הנדרשים של AlloyDB (roles/alloydb.client ו-roles/alloydb.databaseUser) לחשבון השירות של עומס העבודה בפרויקט שמכיל את אשכול AlloyDB, ולא בפרויקט המארח או בפרויקט Hub.

  6. מגדירים תחום DNS פרטי ורשומה בפרויקט המארח, ומשייכים את התחום לרשת ה-VPC המשותפת.

    ב-VPC משותף, כל פרויקטי השירות המצורפים משתפים את רשת ה-VPC המארחת ופותרים באופן אוטומטי את שם המארח pscDnsName של המכונה, בלי תחומי DNS נפרדים בכל פרויקט שירות. בטופולוגיית כוכב עם כמה רשתות VPC, שבה פרויקטים של רשתות Spoke משתמשים ברשתות VPC נפרדות, צריך לקשר את תחום ה-DNS הפרטי לרשתות ה-VPC של רשתות ה-Spoke באמצעות קישור בין פרויקטים או תחומי קישור בין רשתות שכנות (peering) ב-Cloud DNS.

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

הגדרת קישוריות יוצאת

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

יצירת החיבור לרשת

אפשר ליצור חיבור לרשת שיכול לקבל חיבורים באופן אוטומטי (ACCEPT_AUTOMATIC) או באופן ידני (ACCEPT_MANUAL). מידע נוסף על יצירת חיבור לרשת זמין במאמר יצירה וניהול של חיבורים לרשת.

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

כדי למצוא את מספר הפרויקט שבבעלות השירות, מריצים את הפקודה הבאה:

gcloud alloydb clusters describe CLUSTER_ID --region=REGION_ID

זוהי דוגמה לתשובה:

pscConfig:
  pscEnabled: true
  serviceOwnedProjectNumber: 123456789012

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

חשוב לוודא שהאזור של חיבור הרשת זהה לאזור של מכונת AlloyDB. בנוסף, תת-הרשת שמשמשת ליצירת החיבור לרשת חייבת להיות שייכת לטווחי ה-IP של RFC 1918, שהם 10.0.0.0/8,‏ 172.16.0.0/12 ו-192.168.0.0/16.

עדכון מכונה לקישוריות יוצאת

כדי להפעיל קישוריות יוצאת במכונה קיימת של AlloyDB שמופעל בה Private Service Connect, משתמשים בפקודה gcloud alloydb instances update עם הפרמטר --psc-network-attachment-uri:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ID: מזהה המכונה.
  • ‫CLUSTER_ID: מזהה האשכול.
  • ‫REGION_ID: האזור שבו נמצאת המכונה.
  • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
  • ‫NETWORK_ATTACHMENT_URI: שם המשאב המלא של ה-URI של חיבור הרשת שאתם יוצרים לקישוריות יוצאת, לדוגמה projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.

אי אפשר לעדכן מכונות AlloyDB שנוצרו לפני 1 במרץ 2025 כדי להפעיל חיבורים יוצאים. כגישה חלופית, אנחנו ממליצים להשתמש באחת מהאפשרויות הבאות:


השבתת הקישוריות היוצאת

כדי להשבית את הקישוריות החוצה במכונה קיימת של AlloyDB, משתמשים בפקודה gcloud alloydb instances update עם הפרמטר --clear-psc-network-attachment-uri:

gcloud alloydb instances update INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --project=PROJECT_ID \
    --clear-psc-network-attachment-uri

מחליפים את מה שכתוב בשדות הבאים:

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

התחברות למכונה של AlloyDB

אתם יכולים להתחבר למכונה של AlloyDB שמופעל בה Private Service Connect באחת מהדרכים הבאות:

כשמתחברים באמצעות AlloyDB Auth Proxy או מחברי השפות ל-AlloyDB, צריך להגדיר רשומת DNS פרטית שממפה את ה-pscDnsName שנוצר מראש של המכונה לכתובת ה-IP הפנימית של נקודת הקצה של Private Service Connect.

בשיטות שמשתמשות ברשומת DNS, צריך ליצור את הרשומה בתחום DNS פרטי ברשת ה-VPC של הצרכן. הערך של pscDnsName שמוחזר על ידי AlloyDB API הוא מחרוזת של שם מארח שנוצרה מראש, והוא לא נפתר עד שיוצרים תחום DNS פרטי ורשומת A ברשת ה-VPC של הצרכן.

הגדרת תחום מנוהל של DNS ורשומת DNS

כדי להגדיר אזור מנוהל של DNS ורשומת DNS ברשת הצרכן:

gcloud

  1. כדי להציג את פרטי הסיכום של מכונה ב-AlloyDB, כולל ה-pscDnsName שנוצר מראש של המכונה, משתמשים בפקודה gcloud alloydb instances describe:

    gcloud alloydb instances describe INSTANCE_ID \
    --cluster=CLUSTER_ID \
    --region=REGION_ID \
    --format='json(pscInstanceConfig)'

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INSTANCE_ID: מזהה המכונה.
    • ‫CLUSTER_ID: מזהה האשכול.
    • ‫REGION_ID: האזור שבו נמצאת המכונה.

    בתשובה, מוודאים שהשדה pscDnsName מופיע. שם ה-DNS הוא בתבנית INSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog., לדוגמה 015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog..

  2. כדי ליצור תחום DNS פרטי, משתמשים בפקודה gcloud dns managed-zones create. האזור הזה משויך לרשת ה-VPC שמשמשת להתחברות למכונה של AlloyDB דרך נקודת הקצה של Private Service Connect.

    gcloud dns managed-zones create ZONE_NAME \
    --project=PROJECT_ID \
    --description=DESCRIPTION \
    --dns-name=DNS_NAME \
    --networks=NETWORK_NAME \
    --visibility=private

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ZONE_NAME: השם של תחום ה-DNS.
    • ‫PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את האזור.
    • ‫DESCRIPTION: תיאור של האזור (לדוגמה, DNS zone for the AlloyDB instance).
    • ‫DNS_NAME: שם ה-DNS של האזור, למשל INSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog. (או דומיין ההורה alloydb-psc.goog.).
    • ‫NETWORK_NAME: השם של רשת ה-VPC של הצרכן. ברשת VPC משותפת, צריך להגדיר את הנתיב המלא של רשת ה-VPC, לדוגמה projects/cymbal-project/global/networks/shared-vpc-network.
  3. אחרי שיוצרים את נקודת הקצה של Private Service Connect, יוצרים רשומת A של DNS באזור באמצעות הפקודה gcloud dns record-sets create:

    gcloud dns record-sets create DNS_NAME \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫DNS_NAME: הערך של pscDnsName שאחזרתם קודם בתהליך הזה.
    • ‫RRSET_TYPE: סוג רשומת המשאב של קבוצת רשומות ה-DNS‏ (A).
    • ‫RR_DATA: כתובת ה-IP הפנימית שהוקצתה לנקודת הקצה של Private Service Connect (לדוגמה, 198.51.100.5).

Terraform

כדי ליצור תחום DNS פרטי ב-Cloud DNS ורשומת A שממפה את ה-pscDnsName של המכונה לכתובת ה-IP הפנימית של נקודת הקצה של Private Service Connect, משתמשים במשאבי Terraform‏ google_dns_managed_zone ו-google_dns_record_set:

resource "google_dns_managed_zone" "psc_dns_zone" {
  name        = "alloydb-psc-zone"
  dns_name    = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
  description = "Private DNS zone for AlloyDB PSC endpoint"
  visibility  = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.default.id
    }
  }
}

resource "google_dns_record_set" "psc_dns_record" {
  name         = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
  type         = "A"
  ttl          = 300
  managed_zone = google_dns_managed_zone.psc_dns_zone.name
  rrdatas      = [google_compute_address.psc_endpoint_ip.address]
}

חיבור ישיר באמצעות רשומת DNS

אחרי שיוצרים נקודת קצה (endpoint) של Private Service Connect ומגדירים רשומת DNS A פרטית ל-pscDnsName של המכונה, אפשר להתחבר ישירות מלקוח ברשת ה-VPC של הצרכן באמצעות שם ה-DNS (בלי הנקודה בסוף):

psql -U USERNAME -h DNS_NAME -d DATABASE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ‫USERNAME: השם של משתמש מסד הנתונים שמתחבר למכונה.
  • ‫DNS_NAME: השם של רשומת ה-DNS (למשל, pscDnsName של המכונה בלי הנקודה בסוף) שמפנה לנקודת הקצה של Private Service Connect.
  • ‫DATABASE_NAME: שם מסד הנתונים שאליו רוצים להתחבר (לדוגמה, postgres).

התחברות באמצעות שרת proxy לאימות של AlloyDB

‫AlloyDB Auth Proxy הוא מחבר שמאפשר ליצור חיבורים מורשים ומוצפנים למסדי נתונים של AlloyDB. כדי להשתמש ב-AlloyDB Auth Proxy, צריך להפעיל לקוח מקומי בסביבה המקומית. האפליקציה מתקשרת עם שרת ה-proxy לאימות של AlloyDB באמצעות פרוטוקול מסד הנתונים הרגיל שבו משתמש מסד הנתונים.

כשמגדירים את הדגל --psc בזמן הפעלת הלקוח של Auth Proxy, שרת ה-Proxy לאימות של AlloyDB פותר את ה-pscDnsName של המכונה באמצעות רשומת ה-DNS הפרטית שיצרתם כדי להתחבר למכונה שמופעל בה Private Service Connect.

מפעילים את לקוח Auth Proxy על ידי העברת ה-URI של המכונה שמאחזרים באמצעות הפקודה gcloud alloydb instances describe, ומגדירים את הדגל --psc.

מידע נוסף על התחברות למכונה באמצעות שרת ה-proxy לאימות מופיע במאמר התחברות באמצעות שרת ה-proxy לאימות של AlloyDB.

התחברות באמצעות מחברי השפות ל-AlloyDB

מחברי שפות ל-AlloyDB הם ספריות שמספקות mTLS אוטומטי עם TLS 1.3 והרשאת IAM כשמתחברים למכונה של AlloyDB.

אחרי שמגדירים את Language Connector ל-Private Service Connect, הוא פותר את ה-pscDnsName של המכונה באמצעות רשומת ה-DNS הפרטית שיצרתם כדי להתחבר למכונה.

Java

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של AlloyDB, צריך לכלול את הפרטים הבאים:

config.addDataSourceProperty("alloydbIpType", "PSC");

מידע נוסף על השימוש בנקודת קצה של Private Service Connect במחבר Java ל-AlloyDB זמין במאגר GitHub.

‫Python‏ (pg8000)

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של AlloyDB, צריך לכלול את הפרטים הבאים:

  def getconn() -> pg8000.dbapi.Connection:
      conn: pg8000.dbapi.Connection = connector.connect(
          inst_uri,
          "pg8000",
          user=user,
          password=password,
          db=db,
          # use ip_type to specify PSC
          ip_type=IPTypes.PSC,
      )
      return conn

מידע נוסף על השימוש בנקודת קצה (endpoint) של Private Service Connect במחבר של AlloyDB ל-Python זמין במאגר ב-GitHub.

Python (asyncpg)

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של AlloyDB, צריך לכלול את הפרטים הבאים:

  async def getconn() -> asyncpg.Connection:
    conn: asyncpg.Connection = await connector.connect(
        inst_uri,
        "asyncpg",
        user=user,
        password=password,
        db=db,
        # use ip_type to specify PSC
        ip_type=IPTypes.PSC,
    )
    return conn

מידע נוסף על השימוש בנקודת קצה (endpoint) של Private Service Connect במחבר של AlloyDB ל-Python זמין במאגר ב-GitHub.

Go (pgx)

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של AlloyDB, צריך לכלול את הפרטים הבאים:

d.Dial(ctx, instURI, alloydbconn.WithPSC())

מידע נוסף על השימוש בנקודת קצה של Private Service Connect במחבר של AlloyDB ל-Go זמין במאגר ב-GitHub.

‫Go (מסד נתונים/SQL)

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של AlloyDB, צריך לכלול את הפרטים הבאים:

  cleanup, err := postgres.RegisterDriver(
    "alloydb",
    alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
  )

מידע נוסף על השימוש בנקודת קצה של Private Service Connect במחבר של AlloyDB ל-Go זמין במאגר ב-GitHub.

חיבור ישיר באמצעות כתובת IP פנימית

אחרי שיוצרים נקודת קצה (endpoint) של Private Service Connect, אפשר להתחבר ישירות למכונה של AlloyDB באמצעות כתובת ה-IP הפנימית של נקודת הקצה, בלי להגדיר רשומת DNS.

  1. כדי לאחזר את כתובת ה-IP של נקודת קצה (endpoint) של Private Service Connect שנוצרה באופן ידני, משתמשים בפקודה gcloud compute addresses describe:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ADDRESS_NAME: השם של משאב כתובת ה-IP השמורה של נקודת הקצה.
    • ‫PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה.
    • ‫REGION_NAME: שם האזור של נקודת הקצה.
  2. כדי להתחבר למכונה של AlloyDB, משתמשים בכתובת ה-IP הפנימית:

    psql -U USERNAME -h IP_ADDRESS

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫USERNAME: שם המשתמש שמתחבר למכונה.
    • ‫IP_ADDRESS: כתובת ה-IP הפנימית של נקודת הקצה.

מגבלות

  • אתם יכולים להגדיר עד 20 נקודות קצה (endpoints) של Private Service Connect שמתחברות לקובץ המצורף לשירות של מכונת AlloyDB עם Private Service Connect מופעל.
  • אי אפשר להשתמש בדגל --network כשיוצרים אשכול עם Private Service Connect, כי הוא משויך לגישה לשירותים פרטיים.
  • אי אפשר להפעיל או להשבית את Private Service Connect במכונה קיימת.
  • אי אפשר להגדיר מכונה שמופעל בה Private Service Connect לשימוש בגישה לשירותים פרטיים.