document iki dimaksudaké kanggo arsitek lan wong sing makarya ing operasi lan tim administratif. Dokumen kasebut nggambarake pola conto sing bisa digunakake kanggo panyebaran sampeyan dhewe ing Google Cloud. Ing pola iki, load balancer ngarahake lalu lintas menyang Compute Engine kedadean ing grup conto sing dikelola sing ngawula isi. Ing outage, sampeyan nganyari HTTP njaba (S) Load Balancing konfigurasi lan gagal menyang situs statis ing Panyimpenan awan. Kanggo ngrampungake tutorial iki, sampeyan butuh jeneng domain kadhaptar sing sampeyan kontrol lan pengin digunakake karo dokumen iki. Ing panyebaran produksi, situs web sampeyan bisa uga kalebu luwih akeh file lan kode aplikasi tambahan ing mesin virtual grup conto sampeyan ngatur (VMs) tinimbang ditampilake ing dokumen iki. Cloud Storage banjur dadi tuan rumah liyane versi statis winates sing nyedhiyani fungsi minimal. Ing failover anget Skenario, pangguna ndeleng situs web winates iki nganti grup conto sing dikelola pulih lan bisa ngladeni lalu lintas kanggo pengalaman situs web lengkap. Ing tutorial iki, sampeyan nggunakake sumber daya kanggo nggawe lingkungan kaya sing ditampilake ing gambar ing ngisor iki: Nalika sampeyan kudu gagal liwat, nganyari konfigurasi load balancer kanggo ngarahake lalu lintas menyang Cloud Storage, kaya sing ditampilake ing gambar ing ngisor iki: Pola failover anget iki ngimbangi biaya kanggo mbukak liyane sing dikelola grup instance ing wilayah liyane sing mung sampeyan gunakake nalika wilayah utama gagal. Biaya situs statis nggunakake Cloud Storage luwih murah tinimbang mlaku grup conto liyane ngatur, nanging ana wektu tundha singkat nalika sampeyan nganyari mbukak konfigurasi balancer antarane opsi hosting. Situs web winates pengalaman ing Cloud Storage luwih apik tinimbang situs web sing ora kasedhiya lan miskin pengalaman customer. Kanggo pendekatan alternatif sing nggunakake Cloud DNS tinimbang eksternal HTTP (S) Load Balancing kanggo ngontrol failover, ndeleng Pasang server web sing bisa dibalekake kanthi nggunakake Cloud DNS kanthi Compute Engine lan Cloud Storage. Pola iki migunani yen sampeyan duwe, utawa pengin nggunakake, Cloud DNS. Kanggo mbukak aplikasi sing dipercaya ing Google Cloud, disaranake sampeyan ngrancang infrastruktur aplikasi sampeyan kanggo nangani outages. Gumantung ing aplikasi sampeyan lan kabutuhan bisnis, sampeyan bisa uga kudu failover kadhemen, failover anget, utawa panas pola failover. Kanggo informasi luwih lengkap babagan carane nemtokake pendekatan sing paling apik kanggo aplikasi dhewe, ndeleng ing Pedoman Perencanaan Pemulihan Bencana. Dokumen iki nggunakake dhasar server web Apache, nanging pendekatan sing padha kanggo penyebaran infrastruktur ditrapake kanggo liyane lingkungan aplikasi sampeyan kudu nggawe. ## Tujuan - - Gawe klompok conto sing dikelola regional kanthi gambar VM khusus. - Nggawe ember Cloud Storage. - Nggawe lan ngatur HTTP (S) Load Balancing eksternal. - Tes failover server web sing anget kanthi load balancer sing dianyari konfigurasi. - Tes pemulihan lan gagal maneh kanthi konfigurasi load balancer sing dianyari. ## Biaya Tutorial iki nggunakake komponen Google Cloud sing bisa ditagih ing ngisor iki: - - Compute Engine - Jaringan - Cloud Storage Kanggo nggawe prakiraan biaya adhedhasar proyeksi panggunaan sampeyan, nggunakake kalkulator rega. ## Sadurunge miwiti - - Mlebu menyang akun Google Cloud. Yen sampeyan anyar Google Cloud, nggawe akun kanggo ngevaluasi kinerja produk kita skenario donya nyata. pelanggan anyar uga njaluk $300 ing free kridit kanggo mbukak, nyoba, lan nyebarake beban kerja. - Ing konsol Google Cloud, ing kaca pamilih proyek, pilih utawa gawe proyek Google Cloud. - Priksa manawa tagihan diaktifake kanggo proyek Cloud sampeyan. Sinau carane priksa manawa tagihan diaktifake ing proyek. - Aktifake Compute Engine API. - Instal lan wiwitan Google Cloud CLI. - Ing konsol Google Cloud, ing kaca pamilih proyek, pilih utawa gawe proyek Google Cloud. - Priksa manawa tagihan diaktifake kanggo proyek Cloud sampeyan. Sinau carane priksa manawa tagihan diaktifake ing proyek. - Aktifake Compute Engine API. - Instal lan wiwitan Google Cloud CLI. Sampeyan bisa mbukak Google Cloud CLI ing console tanpa nginstal ing Google Cloud CLI. Kanggo mbukak CLI gcloud ing console, nggunakake Cloud Shell ## Siapke lingkungan Ing bagean iki, sampeyan nemtokake sawetara variabel kanggo jeneng sumber lan panggonan. Variabel iki digunakake dening perintah Google Cloud CLI nalika sampeyan nyebarake sumber daya. Ing dokumen iki, kajaba dicathet, sampeyan ngetik kabeh printah ing Cangkang Awan utawa lingkungan pangembangan lokal sampeyan. - Ganti karo ID proyek sampeyan dhewe. Yen dikarepake, wenehi seselan jeneng sampeyan dhewe kanggo sumber daya kanggo mbantu nggoleki lan ngenali dheweke, kayata PROJECT_ID app Nemtokake rong wilayah, kayata lan us-kulon1 , lan zona ing salah sawijining wilayah kasebut, kayata us-kulon2 . Zona iki nemtokake endi VM dhasar digawe sing digunakake kanggo nggawe gambar kanggo grup conto sing dikelola us-kulon1-a Pungkasan, setel domain sing digunakake kanggo situs web statis, kayata contone.com PROJECT_ID= PROJECT_ID NAME_SUFFIX= app REGION1= us-west1 WILAYAH2= us-west2 ZONE = us-west1-a DOMAIN= conto. com ## Nggawe VPC lan subnet Kanggo nyedhiyakake akses jaringan menyang VM, sampeyan nggawe Virtual Private Cloud (VPC) lan subnet. Yen sampeyan butuh grup conto sing dikelola ing rong wilayah, sampeyan nggawe siji subnet ing saben wilayah. Kanggo informasi luwih lengkap babagan kaluwihan adat mode subnet kanggo ngatur kisaran alamat IP digunakake ing lingkungan, ndeleng Gunakake jaringan VPC mode khusus. - Gawe VPC nganggo mode subnet khusus: jaringan komputasi gcloud nggawe jaringan-$NAME_SUFFIX --subnet-mode=custom Saiki gawe loro subnet ing VPC anyar, siji kanggo saben wilayah. Nemtokake kisaran alamat sampeyan dhewe, kayata lan 10.1.0.0/20 , iku pas ing jangkoan jaringan sampeyan: 10.2.0.0/20 gcloud compute networks subnet nggawe n subnet-$NAME_SUFFIX-$REGION1 n --network=network-$NAME_SUFFIX n --range= 10.1.0.0/20n --region=$REGION1 gcloud compute networks subnet nggawe n subnet-$NAME_SUFFIX-$REGION2 n --network=network-$NAME_SUFFIX n --range= 10.2.0.0/20n --region=$REGION2 ## Nggawe aturan firewall Supaya lalu lintas jaringan mili kanthi bener ing VPC, gunakake aturan firewall. - Nggawe aturan firewall kanggo ngidini lalu lintas web lan mriksa kesehatan kanggo mbukak grup instance balancer lan ngatur: aturan firewall komputasi gcloud nggawe ngidini-http-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1000 n --action=ALLOW n --rules=tcp:80 n -- source-ranges=0.0.0.0/0 n --target-tags=http-server aturan firewall komputasi gcloud nggawe ngidini-health-check-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --action=allow n --direction=ingress n --source-ranges=130.211.0.0/22,35.191. 0.0/16 n --target-tags=allow-health-check n --rules=tcp:80 Aturan HTTP ngidini lalu lintas menyang VM apa wae http-servertag ditrapake, lan saka sembarang sumber nggunakake 0.0.0.0/0 sawetara. Kanggo aturan mriksa kesehatan, kisaran standar kanggo Google Cloud disetel kanggo ngidini platform kasebut kanthi bener mriksa kesehatan sumber daya. Kanggo ngidini lalu lintas SSH kanggo konfigurasi awal saka gambar VM basa, orane katrangan aturan firewall kanggo lingkungan nggunakake --source-rangeparameter. Sampeyan bisa uga kudu nggarap tim jaringan kanggo nemtokake kisaran sumber apa organisasi sampeyan nggunakake Ganti karo skop alamat IP sampeyan dhewe: IP_ADDRESS_SCOPE aturan firewall ngitung gcloud nggawe allow-ssh-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1000 n --action=ALLOW n --rules=tcp:22 n -- sumber-rentang = IP_ADDRESS_SCOPE Sawise sampeyan nggawe aturan firewall, verifikasi yen telung aturan wis ditambahake: daftar aturan firewall komputasi gcloud n --project=$PROJECT_ID n --filter="NETWORK=network-$NAME_SUFFIX"Output conto ing ngisor iki nuduhake telung aturan wis bener digawe: PRIORITAS ARAH JARINGAN NAMA allow-health-check-app network-app INGRESS 1000 tcp:80 ngidini-http-aplikasi jaringan-aplikasi INGRESS 1000 tcp:80 ngidini-ssh-app network-app INGRESS 1000 tcp:22 ## Nggawe lan ngatur gambar VM dhasar Kanggo nggawe VMs podho rupo sing masang tanpa konfigurasi tambahan, sampeyan nggunakake gambar VM adat. Gambar iki njupuk konfigurasi OS lan Apache, lan digunakake kanggo nggawe saben VM ing grup conto sing dikelola ing langkah sabanjure. Ing VM, sampeyan nggawe dhasar file index.html ing disk ngengkel lan pasang menyang /var/www/example.com. File konfigurasi Apache ing /etc/apache2/sites-available/example.com.conf nyedhiyakake konten web saka lokasi disk persisten sing dipasang Diagram ing ngisor iki nuduhake kaca HTML dhasar sing disedhiyakake dening Apache sing disimpen ing hard disk: Sampeyan mbangun lingkungan iki ing langkah-langkah ing ngisor iki. - Gawe VM dhasar kanthi disk persisten sing dipasang: conto komputasi gcloud nggawe vm-base-$NAME_SUFFIX n --zone=$ZONE n --machine-type=n1-standar-1 n --subnet=subnet-$NAME_SUFFIX-$REGION1 n --tags=http-server n --image=debian-10-buster-v20210420 n --image-project=debian-cloud n --boot-disk-size=10GB n --boot-disk-type=pd-balanced n --boot-disk- jeneng piranti=vm-base-$NAME_SUFFIX n --create-disk=type=pd-ssd,name=disk-base-$NAME_SUFFIX,ukuran=10GB,device-name=disk-base-$NAME_SUFFIX Sampeyan nggunakake paramèter ditetepake ing wiwitan document iki kanggo jeneng VM lan nyambung menyang subnet sing bener. Jeneng uga diutus saka paramèter kanggo disk boot lan disk data. Kanggo nginstal lan ngatur situs web prasaja, sambungake menyang basis VM nggunakake SSH: gcloud ngitung ssh vm-base-$NAME_SUFFIX --zone=$ZONE Ing sesi SSH menyang VM, nggawe script kanggo ngatur VM ing editor pilihan sampeyan. Conto ing ngisor iki nggunakake Nano minangka editor: nano configure-vm. Tempel skrip konfigurasi ing ngisor iki menyang file: bin / bash NAME_SUFFIX= app # Gawe direktori kanggo file situs web dhasar sudo mkdir -p /var/www/example.com sudo chmod a+w /var/www/example.com sudo chown -R www-data: /var/www/example.com # Temokake jeneng disk, banjur format lan pasang DISK_NAME="google-disk-base-$NAME_SUFFIX"DISK_PATHfind /dev/disk/by-id -name DISK_NAME}"| xargs -Ireadlink -f n sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,buang $DISK_PATH sudo mount -o discard, default $DISK_PATH /var/www/example.com # Instal Apache sudo apt-get nganyari&& sudo apt-get -y nginstal apache2 # Tulis file HTML dhasar menyang disk persisten sing dipasang sudo tee -a /var/www/example.com/index.html >/dev/null EOF' HA / DR conto

Welcome to a Compute Engine website with warm failover to Cloud Storagep>

*:80> ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined EOF # Aktifake file konfigurasi Apache lan muat ulang layanan sudo a2dissite 000-standar sudo a2ensite conto.com.conf sudo systemctl reload apache2 Nganyari ing variabel kanggo cocog Nilai disetel ing wiwitan dokumen iki, kayata Aplikasi NAME_SUFFIX. Tulis file lan metu saka editor sampeyan. Contone, ing Nano sampeyan nggunakake Ctrl-Oto nulis file kasebut, banjur metu nganggo Ctrl-X. Gawe skrip konfigurasi bisa dieksekusi, banjur jalanake: chmod +x configure-vm../configure-vm. Metu sesi SSH menyang VM: metu Entuk alamat IP VM lan gunakake curl kanggo ndeleng kaca web dhasar: curl $(gcloud compute instance njlèntrèhaké vm-base-$NAME_SUFFIX n --zone $ZONE n --format="value(networkInterfaces.accessConfigs.[0].natIPn Situs web dhasar bali, kaya sing ditampilake ing conto output ing ngisor iki: HA / DR conto

Welcome to a Compute Engine website with warm failover to Cloud Storagep>

gcloud komputasi gambar nggawe gambar-disk-$NAME_SUFFIX n --source-disk=disk-base-$NAME_SUFFIX n --source-disk-zone=$ZONE # Gawe template conto gcloud compute instance-templates nggawe cithakan-$NAME_SUFFIX-$REGION1 n --machine-type=n1-standar-1 n --subnet=projects/$PROJECT_ID/regions/$REGION1/subnetworks/subnet-$NAME_SUFFIX-$REGION1 n --region=$REGION1 n --tags=http-server n --metadatastartup-script /bin/bashn'echo\ UUIDblkid\ -s\ UUID\ -o\ value\ /dev/sdb /var/www/example. com\ ext4\ discard,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAME_SUFFIX n --create-disk=image=image-disk-$NAME_SUFFIX ,busak otomatis=ya gcloud compute instance-templates nggawe cithakan-$NAME_SUFFIX-$REGION2 n --machine-type=n1-standar-1 n --subnet=projects/$PROJECT_ID/regions/$REGION2/subnetworks/subnet-$NAME_SUFFIX-$REGION2 n --region=$REGION2 n --tags=http-server n --metadatastartup-script /bin/bashn'echo\ UUIDblkid\ -s\ UUID\ -o\ value\ /dev/sdb /var/www/example. com\ ext4\ discard,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAME_SUFFIX n --create-disk=image=image-disk-$NAME_SUFFIX ,busak otomatis=ya # Gawe priksa kesehatan kanggo conto VM gcloud compute health-checks nggawe http-basic-check-$NAME_SUFFIX n --port 80 # Gawe klompok conto sing dikelola gcloud compute instance-groups ngatur nggawe instance-group-$NAME_SUFFIX-$REGION1 n --template=template-$NAME_SUFFIX-$REGION1 n --size=2 n --region=$REGION1 n --health-check=http- dhasar-priksa-$NAME_SUFFIX gcloud compute instance-groups ngatur nggawe instance-group-$NAME_SUFFIX-$REGION2 n --template=template-$NAME_SUFFIX-$REGION2 n --size=2 n --region=$REGION2 n --health-check=http- dhasar-priksa-$NAME_SUFFIX ## Nggawe lan ngatur imbangan beban Kanggo pangguna ngakses situs web sampeyan, sampeyan kudu ngidini lalu lintas menyang VM sing mlaku ing grup conto sing dikelola. Sampeyan uga pengin pangalihan kanthi otomatis lalu lintas menyang VM anyar yen ana kegagalan zona ing grup conto sing dikelola. Ing bagean ing ngisor iki, sampeyan nggawe imbangan beban eksternal kanthi layanan backend kanggo lalu lintas HTTP ing port 80, gunakake pemeriksaan kesehatan sing digawe ing langkah sadurunge, lan peta IP eksternal alamat liwat menyang layanan backend. Kanggo informasi luwih lengkap, ndeleng Cara nyiyapake imbangan beban HTTP eksternal sing prasaja. - Gawe lan konfigurasi load balancer kanggo aplikasi sampeyan: # Konfigurasi aturan port kanggo port HTTP 80 gcloud compute instance-groups set-named-ports n instance-group-$NAME_SUFFIX-$REGION1 n --named-ports http:80 n --region $REGION1 gcloud compute instance-groups set-named-ports n instance-group-$NAME_SUFFIX-$REGION2 n --named-ports http:80 n --region $REGION2 # Gawe layanan backend lan tambahake grup conto sing dikelola gcloud compute backend-services nggawe n web-backend-service-$NAME_SUFFIX n --protocol=HTTP n --port-name=http n --health-checks=http-basic-check-$NAME_SUFFIX n --global gcloud ngitung backend-services add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION1 n --instance-group-region=$REGION1 n --global gcloud compute backend-services add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION2 n --instance-group-region=$REGION2 n --global # Gawe peta URL kanggo layanan backend gcloud compute url-maps nggawe web-map-http-$NAME_SUFFIX n --service web-backend-service-$NAME_SUFFIX # Konfigurasi terusake kanggo lalu lintas HTTP gcloud ngitung target-http-proxy nggawe n http-lb-proxy-$NAME_SUFFIX n --url-map web-map-http-$NAME_SUFFIX gcloud compute forwarding-rules nggawe n http-content-rule-$NAME_SUFFIX n --global n --target-http-proxy=http-lb-proxy-$NAME_SUFFIX n --ports=80 Entuk alamat IP aturan penerusan kanggo lalu lintas web: IP_ADDRESSgcloud compute forwarding-aturan nggambarake http-content-rule-$NAME_SUFFIX n --global n --format="value(IPAddressn Gunakake curl, utawa mbukak browser web, kanggo ndeleng situs web nggunakake IP alamat load balancer saka langkah sadurunge: nggulung $IP_ADDRESS Butuh sawetara menit kanggo load balancer rampung nyebarke lan kanggo langsung ngarahake lalu lintas menyang backend sampeyan. Kesalahan HTTP 404 bali yen load balancer isih deploying. Yen perlu, ngenteni sawetara menit lan coba ngakses situs web maneh. Situs web dhasar bali, kaya sing ditampilake ing conto output ing ngisor iki: HA / DR conto

Welcome to a Compute Engine website with warm failover to Cloud Storagep>

grup conto sing dikelola pulih lan bisa nglayani lalu lintas kanggo situs web lengkap pengalaman. - Verifikasi domain sing pengin digunakake karo ember Cloud Storage. Gawe ember Cloud Storage kanggo cocog karo jeneng domain sing sampeyan duwe lan pengin nggunakake: gsutil mb gsstatic-web.$DOMAIN Ing Variabel DOMAIN sing ditetepake ing wiwitan dokumen iki digunakake, kayata . Conto iki nyimpen file statis ing contone.com static-web.example.com. Nggawe file lokal sing sampeyan nyalin menyang ember Cloud Storage ing langkah sabanjure: cat #< index.html HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

curlagain, or open your web browser, to access the IP address of the load balancer: curl $IP_ADDRESS It might take a few minutes for the load balancer to update the configuration and to correctly direct traffic back to your managed instance groups. If needed, wait a few minutes and try to access the website again. The main website from the managed instance groups is returned, as shown in the following example output: HA / DR example p>Welcome to a Compute Engine website with warm failover to Cloud Storagep> ## Clean up To avoid incurring charges to your Google Cloud account for the resources used in this tutorial, either delete the project that contains the resources, or keep the project and delete the individual resources. To delete the individual resources created in this document, complete the following steps: - Delete the Cloud Storage bucket: gsutil rm -r gsstatic-web.$DOMAIN Delete the load balancer configuration: gcloud compute forwarding-rules delete n http-content-rule-$NAME_SUFFIX --global --quiet gcloud compute target-http-proxies delete n http-lb-proxy-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-bucket-$NAME_SUFFIX --quiet gcloud compute backend-services delete n web-backend-service-$NAME_SUFFIX --global --quiet gcloud compute backend-buckets delete web-bucket-$NAME_SUFFIX --quiet Delete the managed instance groups and health check: gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION1 n --region=$REGION1 --quiet gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION2 n --region=$REGION2 --quiet gcloud compute health-checks delete http-basic-check-$NAME_SUFFIX --quiet Delete the instance templates, images, base VM, and persistent disks: gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION1 --quiet gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION2 --quiet gcloud compute images delete image-$NAME_SUFFIX --quiet gcloud compute images delete image-disk-$NAME_SUFFIX --quiet gcloud compute instances delete vm-base-$NAME_SUFFIX n --zone=$ZONE --quiet Delete the firewall rules. gcloud compute firewall-rules delete n allow-health-check-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-ssh-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-http-$NAME_SUFFIX --quiet Delete the subnet and VPC. gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION1 --region=$REGION1 --quiet gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION2 --region=$REGION2 --quiet gcloud compute networks delete network-$NAME_SUFFIX --quiet ## What's next - - For an alternative approach that uses Cloud DNS instead of external HTTP(S) Load Balancing to control the failover, see Deploy a warm recoverable web server using Cloud DNS with Compute Engine and Cloud Storage. This pattern is useful if you have, or want to use, Cloud DNS. - To learn how how to determine the best approach for your own applications and which recovery method to use, see the Disaster recovery planning guide. - To see other patterns for applications, such as cold and hot failover, see Disaster recovery scenarios for applications. - For more ways to handle scale and availability, see the Patterns for scalable and resilient apps. - Explore reference architectures, diagrams, tutorials, and best practices about Google Cloud. Take a look at our Cloud Architecture Center.