1. Pengantar
Terakhir Diperbarui: 22-09-2022
Apa yang dimaksud dengan kebijakan pemilihan rute DNS
Kebijakan pemilihan rute Cloud DNS memungkinkan pengguna mengonfigurasi pengarahan traffic berbasis DNS, bergantung pada kriteria tertentu seperti bobot, geolokasi, atau health check.
Cloud DNS mendukung kebijakan pemilihan rute berikut:
- Kebijakan pemilihan rute round robin berbobot
- Kebijakan pemilihan rute geolokasi
- Kebijakan pemilihan rute dengan pembatasan wilayah
- Kebijakan pemilihan rute failover
Dalam lab ini, Anda akan mengonfigurasi dan menguji kebijakan perutean failover.
Kebijakan pemilihan rute failover
Cloud DNS mendukung health check untuk Load Balancer TCP/UDP Internal yang telah mengaktifkan akses global. Dengan kebijakan pemilihan rute failover, Anda dapat mengonfigurasi IP utama dan cadangan untuk data resource. Dalam operasi normal, Cloud DNS akan merespons kueri dengan alamat IP yang disediakan di set utama. Jika semua alamat IP dalam set utama gagal (status responsivitas berubah menjadi tidak responsif), Cloud DNS akan mulai menyajikan alamat IP dalam set cadangan.
Health check
Kebijakan pemilihan rute DNS akan bergantung pada health check terpadu(UHC) Load Balancer Internal native. Load Balancer Internal dianggap responsif jika 20% (atau lebih) backend responsif. Pemeriksaan kesehatan untuk load balancer TCP/UDP internal dan HTTP(S) Internal memberikan informasi yang berbeda. Untuk load balancer HTTP(S) internal, UHC memberikan status responsivitas semua proxy Envoy, tetapi untuk load balancer TCP/UDP internal, Cloud DNS mendapatkan sinyal responsivitas langsung dari setiap instance backend. Detail pemeriksaan kondisi dapat ditemukan di sini .
Yang akan Anda bangun
Dalam Codelab ini, Anda akan membuat situs yang berjalan di 2 region dan mengaitkan kebijakan pemilihan rute DNS failover dengannya. Penyiapannya akan memiliki:
Resource aktif -
- Load Balancer Internal L4 di REGION_1
- VM yang menjalankan server web Apache di REGION_1
Resource cadangan -
- Load Balancer Internal L4 di REGION_2
- VM yang menjalankan server web Apache di REGION_2
Penyiapannya seperti yang ditunjukkan di bawah -

Yang akan Anda pelajari
- Cara membuat kebijakan perutean failover
- Memicu failover DNS
- Cara mengalirkan traffic ke set cadangan
Yang Anda butuhkan
- Pengetahuan dasar tentang DNS
- Pengetahuan dasar tentang Google Compute Engine
- Pengetahuan dasar tentang Load Balancer Internal L4
2. Penyiapan dan Persyaratan
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (biasanya diidentifikasi sebagai
PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan melihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan akan tetap ada selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.
3. Versi Google Cloud SDK
Pada saat penulisan, 401.0.0 adalah versi Google Cloud SDK terbaru. Semua perintah dalam lab ini diuji menggunakan Google Cloud SDK versi terbaru. Sebelum melanjutkan, pastikan Cloud Shell menggunakan SDK versi terbaru.
Memeriksa versi SDK
Gunakan perintah gcloud version untuk memeriksa versi SDK. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud version | grep "Google Cloud SDK"
Contoh Output
Google Cloud SDK 401.0.0
Langkah Berikutnya
- Jika versi SDK adalah
401.0.0atau yang lebih tinggi, lanjutkan ke bagian berikutnya. - Jika versi SDK lebih rendah dari
401.0.0, jalankan perintah yang tercantum di bawah untuk mengupdate SDK.
Perintah Opsional
sudo apt-get update && sudo apt-get install google-cloud-sdk
4. Sebelum memulai
Sebelum Anda mulai men-deploy arsitektur yang kami jelaskan di atas, pastikan Cloud Shell dikonfigurasi dengan benar dan semua API yang diperlukan telah diaktifkan.
Siapkan Project ID
Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan. Jika perintah Cloud Shell Anda terlihat seperti output di bawah dan Anda tidak berencana mengubah project ID, Anda dapat melanjutkan ke langkah berikutnya (Setel Variabel Lingkungan).
USER@cloudshell:~ (PROJECT_ID)$
Jika Anda tetap ingin mengubah project ID, gunakan perintah yang tercantum di bawah, perintah Cloud Shell akan berubah dari (PROJECT_ID) menjadi (YOUR-PROJECT-ID)
Perintah Opsional
gcloud config set project [YOUR-PROJECT-ID]
Contoh Output
Updated property [core/project]. USER@cloudshell:~ (YOUR-PROJECT-ID)$
Menetapkan Variabel Lingkungan
Tetapkan Variabel lingkungan
Kita akan menggunakan perintah export untuk menetapkan variabel lingkungan. Jalankan perintah berikut di Cloud Shell
Perintah
export REGION_1=us-west1
export REGION_1_ZONE=us-west1-a
export REGION_2=us-east4
export REGION_2_ZONE=us-east4-a
Verifikasi
Setelah variabel lingkungan ditetapkan, mari kita verifikasi menggunakan perintah echo. Output untuk setiap perintah harus berupa nilai yang kita konfigurasi di atas menggunakan perintah export. Jalankan perintah berikut di Cloud Shell
Perintah
echo $REGION_1
echo $REGION_1_ZONE
echo $REGION_2
echo $REGION_2_ZONE
Mengaktifkan semua layanan yang diperlukan
Gunakan perintah gcloud services enable untuk mengaktifkan Compute API dan DNS API. Jalankan perintah berikut di Cloud Shell
Aktifkan Compute API
Perintah
gcloud services enable compute.googleapis.com
Mengaktifkan DNS API
Perintah
gcloud services enable dns.googleapis.com
Verifikasi
Setelah layanan diaktifkan, mari kita lakukan verifikasi menggunakan perintah gcloud services list untuk mencantumkan semua API yang diaktifkan.
Perintah
gcloud services list | grep -E 'compute|dns'
Contoh Output
NAME: compute.googleapis.com NAME: dns.googleapis.com
5. Membuat Jaringan VPC, Subnet, dan aturan Firewall
Di bagian ini, kita akan membuat jaringan VPC, dua subnet (satu di setiap region), dan aturan firewall yang diperlukan.
Create VPC Network
Gunakan perintah gcloud compute networks create untuk membuat jaringan VPC. Kita menyetel mode subnet sebagai kustom karena kita akan membuat subnet sendiri pada langkah berikutnya. Jalankan perintah berikut di Cloud Shell.
Perintah
gcloud compute networks create my-vpc --subnet-mode custom
Buat Subnet
Gunakan perintah gcloud compute networks subnets create untuk membuat dua subnet, satu di REGION_1 dan satu di REGION_2. Jalankan perintah berikut di Cloud Shell
Subnet REGION_1
Perintah
gcloud compute networks subnets create ${REGION_1}-subnet \
--network my-vpc \
--range 10.1.0.0/24 \
--region $REGION_1
Subnet REGION_2
Perintah
gcloud compute networks subnets create ${REGION_2}-subnet \
--network my-vpc \
--range 10.2.0.0/24 \
--region $REGION_2
Membuat aturan firewall
Anda harus mengizinkan traffic di port 80 dari subnet VPC dan dari rentang IP health check load balancer.
Selain itu, Anda juga perlu membuat aturan firewall untuk mengizinkan traffic SSH di VM klien.
Gunakan perintah gcloud compute firewall-rules create untuk membuat aturan firewall. Jalankan perintah berikut di Cloud Shell
Mengizinkan Traffic di Port 80
Perintah
gcloud compute firewall-rules create allow-http-lb-hc \ --allow tcp:80 --network my-vpc \ --source-ranges 10.1.0.0/24,10.2.0.0/24,35.191.0.0/16,130.211.0.0/22 \ --target-tags=allow-http
Mengizinkan Traffic SSH di VM Klien
Perintah
gcloud compute firewall-rules create allow-ssh \ --allow tcp:22 --network my-vpc \ --source-ranges 0.0.0.0/0 \ --target-tags=allow-ssh
6. Buat Cloud NAT
Anda memerlukan gateway Cloud NAT di kedua region agar VM pribadi dapat mendownload dan menginstal paket dari internet.
- VM server web kita harus mendownload dan menginstal server web Apache.
- VM klien harus mendownload dan menginstal paket dnsutils yang akan kita gunakan untuk pengujian.
Setiap gateway Cloud NAT dikaitkan dengan satu jaringan VPC, region, dan Cloud Router. Jadi, sebelum membuat gateway NAT, kita perlu membuat Cloud Router di setiap region.
Membuat Cloud Router
Gunakan perintah gcloud compute routers create untuk membuat Cloud Router di region us-west1 dan us-east4. Jalankan perintah berikut di Cloud Shell.
Region_1 Cloud Router
Perintah
gcloud compute routers create "${REGION_1}-cloudrouter" \
--region $REGION_1 --network=my-vpc --asn=65501
Region_2 Cloud Router
Perintah
gcloud compute routers create "${REGION_2}-cloudrouter" \
--region $REGION_2 --network=my-vpc --asn=65501
Buat Gateway NAT
Gunakan perintah gcloud compute routers nat create untuk membuat gateway NAT di region us-west1 dan us-east4. Jalankan perintah berikut di Cloud Shell.
Region_1 NAT Gateway
Perintah
gcloud compute routers nats create "${REGION_1}-nat-gw" \
--router="${REGION_1}-cloudrouter" \
--router-region=$REGION_1 \
--nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips
Region_2 NAT Gateway
Perintah
gcloud compute routers nats create "${REGION_2}-nat-gw" \
--router="${REGION_2}-cloudrouter" \
--router-region=$REGION_2 \
--nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips
7. Membuat VM Compute Engine
Di bagian ini, Anda akan membuat server web, grup instance tidak terkelola untuk server web, dan VM klien.
Membuat VM server Web
Gunakan perintah gcloud compute instances create untuk membuat server web. Kita perlu membuat dua server web, satu di REGION_1 dan satu lagi di REGION_2. Kita menggunakan skrip startup untuk menginstal dan mengonfigurasi Apache di server web.
Server Web REGION_1
Jalankan perintah berikut di Cloud Shell
Perintah
gcloud compute instances create "${REGION_1}-instance" \
--image-family=debian-11 --image-project=debian-cloud \
--zone=$REGION_1_ZONE \
--network-interface=network=my-vpc,subnet=${REGION_1}-subnet,no-address \
--tags=allow-http \
--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://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
Server Web REGION_2
Jalankan perintah berikut di Cloud Shell
Perintah
gcloud compute instances create "${REGION_2}-instance" \
--image-family=debian-11 --image-project=debian-cloud \
--zone=$REGION_2_ZONE \
--network-interface=network=my-vpc,subnet=${REGION_2}-subnet,no-address \
--tags=allow-http \
--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://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
Membuat grup instance tidak terkelola
Di bagian ini, kita akan membuat dua grup instance tidak terkelola. Kita akan menggunakan grup instance ini di bagian berikutnya untuk mengonfigurasi layanan backend ILB. Setelah grup instance dibuat, kita akan menambahkan VM server web ke grup instance ini.
Buat Grup Instance Tak Terkelola
Gunakan perintah gcloud compute instance-groups unmanaged create untuk membuat dua grup instance tidak terkelola, satu untuk server web us-west1 dan satu lagi untuk server web us-east4.
Grup Instance Region_1
Perintah
gcloud compute instance-groups unmanaged create \
"${REGION_1}-instance-group" --zone=$REGION_1_ZONE
Grup Instance Region_2
Perintah
gcloud compute instance-groups unmanaged create \
"${REGION_2}-instance-group" --zone=$REGION_2_ZONE
Tambahkan VM ke Instance Groups
Gunakan perintah gcloud compute instance-groups unmanaged add-instances untuk menambahkan instance ke Grup instance yang baru saja kita buat. Tambahkan server web REGION_1 ke grup instance REGION_1 dan server web REGION_2 ke grup instance REGION_2
Grup Instance Region_1
Perintah
gcloud compute instance-groups unmanaged add-instances \
"${REGION_1}-instance-group" --instances $REGION_1-instance \
--zone=$REGION_1_ZONE
Grup Instance Region_2
Perintah
gcloud compute instance-groups unmanaged add-instances \
"${REGION_2}-instance-group" --instances $REGION_2-instance \
--zone=$REGION_2_ZONE
Membuat VM klien
Kita akan menggunakan VM ini untuk menjalankan pengujian dan memverifikasi konfigurasi DNS kita. Kita menggunakan skrip startup untuk menginstal paket dnsutils. Jalankan perintah berikut di Cloud Shell.
Perintah
gcloud compute instances create client-instance --image-family=debian-11 \
--image-project=debian-cloud \
--zone=$REGION_1_ZONE \
--network-interface=network=my-vpc,subnet=${REGION_1}-subnet,no-address \
--tags=allow-ssh \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install dnsutils -y'
8. Membuat Load Balancer Internal L4
Untuk membuat ILB L4, kita perlu membuat health check, layanan backend, dan aturan penerusan.
Buat health check
Gunakan perintah gcloud compute health-checks create untuk membuat health check. Kita membuat health check http dasar dan port targetnya adalah port 80. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud compute health-checks create http http-hc --port 80
Mengonfigurasi layanan backend
Gunakan perintah gcloud compute backend-services create untuk membuat layanan backend. Setelah layanan backend dibuat, kita akan menambahkan grup instance tidak terkelola ke layanan backend menggunakan perintah gcloud compute backend-services add-backend. Jalankan perintah berikut di Cloud Shell.
Buat Layanan Backend
Perintah
gcloud compute backend-services create $REGION_1-backend-service \ --load-balancing-scheme=INTERNAL --protocol=TCP \ --health-checks=http-hc --region=$REGION_1
gcloud compute backend-services create $REGION_2-backend-service \ --load-balancing-scheme=INTERNAL --protocol=TCP \ --health-checks=http-hc --region=$REGION_2
Tambahkan Backend
Perintah
gcloud compute backend-services add-backend $REGION_1-backend-service \ --instance-group=$REGION_1-instance-group \ --region=$REGION_1 \ --instance-group-zone=$REGION_1_ZONE
gcloud compute backend-services add-backend $REGION_2-backend-service \ --instance-group=$REGION_2-instance-group \ --region=$REGION_2 \ --instance-group-zone=$REGION_2_ZONE
Membuat aturan penerusan
Gunakan perintah gcloud compute forwarding-rules create untuk membuat aturan penerusan di kedua region. Jalankan perintah berikut di Cloud Shell
Aturan penerusan REGION_1
Perintah
gcloud compute forwarding-rules create $REGION_1-ilb \
--region=$REGION_1 \
--load-balancing-scheme=internal \
--network=my-vpc \
--subnet=$REGION_1-subnet \
--ip-protocol=TCP \
--ports=80 \
--backend-service=$REGION_1-backend-service \
--backend-service-region=$REGION_1 \
--allow-global-access
Aturan penerusan REGION_2
gcloud compute forwarding-rules create $REGION_2-ilb \
--region=$REGION_2 \
--load-balancing-scheme=internal \
--network=my-vpc \
--subnet=$REGION_2-subnet \
--ip-protocol=TCP \
--ports=80 \
--backend-service=$REGION_2-backend-service \
--backend-service-region=$REGION_2 \
--allow-global-access
9. Mengonfigurasi DNS
Di bagian ini, kita akan membuat zona pribadi dan set data DNS dengan kebijakan pemilihan rute failover.
Membuat zona DNS pribadi
Gunakan perintah gcloud dns managed-zones create untuk membuat zona pribadi untuk example.com. Kita akan menggunakan zona ini untuk membuat set data resource dengan kebijakan pemilihan rute failover. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud dns managed-zones create example-com \ --dns-name example.com. --description="My private zone" \ --visibility=private --networks my-vpc
Membuat data DNS dengan kebijakan pemilihan rute failover
Gunakan perintah gcloud dns record-sets create untuk membuat data DNS dengan kebijakan perutean failover. Target utama adalah load balancer di REGION_1. Cloud DNS hanya mendukung target cadangan berbasis geografis. Set cadangan adalah kebijakan geolokasi dengan load balancer REGION_2 sebagai target untuk REGION_1 dan REGION_2. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud dns record-sets create failover.example.com --ttl 5 --type A \
--routing-policy-type=FAILOVER \
--routing-policy-primary-data=$REGION_1-ilb \
--routing-policy-backup-data="${REGION_1}=${REGION_2}-ilb;${REGION_2}=${REGION_2}-ilb" \
--routing-policy-backup-data-type=GEO \
--zone=example-com \
--enable-health-checking
Contoh Output
NAME: failover.example.com. TYPE: A TTL: 5 DATA: Primary: "10.1.0.4, 80, tcp, https://www.googleapis.com/compute/v1/projects/my-clouddns-codelab/global/networks/my-vpc, my-clouddns-codelab, us-west1, regionalL4ilb" Backup: us-west1: "10.2.0.3, 80, tcp, https://www.googleapis.com/compute/v1/projects/my-clouddns-codelab/global/networks/my-vpc, my-clouddns-codelab, us-east4, regionalL4ilb";us-east4: "10.2.0.3, 80, tcp, https://www.googleapis.com/compute/v1/projects/my-clouddns-codelab/global/networks/my-vpc, my-clouddns-codelab, us-east4, regionalL4ilb"
10. Menguji resolusi DNS
Sebelum menguji penyiapan failover, mari catat alamat IP untuk kedua Load Balancer Internal. Jalankan perintah berikut di Cloud Shell.
Perintah
gcloud compute forwarding-rules list --filter="name:($REGION_1-ilb $REGION_2-ilb)"
Contoh Output
Dalam contoh ini, us-west1-ilb memiliki alamat IP 10.1.0.4 dan us-east4-ilb memiliki alamat IP 10.2.0.3
NAME: us-west1-ilb REGION: us-west1 IP_ADDRESS: 10.1.0.4 IP_PROTOCOL: TCP TARGET: us-west1/backendServices/us-west1-backend-service NAME: us-east4-ilb REGION: us-east4 IP_ADDRESS: 10.2.0.3 IP_PROTOCOL: TCP TARGET: us-east4/backendServices/us-east4-backend-service
Sekarang kita akan login ke instance klien dan menguji resolusi DNS. Di konsol web, buka "Compute Engine | VM Instances"

Klik tombol SSH untuk login ke client-instance dari konsol.

Sekarang setelah kita berada di VM klien, gunakan perintah dig untuk me-resolve nama domain failover.example.com.
Loop dikonfigurasi untuk menjalankan perintah sepuluh kali dengan timer tidur 6 detik.
Perintah
for i in {1..10}; do echo $i; dig failover.example.com +short; sleep 6; done
Karena TTL pada data DNS ditetapkan ke 5 detik, timer tidur 6 detik telah ditambahkan. Timer tidur akan memastikan bahwa Anda mendapatkan respons DNS yang tidak di-cache untuk setiap permintaan DNS. Perintah ini akan memerlukan waktu sekitar satu menit untuk dijalankan.
Dalam output, Anda akan melihat alamat IP load balancer dalam set utama data resource. Dalam penyiapan ini, alamat tersebut adalah IP load balancer di region us-west1.
11. Menguji failover
Kita akan melakukan simulasi failover dengan menghapus tag jaringan dari VM REGION_1. Tindakan ini akan memblokir akses ke port 80, dan akibatnya, health check akan mulai gagal.
Menghapus Tag Jaringan
Gunakan perintah gcloud compute instances remove-tags untuk menghapus tag jaringan dari VM. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud compute instances remove-tags $REGION_1-instance \ --zone=$REGION_1_ZONE --tags=allow-http
Health check akan gagal dalam 10 detik. Jalankan pengujian resolusi DNS lagi.
Resolusi DNS
Dari instance klien, jalankan perintah berikut
Perintah
for i in {1..10}; do echo $i; dig failover.example.com +short; sleep 6; done
Dalam output, Anda akan melihat alamat IP load balancer dalam set cadangan data resource. Dalam penyiapan ini, alamat tersebut adalah IP load balancer di region us-east4.
12. Menguji tetesan traffic
Secara default, kebijakan failover menampilkan IP endpoint utama untuk semua permintaan DNS dan hanya menampilkan IP cadangan jika IP utama gagal dalam health check. Cloud DNS memungkinkan pengguna mengonfigurasi Rasio Perjalanan yang memungkinkan Cloud DNS mengirim sebagian traffic ke target cadangan, meskipun target utama responsif. Rasio harus berupa nilai antara 0 dan 1. Nilai defaultnya adalah 0
Untuk mengujinya, mari tambahkan kembali tag jaringan ke server web REGION_1.
Tambahkan Tag Jaringan
Tambahkan kembali tag ke VM Server Web untuk mengizinkan traffic http ke VM region utama. Jalankan perintah berikut di Cloud Shell:
Perintah
gcloud compute instances add-tags $REGION_1-instance \ --zone $REGION_1_ZONE --tags allow-http
Pemeriksaan kondisi akan berhasil dalam 10 detik
Pastikan resolusi DNS mengarah ke load balancer utama. Dalam penyiapan ini, alamat tersebut adalah alamat IP load balancer di region us-west1.
Dari instance klien, jalankan perintah berikut
Perintah
dig +short failover.example.com
Perbarui Data DNS
Sekarang, kita akan mengubah data DNS untuk failover.example.com agar mengalirkan 30% traffic ke set cadangan meskipun target utama responsif. Jalankan perintah berikut di Cloud Shell
Perintah
gcloud dns record-sets update failover.example.com --ttl 30 --type A \
--routing-policy-type=FAILOVER \
--routing-policy-primary-data=$REGION_1-ilb \
--routing-policy-backup-data="${REGION_1}=${REGION_2}-ilb;${REGION_2}=${REGION_2}-ilb" \
--routing-policy-backup-data-type=GEO \
--zone=example-com --enable-health-checking \
--backup-data-trickle-ratio=0.3
Resolusi DNS
Jalankan perintah berikut dari VM klien. Anda akan melihat bahwa data DNS failover.example.com akan di-resolve ke IP load balancer utama sekitar 70% dari waktu dan ke IP load balancer cadangan sekitar 30% dari waktu.
for i in {1..10}; do echo $i; dig failover.example.com +short; sleep 6; done
13. Langkah-langkah pembersihan
Untuk membersihkan resource yang digunakan dalam lab ini, jalankan perintah berikut dari Cloud Shell
gcloud dns record-sets delete failover.example.com --type=A \ --zone=example-com --quiet gcloud dns managed-zones delete example-com --quiet gcloud compute forwarding-rules delete $REGION_1-ilb \ --region=$REGION_1 --quiet gcloud compute forwarding-rules delete $REGION_2-ilb \ --region=$REGION_2 --quiet gcloud compute backend-services delete $REGION_1-backend-service \ --region=$REGION_1 --quiet gcloud compute backend-services delete $REGION_2-backend-service \ --region=$REGION_2 --quiet gcloud compute health-checks delete http-hc --quiet gcloud compute instances delete client-instance --zone=$REGION_1_ZONE --quiet gcloud compute instance-groups unmanaged delete $REGION_1-instance-group \ --zone=$REGION_1_ZONE --quiet gcloud compute instance-groups unmanaged delete $REGION_2-instance-group \ --zone=$REGION_2_ZONE --quiet gcloud compute instances delete $REGION_1-instance \ --zone=$REGION_1_ZONE --quiet gcloud compute instances delete $REGION_2-instance \ --zone=$REGION_2_ZONE --quiet gcloud compute routers nats delete $REGION_1-nat-gw \ --router=$REGION_1-cloudrouter --region=$REGION_1 --quiet gcloud compute routers nats delete $REGION_2-nat-gw \ --router=$REGION_2-cloudrouter --region=$REGION_2 --quiet gcloud compute routers delete $REGION_1-cloudrouter \ --region=$REGION_1 --quiet gcloud compute routers delete $REGION_2-cloudrouter \ --region=$REGION_2 --quiet gcloud compute firewall-rules delete allow-ssh allow-http-lb-hc --quiet gcloud compute networks subnets delete $REGION_1-subnet \ --region=$REGION_1 --quiet gcloud compute networks subnets delete $REGION_2-subnet \ --region=$REGION_2 --quiet gcloud compute networks delete my-vpc --quiet
14. Selamat
Selamat, Anda telah berhasil men-deploy dan menguji kebijakan pemilihan rute failover Cloud DNS
Yang telah kita bahas
- Cara mengonfigurasi kebijakan pemilihan rute failover Cloud DNS
- Menguji failover DNS
- Cara mengalirkan traffic ke set cadangan
Apa selanjutnya?
- Coba siapkan beberapa IP untuk set aktif dan cadangan
- Coba tambahkan beberapa VM backend ke grup instance tidak terkelola
- Coba siapkan beberapa load balancer di berbagai region untuk kebijakan geolokasi dalam set cadangan.
Pelajari lebih lanjut
https://cloud.google.com/dns/docs/zones/manage-routing-policies