1. מבוא
שירות Cloud DNS מציע פתרון DNS גלובלי, עמיד ועם ביצועים גבוהים, שמאפשר לכם לפרסם אזורים ורשומות בלי שתצטרכו לנהל בעצמכם תשתית DNS.
הדבר הכי חשוב הוא ש-Cloud DNS כולל תמיכה בבדיקות תקינות וביכולות מעבר אוטומטי לגיבוי במדיניות הניתוב שלו לנקודות קצה חיצוניות. עם זאת, חשוב לזכור שבדיקות תקינות של נקודות קצה חיצוניות כאלה זמינות רק באזורים ציבוריים, ונקודות הקצה עצמן צריכות להיות נגישות לכולם דרך האינטרנט.
מה תלמדו
- איך יוצרים מאזן עומסים אזורי חיצוני של אפליקציות עם קבוצת מופעי מכונה לא מנוהלת.
- איך מגדירים בדיקות תקינות של Cloud DNS לניתוב DNS חיצוני.
- איך יוצרים מדיניות ניתוב למעבר לגיבוי (failover).
מה תצטרכו
- ידע בסיסי ב-DNS.
- ידע בסיסי ב-Google Compute Engine.
- ידע בסיסי במאזן עומסים של אפליקציות (ALB).
- פרויקט ב-Google Cloud עם הרשאות בעלים
- דומיין ציבורי בבעלותכם, שתוכלו ליצור עבורו תחום ציבורי ב-Cloud DNS.
- נכון לעכשיו, כללי המדיניות הארגונית הבאים לא נאכפים בפרויקט Google Cloud: מכונות וירטואליות מוגנות וקבוצות של נקודות קצה ברשת האינטרנט.
2. טופולוגיית Codelab

ב-Codelab הזה תשתמשו בבדיקות תקינות של Cloud DNS לנקודות קצה חיצוניות כדי לנתב מחדש את התעבורה למאזן עומסים חיצוני אזורי לגיבוי, אם הבק-אנד של מאזן העומסים הראשי לא תקין.
תבנו אתר בשני אזורים, שלכל אחד מהם יש מאזן עומסים של אפליקציות חיצוני. לאחר מכן, תגדירו בדיקות תקינות של Cloud DNS באמצעות מדיניות ניתוב למעבר לגיבוי (failover).
3. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-מסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

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

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את כל העבודה ב-codelab הזה בדפדפן. לא צריך להתקין שום דבר.
4. לפני שמתחילים
הפעלת ממשקי ה-API
ב-Cloud Shell, מוודאים שהפרויקט מוגדר ומגדירים משתנים.
gcloud auth login
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
export projectid=[YOUR-PROJECT-ID]
# Define variables for regions and the domain
export REGION_A=us-central1
export REGION_B=us-west1
export DNS_ZONE=dnscodelab-zone
Export DNS_DOMAIN=gcp.<yourpublicdomain>.com
echo $projectid
echo $REGION_A
echo $REGION_B
echo $DNS_ZONE
echo $DNS_DOMAIN
הפעלת כל השירותים הנדרשים
gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com
5. יצירת תשתית של Cloud Load Balancing
בקטע הזה תיצרו את ה-VPC, תת-הרשתות, כללי חומת האש, המכונות הווירטואליות וקבוצות המכונות הווירטואליות הלא מנוהלות שנדרשים בשני אזורים שונים כדי לתמוך במאזני העומסים הראשיים ובגיבוי שלהם.
רשת VPC
מ-Cloud Shell
gcloud compute networks create external-lb-vpc --subnet-mode=custom
יוצרים שתי רשתות משנה ב-REGION_A (Primary) וב-REGION_B (Backup) כדי לארח את שרתי האינטרנט של העורף
יצירת תת-רשתות
מ-Cloud Shell
gcloud compute networks subnets create subnet-a --network=external-lb-vpc --region=$REGION_A --range=10.10.1.0/24
gcloud compute networks subnets create subnet-b --network=external-lb-vpc --region=$REGION_B --range=10.20.1.0/24
יוצרים רשתות משנה מסוג proxy-only בכל אזור עבור מאזן העומסים החיצוני האזורי של אפליקציות (ALB) שייווצר בהמשך.
תת-הרשת הייעודית הזו לשרת proxy בלבד היא דרישה מחייבת לכל מאזני העומסים האזוריים שמבוססים על Envoy שנפרסים באותו אזור של רשת ה-VPC external-lb-vpc. הפרוקסי האלה למעשה מסיימים את החיבור של הלקוח ואז יוצרים חיבורים חדשים לשירותי ה-Backend.
מ-Cloud Shell
gcloud compute networks subnets create proxy-only-subnet-a \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$REGION_A \
--network=external-lb-vpc \
--range=10.129.0.0/23
gcloud compute networks subnets create proxy-only-subnet-b \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$REGION_B \
--network=external-lb-vpc \
--range=10.130.0.0/23
יצירת כללים לחומת אש בין רשתות
fw-allow-health-check. כלל תעבורת נתונים נכנסת (ingress) שחל על המופעים שמתבצע איזון עומסים ביניהם, ומאפשר את כל תעבורת ה-TCP ממערכות בדיקת תקינות ב-Google Cloud (בטווחים 130.211.0.0/22 ו-35.191.0.0/16). בדוגמה הזו, תג היעד load-balanced-backend משמש לזיהוי המכונות הווירטואליות שהכלל של חומת האש חל עליהן.
fw-allow-proxies. כלל תעבורה נכנסת (ingress) שחל על המופעים שעוברים איזון עומסים, שמאפשר תעבורת TCP ביציאות 80 משרתי ה-proxy המנוהלים של מאזן העומסים החיצוני האזורי של האפליקציות. בדוגמה הזו, תג היעד load-balanced-backend משמש לזיהוי המכונות הווירטואליות שהכלל של חומת האש חל עליהן.
מ-Cloud Shell
gcloud compute firewall-rules create fw-allow-health-check \
--network=external-lb-vpc \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=load-balanced-backend \
--rules=tcp
gcloud compute firewall-rules create fw-allow-proxies \
--network=external-lb-vpc \
--action=allow \
--direction=ingress \
--source-ranges=10.129.0.0/23,10.130.0.0/23 \
--target-tags=load-balanced-backend \
--rules=tcp:80
כדי לאפשר ל-IAP להתחבר למכונות הווירטואליות, צריך ליצור כלל חומת אש ש:
- רלוונטי לכל מכונות ה-VM שרוצים לגשת אליהן באמצעות IAP.
- מאפשר תנועה נכנסת מטווח כתובות ה-IP 35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות את IAP להעברת TCP.
מ-Cloud Shell
gcloud compute firewall-rules create allow-ssh \
--allow tcp:22 --network external-lb-vpc \
--source-ranges 35.235.240.0/20 \
--description "SSH with IAP" \
--target-tags=allow-ssh
6. יצירה של Cloud NAT ו-Cloud Routers
כדי שהמכונות הווירטואליות הפרטיות יוכלו להוריד ולהתקין חבילות מהאינטרנט, צריך שיהיו שערי Cloud NAT בשני האזורים.
- מכונות וירטואליות של שרת האינטרנט שלנו יצטרכו להוריד ולהתקין את שרת האינטרנט Apache.
- המכונה הווירטואלית של הלקוח תצטרך להוריד ולהתקין את חבילת dnsutils, שבה נשתמש לבדיקה.
כל שער Cloud NAT משויך לרשת VPC אחת, לאזור אחד ול-Cloud Router אחד. לכן, לפני שיוצרים את שער ה-NAT, צריך ליצור Cloud Routers בכל אזור.
יצירת Cloud Routers
מ-Cloud Shell
gcloud compute routers create "$REGION_A-cloudrouter" \
--region $REGION_A --network=external-lb-vpc --asn=65501
gcloud compute routers create "$REGION_B-cloudrouter" \
--region $REGION_B --network=external-lb-vpc --asn=65501
יצירת שערי NAT
מ-Cloud Shell
gcloud compute routers nats create "$REGION_A-nat-gw" \
--router="$REGION_A-cloudrouter" \
--router-region=$REGION_A \
--nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips
gcloud compute routers nats create "$REGION_B-nat-gw" \
--router="$REGION_B-cloudrouter" \
--router-region=$REGION_B \
--nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips
יצירת מכונות וירטואליות של קצה עורפי וקבוצות מופעים לא מנוהלות
יוצרים מכונה וירטואלית בכל אזור ומתקינים שרת אינטרנט (למשל Apache):
מ-Cloud Shell
# Primary (Region A)
gcloud compute instances create vm-a \
--zone=$REGION_A-a \
--image-family=debian-12 --image-project=debian-cloud \
--subnet=subnet-a \
--no-address \
--tags=load-balanced-backend,allow-ssh \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://metadata.google.internal/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" - $REGION_A Primary Backend |\
tee /var/www/html/index.html
systemctl restart apache2'
# Backup (Region B)
gcloud compute instances create vm-b \
--zone=$REGION_B-a \
--image-family=debian-12 --image-project=debian-cloud \
--subnet=subnet-b \
--no-address \
--tags=load-balanced-backend,allow-ssh \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://metadata.google.internal/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" - $REGION_B Backup Backend |\
tee /var/www/html/index.html
systemctl restart apache2'
יוצרים קבוצת מכונות לא מנוהלת ומוסיפים אליה את המכונה הווירטואלית בכל אזור:
מ-Cloud Shell
# Primary (Region A)
gcloud compute instance-groups unmanaged create ig-a --zone=$REGION_A-a
gcloud compute instance-groups unmanaged add-instances ig-a --zone=$REGION_A-a --instances=vm-a
# Backup (Region B)
gcloud compute instance-groups unmanaged create ig-b --zone=$REGION_B-a
gcloud compute instance-groups unmanaged add-instances ig-b --zone=$REGION_B-a --instances=vm-b
7. הגדרת מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB)
תגדירו מאזן עומסים חיצוני אזורי של אפליקציות (ALB) מלא באזור REGION_A (ראשי) ובאזור REGION_B (גיבוי).
יצירת בדיקות תקינות ושירותי קצה עורפי
מאזני עומסים חיצוניים אזוריים של אפליקציות מבוססים על Envoy, וצריך להגדיר בהם בדיקות תקינות אזוריות.
יוצרים בדיקת תקינות מסוג HTTP (לשימוש מאזני העומסים כדי לבדוק את תקינות המופע):
ב-Cloud Shell
gcloud compute health-checks create http http-lb-hc-primary-region \
--port 80 \
--region=$REGION_A
gcloud compute health-checks create http http-lb-hc-backup-region \
--port 80 \
--region=$REGION_B
יוצרים שירות קצה עורפי אזורי ומצרפים אליו את קבוצת המופעים בכל אזור**.**
ב-Cloud Shell
# Primary (Region A)
gcloud compute backend-services create be-svc-a \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-lb-hc-primary-region \
--health-checks-region=$REGION_A \
--region=$REGION_A
gcloud compute backend-services add-backend be-svc-a \
--instance-group=ig-a \
--instance-group-zone=$REGION_A-a \
--region=$REGION_A
# Backup (Region B)
gcloud compute backend-services create be-svc-b \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-lb-hc-backup-region \
--health-checks-region=$REGION_B \
--region=$REGION_B
gcloud compute backend-services add-backend be-svc-b --instance-group=ig-b --instance-group-zone=$REGION_B-a --region=$REGION_B
יצירת רכיבי Frontend
יוצרים מיפוי כתובות URL ושרתי proxy של HTTP ביעד בשני האזורים:
ב-Cloud Shell
#Primary (Region A)
gcloud compute url-maps create url-map-a \
--default-service=be-svc-a \
--region=$REGION_A
gcloud compute target-http-proxies create http-proxy-a \
--url-map=url-map-a \
--url-map-region=$REGION_A \
--region=$REGION_A
#Backup (Region B)
gcloud compute url-maps create url-map-b \
--default-service=be-svc-b \
--region=$REGION_B
gcloud compute target-http-proxies create http-proxy-b \
--url-map=url-map-b \
--url-map-region=$REGION_B \
--region=$REGION_B
שמירת כתובות IP סטטיות (חיצוניות) לכללי ההעברה:
ב-Cloud Shell
# Primary IP (Region A)
gcloud compute addresses create rxlb-ip-a --region=$REGION_A
# Backup IP (Region B)
gcloud compute addresses create rxlb-ip-b --region=$REGION_B
יוצרים את כללי ההעברה לשני מאזני העומסים:
ב-Cloud Shell
# Primary (Region A)
gcloud compute forwarding-rules create http-fwd-rule-a \
--load-balancing-scheme=EXTERNAL_MANAGED \
--network=external-lb-vpc \
--region=$REGION_A \
--target-http-proxy-region=$REGION_A \
--address=rxlb-ip-a \
--target-http-proxy=http-proxy-a \
--ports=80
# Backup (Region B)
gcloud compute forwarding-rules create http-fwd-rule-b \
--load-balancing-scheme=EXTERNAL_MANAGED \
--network=external-lb-vpc \
--region=$REGION_B \
--target-http-proxy-region=$REGION_B \
--address=rxlb-ip-b \
--target-http-proxy=http-proxy-b \
--ports=80
הגדרת Cloud DNS למעבר לשירות גיבוי (Failover)
יצירת בדיקת תקינות ב-Cloud DNS לנקודות קצה חיצוניות
צריך ליצור בדיקת תקינות גלובלית ייעודית עבור כתובות ה-IP הציבוריות של מאזן העומסים. הבדיקה הזו שונה מבדיקת התקינות הפנימית של מאזן העומסים.
קודם כל, צריך לקבוע את כתובות ה-IP החיצוניות של מאזני העומסים כדי להגדיר את מדיניות המעבר לגיבוי ולייצא אותה כמשתנה.
ב-Cloud Shell
PRIMARY_IP=$(gcloud compute addresses describe rxlb-ip-a --region=$REGION_A --format='get(address)')
BACKUP_IP=$(gcloud compute addresses describe rxlb-ip-b --region=$REGION_B --format='get(address)')
יוצרים את בדיקת תקינות ה-DNS הגלובלית (נדרשים שלושה אזורי מקור):
ב-Cloud Shell
gcloud beta compute health-checks create http dns-failover-health-check \
--global \
--source-regions=$REGION_A,$REGION_B,europe-west1 \
--request-path=/ \
--check-interval=30s \
--port=80 \
--enable-logging
יוצרים אזור ציבורי מנוהל ומדיניות ניתוב ליתירות כשל.
יצירת תחום ציבורי מנוהל (שימוש בדומיין DNS שבבעלותכם):
ב-Cloud Shell
gcloud dns managed-zones create codelab-publiczone --dns-name=$DNS_DOMAIN --description="Codelab DNS Failover Zone"
יוצרים את רשומת ה-A באמצעות מדיניות ניתוב למעבר לגיבוי (Failover). המדיניות הזו מצביעה על כתובת ה-IP הראשית ומשתמשת בבדיקת התקינות כדי לקבוע מתי לבצע מעבר לגיבוי לכתובת ה-IP של הגיבוי.
הפקודה שלמטה משתמשת בשמות של כללי העברה של מאזן העומסים כדי להפנות לכתובות ה-IP של מדיניות הניתוב.
gcloud beta dns record-sets create codelab.gcp.axiszulu.com. \
--type=A \
--ttl=5 \
--zone=codelab-publiczone \
--routing_policy_type=FAILOVER \
--routing-policy-primary-data=$PRIMARY_IP \
--routing-policy-backup-data-type=GEO \
--routing-policy-backup-item=location=$REGION_B,external_endpoints=$BACKUP_IP \
--health-check=dns-failover-health-check
8. בדיקת מעבר לשירות גיבוי אזורי
- אימות ראשוני: משתמשים בכלי (כמו
digאו דפדפן אינטרנט) כדי לשלוח שאילתה לדומיין. היא אמורה להפנות אל כתובת ה-IP הראשית ($PRIMARY_IP) ולהחזיר את הדף Region A - Primary Backend.
dig codelab.gcp.axiszulu.com
OUTPUT
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> codelab.gcp.axiszulu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16096
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;codelab.gcp.axiszulu.com. IN A
;; ANSWER SECTION:
codelab.gcp.axiszulu.com. 5 IN A <PRIMARY_IP>
פלט מהדפדפן

- הדמיית יתירות כשל: מתחברים ל-VM הראשית (
vm-a) ומשביתים את Apache כדי להדמות הפסקה זמנית בשירות:
ב-Cloud Shell
gcloud compute ssh vm-a --zone=$REGION_A-a --command="sudo systemctl stop apache2"
- אימות הסטטוס 'לא תקין': מחכים 2-3 דקות עד שבדיקת תקינות ה-DNS תסמן את נקודת הקצה הראשית כלא תקינה.
# check health status
gcloud compute backend-services get-health be-svc-a --region=${REGION_A}
Output:
backend: https://www.googleapis.com/compute/v1/projects/precise-airship-466617-c3/zones/us-central1-a/instanceGroups/ig-a
status:
healthStatus:
- healthState: UNHEALTHY
instance: https://www.googleapis.com/compute/v1/projects/precise-airship-466617-c3/zones/us-central1-a/instances/vm-a
ipAddress: 10.10.1.2
port: 80
kind: compute#backendServiceGroupHealth
- אימות המעבר לגיבוי: שולחים שוב שאילתה לדומיין. הכתובת אמורה עכשיו להפנות אל כתובת ה-IP של הגיבוי (
$BACKUP_IP) ולהחזיר את הדף 'אזור ב' – עורף המערכת של הגיבוי'.
dig codelab.gcp.axiszulu.com
OUTPUT
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> codelab.gcp.axiszulu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16096
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;codelab.gcp.axiszulu.com. IN A
;; ANSWER SECTION:
codelab.gcp.axiszulu.com. 5 IN A <BACKUP_IP>
פלט מהדפדפן

- הדמיית חזרה לגיבוי (אופציונלי): מתחברים באמצעות SSH ומפעילים את Apache במכונת ה-VM הראשית, וממתינים עד שבדיקת התקינות של ה-DNS תסמן את נקודת הקצה הראשית כנקודת קצה תקינה. התנועה אמורה לחזור אוטומטית לכתובת ה-IP הראשית.
- אופציונלי: כדי לנתח את הרישום ביומן של בדיקת תקינות ב-Cloud DNS, מריצים את הפקודה הבאה ב-Cloud Shell
gcloud logging read "logName=projects/${projectid}/logs/compute.googleapis.com%2Fhealthchecks" \
--limit=10 \
--project=${projectid} \
--freshness=1d \
--format="table(timestamp:label=TIME, \
jsonPayload.healthCheckProbeResult.ipAddress:label=BACKEND_IP, \
jsonPayload.healthCheckProbeResult.previousDetailedHealthState:label=PREVIOUS_STATE, \
jsonPayload.healthCheckProbeResult.detailedHealthState:label=CURRENT_STATE, \
jsonPayload.healthCheckProbeResult.probeResultText:label=RESULT_TEXT)"
9. שלבי הניקוי
כדי להימנע מחיובים נוספים, צריך למחוק את כל הרכיבים.
מ-Cloud Shell
# Delete VMs
gcloud compute instances delete vm-a --zone=$REGION_A-a --quiet
gcloud compute instances delete vm-b --zone=$REGION_B-a --quiet
# Delete Load Balancer Components (Primary)
gcloud compute forwarding-rules delete http-fwd-rule-a --region=$REGION_A --quiet
gcloud compute target-http-proxies delete http-proxy-a --region=$REGION_A --quiet
gcloud compute url-maps delete url-map-a --region=$REGION_A --quiet
gcloud compute backend-services delete be-svc-a --region=$REGION_A --quiet
gcloud compute addresses delete rxlb-ip-a --region=$REGION_A --quiet
# Delete Load Balancer Components (Backup)
gcloud compute forwarding-rules delete http-fwd-rule-b --region=$REGION_B --quiet
gcloud compute target-http-proxies delete http-proxy-b --region=$REGION_B --quiet
gcloud compute url-maps delete url-map-b --region=$REGION_B --quiet
gcloud compute backend-services delete be-svc-b --region=$REGION_B --quiet
gcloud compute addresses delete rxlb-ip-b --region=$REGION_B --quiet
# Delete Instance Groups and LB Health Checks
gcloud compute instance-groups unmanaged delete ig-a --zone=$REGION_A-a --quiet
gcloud compute instance-groups unmanaged delete ig-b --zone=$REGION_B-a --quiet
gcloud compute health-checks delete http-lb-hc-primary-region --region=$REGION_A --quiet
gcloud compute health-checks delete http-lb-hc-backup-region --region=$REGION_B --quiet
# Delete Cloud DNS Records Zone and DNS Heath Checks
gcloud dns record-sets delete $DNS_DOMAIN --type=A --zone=codelab-publiczone --quiet
gcloud dns managed-zones delete codelab-publiczone --quiet
gcloud compute health-checks delete dns-failover-health-check --global --quiet
# Delete Cloud NAT and Cloud Routers
gcloud compute routers nats delete $REGION_A-nat-gw \
--router=$REGION_A-cloudrouter --region=$REGION_A --quiet
gcloud compute routers nats delete $REGION_B-nat-gw \
--router=$REGION_B-cloudrouter --region=$REGION_B --quiet
gcloud compute routers delete $REGION_A-cloudrouter \
--region=$REGION_A --quiet
gcloud compute routers delete $REGION_B-cloudrouter \
--region=$REGION_B --quiet
# Delete Subnets and Firewall Rules
gcloud compute firewall-rules delete fw-allow-health-check --quiet
gcloud compute firewall-rules delete fw-allow-proxies --quiet
gcloud compute firewall-rules delete allow-ssh --quiet
gcloud compute networks subnets delete subnet-a \
--region=$REGION_A --quiet
gcloud compute networks subnets delete subnet-b \
--region=$REGION_B --quiet
gcloud compute networks subnets delete proxy-only-subnet-a \
--region=$REGION_A --quiet
gcloud compute networks subnets delete proxy-only-subnet-b \
--region=$REGION_B --quiet
gcloud compute networks delete external-lb-vpc --quiet
10. מעולה!
כל הכבוד, סיימתם את ה-Codelab.
- הגדרתם ואימתתם בהצלחה מעבר פעיל-סביל לגיבוי במספר אזורים באמצעות בדיקות תקינות של Cloud DNS ומאזן עומסים חיצוני אזורי של אפליקציות (ALB)