1. Giới thiệu
Dịch vụ Cloud DNS cung cấp một giải pháp Hệ thống tên miền (DNS) toàn cầu, có khả năng phục hồi và hiệu suất cao, cho phép bạn xuất bản các vùng và bản ghi mà không cần cơ sở hạ tầng DNS tự quản lý.
Điều quan trọng nhất là Cloud DNS tích hợp tính năng hỗ trợ kiểm tra tình trạng và khả năng chuyển đổi dự phòng tự động trong các chính sách định tuyến cho các điểm cuối bên ngoài. Tuy nhiên, xin lưu ý rằng các quy trình kiểm tra tình trạng của những điểm cuối bên ngoài này chỉ có trong các vùng công khai và bản thân các điểm cuối phải có thể truy cập công khai qua Internet.
Kiến thức bạn sẽ học được
- Cách tạo Bộ cân bằng tải ứng dụng bên ngoài theo khu vực bằng một nhóm phiên bản không được quản lý.
- Cách định cấu hình các chế độ kiểm tra tình trạng của Cloud DNS để định tuyến DNS bên ngoài.
- Cách tạo chính sách định tuyến dự phòng.
Bạn cần có
- Kiến thức cơ bản về DNS.
- Kiến thức cơ bản về Google Compute Engine.
- Kiến thức cơ bản về Trình cân bằng tải ứng dụng.
- Một dự án trên Google Cloud có quyền truy cập của chủ sở hữu
- Một miền công khai mà bạn sở hữu, bạn có thể tạo một vùng công khai Cloud DNS cho miền đó.
- Hiện tại, các chính sách sau đây của tổ chức không được thực thi trong Dự án Google Cloud: Máy ảo được bảo vệ và Nhóm điểm cuối mạng Internet.
2. Cấu trúc liên kết lớp học lập trình

Trong lớp học lập trình này, bạn sẽ sử dụng các chế độ kiểm tra tình trạng của Cloud DNS cho các điểm cuối bên ngoài để định tuyến lại lưu lượng truy cập đến một Trình cân bằng tải ứng dụng bên ngoài theo khu vực dự phòng nếu phần phụ trợ của trình cân bằng tải chính không hoạt động.
Bạn sẽ tạo một trang web ở 2 khu vực, mỗi khu vực được hỗ trợ bởi một Trình cân bằng tải ứng dụng bên ngoài. Sau đó, bạn sẽ định cấu hình các chế độ kiểm tra tình trạng Cloud DNS bằng một chính sách định tuyến dự phòng.
3. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.



- Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là mã duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID). Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có được chấp nhận hay không. Bạn không thể thay đổi tên này sau bước này và tên này sẽ tồn tại trong suốt thời gian của dự án. - Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên đám mây. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.
Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.
4. Trước khi bắt đầu
Bật API
Trong Cloud Shell, hãy đảm bảo rằng dự án của bạn đã được thiết lập và định cấu hình các biến.
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
Bật tất cả các dịch vụ cần thiết
gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com
5. Tạo cơ sở hạ tầng Cloud Load Balancing
Trong phần này, bạn sẽ tạo VPC, mạng con, quy tắc tường lửa, VM và Nhóm phiên bản không được quản lý cần thiết ở hai khu vực khác nhau để hỗ trợ bộ cân bằng tải chính và bộ cân bằng tải dự phòng.
Mạng VPC
Từ Cloud Shell
gcloud compute networks create external-lb-vpc --subnet-mode=custom
Tạo 2 mạng con trong REGION_A (Chính) và REGION_B (Dự phòng) để lưu trữ các máy chủ web phụ trợ
Tạo mạng con
Từ 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
Tạo các mạng con chỉ dành cho proxy ở mỗi khu vực cho Application Load Balancer bên ngoài theo khu vực tương ứng sẽ được tạo sau này.
Mạng con chỉ dành riêng cho proxy này là yêu cầu bắt buộc đối với tất cả các bộ cân bằng tải theo khu vực dựa trên Envoy được triển khai trong cùng một khu vực của mạng external-lb-vpc. Các proxy này sẽ chấm dứt kết nối của ứng dụng một cách hiệu quả và sau đó thiết lập các kết nối mới với các dịch vụ phụ trợ.
Từ 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
Tạo quy tắc tường lửa mạng
fw-allow-health-check. Một quy tắc lưu lượng truy cập đến, áp dụng cho các phiên bản đang được cân bằng tải, cho phép tất cả lưu lượng truy cập TCP từ các hệ thống kiểm tra tình trạng của Google Cloud (trong 130.211.0.0/22 và 35.191.0.0/16). Ví dụ này sử dụng thẻ đích load-balanced-backend để xác định những VM mà quy tắc tường lửa áp dụng.
fw-allow-proxies. Một quy tắc lưu lượng truy cập vào, áp dụng cho các phiên bản đang được cân bằng tải, cho phép lưu lượng truy cập TCP trên các cổng 80 từ các proxy được quản lý của Trình cân bằng tải ứng dụng bên ngoài theo khu vực. Ví dụ này sử dụng thẻ đích load-balanced-backend để xác định những VM mà quy tắc tường lửa áp dụng.
Từ 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
Để cho phép IAP kết nối với các phiên bản máy ảo, hãy tạo một quy tắc tường lửa có:
- Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn có thể truy cập bằng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Từ 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. Tạo Cloud NAT và Cloud Router
Bạn cần có các cổng Cloud NAT ở cả hai khu vực để các VM riêng tư có thể tải xuống và cài đặt các gói từ Internet.
- Các VM máy chủ web của chúng tôi sẽ cần tải xuống và cài đặt máy chủ web Apache.
- Máy ảo khách sẽ cần tải xuống và cài đặt gói dnsutils mà chúng ta sẽ dùng cho hoạt động kiểm thử.
Mỗi cổng Cloud NAT được liên kết với một mạng VPC, khu vực và Cloud Router duy nhất. Vì vậy, trước khi tạo cổng NAT, chúng ta cần tạo Bộ định tuyến đám mây ở mỗi khu vực.
Tạo Cloud Router
Từ 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
Tạo Cổng NAT
Từ 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
Tạo máy ảo phụ trợ và nhóm phiên bản không được quản lý
Tạo máy ảo ở mỗi khu vực và cài đặt máy chủ web (ví dụ: Apache):
Từ 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'
Tạo một Nhóm thực thể không được quản lý và thêm phiên bản máy ảo vào nhóm đó cho từng khu vực:
Từ 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. Định cấu hình Trình cân bằng tải ứng dụng bên ngoài theo khu vực
Bạn sẽ định cấu hình một Bộ cân bằng tải ứng dụng bên ngoài theo khu vực hoàn chỉnh ở cả REGION_A (Chính) và REGION_B (Dự phòng).
Tạo các dịch vụ phụ trợ và kiểm tra tình trạng hoạt động
Regional External Application Load Balancers (Trình cân bằng tải ứng dụng bên ngoài theo khu vực) dựa trên envoy và cần được định cấu hình Health Checks (Kiểm tra tình trạng) theo khu vực.
Tạo một chế độ kiểm tra tình trạng HTTP (do Trình cân bằng tải dùng để kiểm tra tình trạng của phiên bản):
Trong 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
Tạo một Dịch vụ phụ trợ theo khu vực và đính kèm Nhóm thực thể ở mỗi khu vực**.**
Trong 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
Tạo thành phần giao diện người dùng
Tạo Bản đồ URL và Proxy HTTP mục tiêu ở cả hai khu vực:
Trong 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
Dành riêng địa chỉ IP tĩnh (Bên ngoài) cho các quy tắc chuyển tiếp:
Trong 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
Tạo Quy tắc chuyển tiếp cho hai trình cân bằng tải:
Trong 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
Định cấu hình Cloud DNS để chuyển đổi dự phòng
Tạo chế độ Kiểm tra tình trạng của Cloud DNS cho các điểm cuối bên ngoài
Bạn phải tạo một chế độ kiểm tra tình trạng sức khoẻ chuyên dụng trên toàn cầu cho địa chỉ IP công khai của trình cân bằng tải. Điều này khác với quy trình kiểm tra tình trạng nội bộ của trình cân bằng tải.
Trước tiên, hãy xác định địa chỉ IP ngoài của Trình cân bằng tải để định cấu hình chính sách chuyển đổi dự phòng và xuất địa chỉ IP đó dưới dạng một biến
Trong 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)')
Tạo kiểm tra tình trạng DNS chung (cần có 3 khu vực nguồn):
Trong 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
Tạo Vùng được quản lý công khai và Chính sách định tuyến dự phòng.
Tạo một Vùng được quản lý công khai (sử dụng miền DNS mà bạn sở hữu):
Trong Cloud Shell
gcloud dns managed-zones create codelab-publiczone --dns-name=$DNS_DOMAIN --description="Codelab DNS Failover Zone"
Tạo bản ghi A bằng Chính sách định tuyến dự phòng. Chính sách này trỏ đến IP chính và sử dụng tính năng kiểm tra tình trạng để xác định thời điểm chuyển sang IP dự phòng.
Lệnh bên dưới sử dụng tên quy tắc chuyển tiếp của bộ cân bằng tải để tham chiếu đến địa chỉ IP cho chính sách định tuyến.
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. Kiểm thử chuyển đổi dự phòng theo khu vực
- Xác thực ban đầu: Sử dụng một công cụ (chẳng hạn như
dighoặc trình duyệt web) để truy vấn miền của bạn. Thao tác này sẽ phân giải thành IP chính ($PRIMARY_IP) và trả về trang "Khu vực A – Phần phụ trợ chính".
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>
Đầu ra từ trình duyệt

- Mô phỏng quy trình chuyển đổi dự phòng: Đăng nhập vào VM chính (
vm-a) rồi tắt Apache để mô phỏng sự cố ngừng hoạt động:
Trong Cloud Shell
gcloud compute ssh vm-a --zone=$REGION_A-a --command="sudo systemctl stop apache2"
- Xác minh trạng thái không ổn định: Chờ 2-3 phút để quy trình kiểm tra tình trạng DNS đánh dấu điểm cuối chính là không ổn định.
# 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
- Xác thực chuyển đổi dự phòng: Truy vấn lại miền của bạn. Giờ đây, yêu cầu sẽ phân giải thành IP dự phòng (
$BACKUP_IP) và trả về trang "Khu vực B – Phụ trợ dự phòng".
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>
Đầu ra từ trình duyệt

- Mô phỏng chuyển về trạng thái dự phòng (Không bắt buộc): SSH và khởi động Apache trên VM chính, đồng thời đợi quá trình kiểm tra tình trạng DNS đánh dấu điểm cuối chính là hoạt động bình thường. Lưu lượng truy cập sẽ tự động quay lại IP chính.
- Không bắt buộc: Bạn có thể phân tích Nhật ký kiểm tra tình trạng của Cloud DNS bằng cách chạy lệnh bên dưới trong 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. Các bước dọn dẹp
Xoá tất cả các thành phần để tránh bị tính thêm phí.
Từ 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. Xin chúc mừng!
Chúc mừng bạn đã hoàn thành Lớp học lập trình này.
- Bạn đã định cấu hình và xác thực thành công một quy trình chuyển đổi dự phòng chủ động-thụ động nhiều khu vực bằng cách sử dụng các chế độ kiểm tra tình trạng của Cloud DNS và Bộ cân bằng tải ứng dụng bên ngoài theo khu vực