Če želite konfigurirati uravnoteženje obremenitve v Google Cloud Platform (GCP) za primer uporabe, ki vključuje več zalednih spletnih strežnikov, ki izvajajo WordPress, z zahtevo, da baza podatkov ostane dosledna v teh primerih, je treba slediti strukturiranemu pristopu, ki vključuje več ključnih komponent in ponujenih storitev z GCP. Ta postopek zagotavlja visoko razpoložljivost, razširljivost in doslednost podatkov, ki so ključnega pomena za robustno spletno aplikacijo.
Konfiguracija po korakih
1. Nastavitev zalednih spletnih strežnikov
1. Omogočanje navideznih strojev (VM):
– Uporabite Google Compute Engine za ustvarjanje več virtualnih strojev, ki bodo gostili primerke WordPress. Zagotovite, da so ti VM-ji v isti regiji, vendar so lahko v različnih območjih za visoko razpoložljivost.
– Primer: ustvarite tri navidezne računalnike z imenom `wordpress-vm-1`, `wordpress-vm-2` in `wordpress-vm-3`.
2. Namestite WordPress:
– Namestite potreben sklad programske opreme (npr. Apache/Nginx, PHP) na vsak VM.
– Namestite WordPress na vsak VM. Prepričajte se, da so konfiguracijske datoteke WordPress (`wp-config.php`) nastavljene za povezavo z osrednjo zbirko podatkov, o čemer bomo razpravljali v naslednjih korakih.
2. Centralizirana nastavitev baze podatkov
1. Uporabite Cloud SQL za MySQL:
– Ustvarite primerek Cloud SQL v GCP, ki bo služil kot centralizirana baza podatkov za vse primerke WordPress. To zagotavlja doslednost in poenostavlja upravljanje baze podatkov.
– Primer: ustvarite primerek Cloud SQL z imenom `wordpress-db`.
2. Konfiguracija baze podatkov:
– Konfigurirajte instanco Cloud SQL s potrebnimi bazami podatkov in uporabniki, ki jih zahteva WordPress.
– Zagotovite, da datoteka `wp-config.php` na vsakem primerku WordPress kaže na ta primerek Cloud SQL.
3. Omogoči zasebni IP:
– Omogočite zasebni IP za instanco Cloud SQL, da zagotovite varno in učinkovito komunikacijo med spletnimi strežniki in bazo podatkov znotraj istega VPC.
3. Shranjevanje predmetov za medijske datoteke
1. Uporabite shrambo v oblaku:
– Shranjujte medijske datoteke (nalaganja) na skupno lokacijo, da zagotovite doslednost v vseh primerih. V ta namen uporabite Google Cloud Storage.
– Primer: ustvarite vedro za shranjevanje v oblaku z imenom `wordpress-media`.
2. Konfigurirajte WordPress za uporabo shranjevanja v oblaku:
– Uporabite vtičnik ali kodo po meri, da konfigurirate WordPress za nalaganje predstavnostnih datotek v vedro za shranjevanje v oblaku namesto v lokalni datotečni sistem.
4. Konfiguracija izravnalnika obremenitve
1. Ustvarite Global HTTP(S) Load Balancer:
– Pomaknite se do konzole GCP in ustvarite nov globalni izravnalnik obremenitve HTTP(S).
– Konfigurirajte sprednji del za uporabo globalnega naslova IP in nastavite potrebna potrdila SSL, če je zahtevan HTTPS.
2. Konfiguracija zaledja:
– Dodajte predhodno ustvarjene virtualne stroje ('wordpress-vm-1', 'wordpress-vm-2', 'wordpress-vm-3') v zaledno storitev izravnalnika obremenitve.
– Konfigurirajte preglede zdravja za spremljanje stanja vsakega primerka WordPress. Običajno preverjanje stanja lahko vključuje pošiljanje zahtev HTTP določeni končni točki (npr. `/health`) in pričakovanje odgovora 200 OK.
3. Afiniteta seje:
– Po potrebi konfigurirajte afiniteto seje, da zagotovite, da uporabniki vzdržujejo dosledno sejo z enim primerkom zaledja med interakcijo s spletnim mestom.
5. Konfiguracija samodejnega skaliranja
1. Omogoči samodejno skaliranje:
– Konfigurirajte zaledno storitev za uporabo samodejnega skaliranja na podlagi meritev, kot je izkoriščenost CPE-ja ali stopnja zahtev. To zagotavlja, da se lahko število primerkov WordPress poveča ali zmanjša glede na prometne zahteve.
– Primer: nastavite ciljno izkoriščenost procesorja na 60 % in konfigurirajte najmanjše in največje število primerkov.
6. Konfiguracija DNS
1. Posodobite zapise DNS:
– Zapise DNS vaše domene usmerite na naslov IP izravnalnika obremenitve. To zagotavlja, da je ves dohodni promet usmerjen skozi izravnalnik obremenitve.
Primer konfiguracije
Ustvarjanje virtualnih strojev in namestitev WordPressa
bash gcloud compute instances create wordpress-vm-1 --zone=us-central1-a --machine-type=e2-medium --image-family=debian-10 --image-project=debian-cloud gcloud compute instances create wordpress-vm-2 --zone=us-central1-b --machine-type=e2-medium --image-family=debian-10 --image-project=debian-cloud gcloud compute instances create wordpress-vm-3 --zone=us-central1-c --machine-type=e2-medium --image-family=debian-10 --image-project=debian-cloud
Namestite Apache, PHP in WordPress na vsako instanco:
bash sudo apt update sudo apt install apache2 php php-mysql -y wget https://wordpress.org/latest.tar.gz tar -xvf latest.tar.gz sudo mv wordpress/* /var/www/html/ sudo chown -R www-data:www-data /var/www/html/ sudo systemctl restart apache2
Konfiguriranje Cloud SQL
Ustvarite primerek Cloud SQL:
bash gcloud sql instances create wordpress-db --tier=db-n1-standard-1 --region=us-central1 gcloud sql users set-password root --host=% --instance=wordpress-db --password=yourpassword
Konfiguriranje izravnalnika obremenitve
Ustvarite globalni izravnalnik obremenitve HTTP(S):
1. Konfiguracija sprednjega dela:
– Nastavite globalni naslov IP.
– Če uporabljate HTTPS, konfigurirajte potrdila SSL.
2. Konfiguracija zaledja:
– Dodajte VM v zaledno storitev.
– Nastavite zdravstvene preglede.
bash gcloud compute health-checks create http wordpress-health-check --request-path=/health gcloud compute backend-services create wordpress-backend-service --protocol=HTTP --health-checks=wordpress-health-check --global gcloud compute backend-services add-backend wordpress-backend-service --instance-group=wordpress-vm-group --global
3. Zemljevid URL in ciljni proxy:
– Ustvarite preslikavo URL-jev in ciljajte proxy HTTP(S).
bash gcloud compute url-maps create wordpress-url-map --default-service=wordpress-backend-service gcloud compute target-http-proxies create wordpress-http-proxy --url-map=wordpress-url-map gcloud compute forwarding-rules create wordpress-http-forwarding-rule --global --target-http-proxy=wordpress-http-proxy --ports=80
Zagotavljanje doslednosti
Dosleden dostop do baze podatkov je dosežen z uporabo centralizirane instance Cloud SQL. Konsistentnost predstavnostnih datotek je zagotovljena z uporabo storitve Cloud Storage, do katere vse instance dostopajo enotno. Afiniteto seje je mogoče konfigurirati za vzdrževanje uporabniških sej z določenimi zalednimi instancami, če je potrebno.
Končne ugotovitve
- Varnost: Zagotovite, da so vzpostavljena ustrezna pravila požarnega zidu za omejitev dostopa do baze podatkov in drugih občutljivih komponent.
- Spremljanje in beleženje: Uporabite storitve spremljanja in beleženja GCP, da spremljate delovanje in zdravje svoje infrastrukture.
- Varnostno kopiranje in obnovitev: Izvedite strategijo varnostnega kopiranja za svoj primerek Cloud SQL in vedro za shranjevanje v oblaku, da preprečite izgubo podatkov.
Če sledite tem korakom, lahko na GCP konfigurirate robustno in razširljivo okolje WordPress z uravnoteženo obremenitvijo, ki zagotavlja visoko razpoložljivost in doslednost podatkov v več instancah zaledja.
Druga nedavna vprašanja in odgovori v zvezi EITC/CL/GCP Google Cloud Platform:
- V kolikšni meri je GCP koristen za razvoj, uvajanje in gostovanje spletnih strani ali aplikacij?
- Kako izračunati obseg naslovov IP za podomrežje?
- Kakšna je razlika med Cloud AutoML in Cloud AI Platform?
- Kakšna je razlika med Big Table in BigQuery?
- Ali je smiselno izvajati uravnoteženje obremenitve, če uporabljate samo en zaledni spletni strežnik?
- Če Cloud Shell ponuja vnaprej konfigurirano lupino s SDK-jem za oblak in ne potrebuje lokalnih virov, kakšna je prednost uporabe lokalne namestitve SDK-ja za oblak namesto uporabe Cloud Shell s konzolo Cloud Console?
- Ali obstaja mobilna aplikacija za Android, ki jo je mogoče uporabiti za upravljanje Google Cloud Platform?
- Kakšni so načini za upravljanje Google Cloud Platform?
- Kaj je računalništvo v oblaku?
- Kakšna je razlika med Bigqueryjem in Cloud SQL
Oglejte si več vprašanj in odgovorov v EITC/CL/GCP Google Cloud Platform