Cloud DNS durum denetimlerini kullanarak bölgesel harici uç noktalar için çok bölgeli yük devretme

1. Giriş

Cloud DNS hizmeti, yüksek performanslı, esnek ve küresel bir Alan Adı Sistemi (DNS) çözümü sunarak bölgeleri ve kayıtları kendi kendine yönetilen DNS altyapısına ihtiyaç duymadan yayınlamanıza olanak tanır.

Cloud DNS, harici uç noktalar için yönlendirme politikalarında durum denetimi ve otomatik yük devretme özelliklerini destekler. Ancak bu harici uç noktalar için sağlık kontrollerinin yalnızca herkese açık bölgelerde kullanılabildiğini ve uç noktaların kendilerinin internet üzerinden herkese açık olarak erişilebilir olması gerektiğini lütfen unutmayın.

Neler öğreneceksiniz?

  • Yönetilmeyen örnek grubuyla bölgesel harici uygulama yük dengeleyicisi oluşturma
  • Harici DNS yönlendirme için Cloud DNS durum denetimlerini yapılandırma
  • Yük devretme yönlendirme politikası oluşturma

Gerekenler

  • DNS hakkında temel düzeyde bilgi sahibi olmanız gerekir.
  • Google Compute Engine hakkında temel düzeyde bilgi sahibi olma
  • Uygulama yük dengeleyicisi hakkında temel bilgi sahibi olmanız gerekir.
  • Sahip izinlerine sahip bir Google Cloud projesi
  • Sahibi olduğunuz ve Cloud DNS herkese açık alt bölgesi oluşturabileceğiniz bir herkese açık alan.
  • Şu anda Google Cloud projesinde aşağıdaki kuruluş politikaları zorunlu kılınmamaktadır: Korumalı sanal makineler ve İnternet ağ uç noktası grupları.

2. Codelab topolojisi

f7c2062b86d93268.jpeg

Bu codelab'de, birincil yük dengeleyicinin arka ucu sağlıksız hale gelirse trafiği yedek bir bölgesel harici uygulama yük dengeleyicisine yönlendirmek için harici uç noktalarla ilgili Cloud DNS durum denetimlerini kullanacaksınız.

Her biri harici uygulama yük dengeleyicisi ile desteklenen iki bölgede bir web sitesi oluşturacaksınız. Ardından, Cloud DNS durum denetimlerini yük devretme yönlendirme politikasıyla yapılandıracaksınız.

3. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Google Cloud Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Cloud Shell'i etkinleştirme

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

Ortamın bağlandığını gösteren Google Cloud Shell terminalinin ekran görüntüsü

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.

4. Başlamadan önce

API'leri etkinleştir

Cloud Shell'de projenizin ayarlandığından ve değişkenlerin yapılandırıldığından emin olun.

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

Gerekli tüm hizmetleri etkinleştirin

gcloud services enable compute.googleapis.com 
gcloud services enable dns.googleapis.com

5. Cloud Load Balancing altyapısı oluşturma

Bu bölümde, birincil ve yedek yük dengeleyicileri desteklemek için iki farklı bölgede gerekli VPC'yi, alt ağları, güvenlik duvarı kurallarını, VM'leri ve yönetilmeyen örnek gruplarını oluşturacaksınız.

VPC Ağı

Cloud Shell'den

gcloud compute networks create external-lb-vpc --subnet-mode=custom

Arka uç web sunucularını barındırmak için REGION_A (Birincil) ve REGION_B (Yedek) bölgelerinde iki alt ağ oluşturun.

Alt Ağ Oluşturma

Cloud Shell'den

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

Daha sonra oluşturulacak ilgili bölgesel harici uygulama yük dengeleyicisi için her bölgede yalnızca proxy alt ağları oluşturun.

Bu özel yalnızca proxy alt ağı, external-lb-vpc ağının aynı bölgesinde dağıtılan tüm Envoy tabanlı bölgesel yük dengeleyiciler için zorunlu bir koşuldur. Bu proxy'ler, istemcinin bağlantısını etkili bir şekilde sonlandırır ve ardından arka uç hizmetleriyle yeni bağlantılar kurar.

Cloud Shell'den

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

Ağ Güvenlik Duvarı Kuralları Oluşturma

fw-allow-health-check. Yük dengelenecek örnekler için geçerli olan ve Google Cloud durum denetimi sistemlerinden (130.211.0.0/22 ve 35.191.0.0/16) gelen tüm TCP trafiğine izin veren bir giriş kuralı. Bu örnekte, güvenlik duvarı kuralının geçerli olduğu sanal makineleri tanımlamak için load-balanced-backend hedef etiketi kullanılmaktadır.

fw-allow-proxies. Yük dengelenen örnekler için geçerli olan ve bölgesel harici uygulama yük dengeleyicisinin yönetilen proxy'lerinden gelen 80 numaralı bağlantı noktalarındaki TCP trafiğine izin veren bir giriş kuralı. Bu örnekte, güvenlik duvarı kuralının geçerli olduğu sanal makineleri tanımlamak için load-balanced-backend hedef etiketi kullanılmaktadır.

Cloud Shell'den

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'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'den

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 ve Cloud Router oluşturma

Özel sanal makinelerin internetten paket indirip yükleyebilmesi için her iki bölgede de Cloud NAT ağ geçitlerine ihtiyacınız vardır.

  • Web sunucusu sanal makinelerimizin Apache web sunucusunu indirmesi ve yüklemesi gerekir.
  • İstemci VM'sinin, testlerimizde kullanacağımız dnsutils paketini indirip yüklemesi gerekir.

Her Cloud NAT ağ geçidi tek bir VPC ağı, bölge ve Cloud Router ile ilişkilendirilir. Bu nedenle, NAT ağ geçitlerini oluşturmadan önce her bölgede Cloud Router oluşturmamız gerekir.

Cloud Router oluşturma

Cloud Shell'den

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 ağ geçitleri oluşturma

Cloud Shell'den

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

Arka uç sanal makineleri ve yönetilmeyen örnek grupları oluşturma

Her bölgede sanal makine oluşturun ve web sunucusu (ör.Apache) yükleyin:

Cloud Shell'den

# 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'

Yönetilmeyen bir örnek grubu oluşturun ve her bölge için sanal makine örneğini bu gruba ekleyin:

Cloud Shell'den

# 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. Bölgesel Harici Uygulama Yük Dengeleyicileri Yapılandırma

Hem REGION_A (Birincil) hem de REGION_B (Yedek) bölgelerinde eksiksiz bir bölgesel harici uygulama yük dengeleyicisi yapılandıracaksınız.

Sağlık kontrolleri ve arka uç hizmetleri oluşturma

Bölgesel harici uygulama yük dengeleyicileri Envoy tabanlıdır ve bölgesel durum denetimlerinin yapılandırılması gerekir.

HTTP durum denetimi oluşturun (yük dengeleyiciler tarafından örnek durumunu kontrol etmek için kullanılır):

Cloud Shell'de

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

Bölgesel bir arka uç hizmeti oluşturun ve her bölgedeki örnek grubunu ekleyin**.**

Cloud Shell'de

# 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

Ön Uç Bileşenleri Oluşturma

Her iki bölgede de URL eşlemeleri ve hedef HTTP proxy'leri oluşturun:

Cloud Shell'de

#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

İletim kuralları için statik IP adresleri (harici) ayırın:

Cloud Shell'de

# 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

İki yük dengeleyici için yönlendirme kurallarını oluşturun:

Cloud Shell'de

# 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

Yedek devretme için Cloud DNS'i yapılandırma

Harici uç noktalar için Cloud DNS durum denetimi oluşturma

Yük dengeleyicinin herkese açık IP adresleri için özel bir genel durum denetimi oluşturmanız gerekir. Bu, yük dengeleyicinin dahili durum denetiminden farklıdır.

Yedek devretme politikasını yapılandırmak için öncelikle yük dengeleyicilerin harici IP adreslerini belirleyelim ve bunları değişken olarak dışa aktaralım.

Cloud Shell'de

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)')

Genel DNS durum denetimini oluşturun (üç kaynak bölge gerektirir):

Cloud Shell'de

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

Herkese açık yönetilen bölge ve yük devretme yönlendirme politikası oluşturun.

Herkese açık yönetilen bir bölge oluşturun (sahip olduğunuz DNS alanını kullanın):

Cloud Shell'de

gcloud dns managed-zones create codelab-publiczone --dns-name=$DNS_DOMAIN --description="Codelab DNS Failover Zone"

Yük Devretme Yönlendirme Politikası ile A kaydı oluşturun. Bu politika, birincil IP'yi işaret eder ve yedek IP'ye ne zaman yük devretme yapılacağını belirlemek için durum denetimini kullanır.

Aşağıdaki komutta, yönlendirme politikasının IP adreslerine referans vermek için yük dengeleyici iletim kuralı adları kullanılır.

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. Bölgesel yük devretmeyi test etme

  1. İlk Doğrulama: Alan adınızı sorgulamak için bir araç (ör. dig veya bir web tarayıcısı) kullanın. Birincil IP ($PRIMARY_IP) ile çözümlenmeli ve "Region A - Primary Backend" sayfası döndürülmelidir.
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>

Tarayıcıdan alınan çıktı

65b44db03cc084e4.png

  1. Yedek devretmeyi simüle etme: Birincil sanal makineye (vm-a) giriş yapın ve kesintiyi simüle etmek için Apache'yi kapatın:

Cloud Shell'de

gcloud compute ssh vm-a --zone=$REGION_A-a --command="sudo systemctl stop apache2"
  1. Kötü Durumu Doğrulama: DNS durum denetiminin birincil uç noktayı kötü durumda olarak işaretlemesi için 2-3 dakika bekleyin.
# 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
  1. Yedek devretmeyi doğrulama: Alan adınızı yeniden sorgulayın. Artık Yedekleme IP'sine ($BACKUP_IP) yönlendirilmeli ve "B Bölgesi - Yedekleme Arka Uç" sayfası döndürülmelidir.
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>

Tarayıcıdan alınan çıktı

ae84a2ea0a367025.png

  1. Geri dönüşü simüle etme (isteğe bağlı): Birincil sanal makineye SSH ile bağlanın ve Apache'yi başlatın. DNS durum denetiminin birincil uç noktayı sağlıklı olarak işaretlemesini bekleyin. Trafik, otomatik olarak birincil IP'ye geri yönlendirilmelidir.
  2. İsteğe bağlı: Cloud DNS durum denetimi günlük kaydını analiz etmek için Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz.
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. Temizleme adımları

Daha fazla ücret ödememek için tüm bileşenleri silin.

Cloud Shell'den

# 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. Tebrikler!

Codelab'i tamamladığınız için tebrik ederiz.

  • Cloud DNS sağlık kontrollerini ve bölgesel harici uygulama yük dengeleyicisini kullanarak çok bölgeli etkin-pasif yük devretmeyi başarıyla yapılandırdınız ve doğruladınız.