-
Set default region
gcloud config set compute/zone us-central1-f
-
Set default zone
gcloud config set compute/region us-central1
-
Create VM
www1
gcloud compute instances create www1 \ --zone=us-central1-f \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " <h3>Web Server: www1</h3>" | tee /var/www/html/index.html'
-
Create VM
www2
gcloud compute instances create www2 \ --zone=us-central1-f \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " <h3>Web Server: www2</h3>" | tee /var/www/html/index.html'
-
Create VM
www3
gcloud compute instances create www3 \ --zone=us-central1-f \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo " <h3>Web Server: www3</h3>" | tee /var/www/html/index.html'
-
firewall rule
gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80
-
Dapetin ip address
gcloud compute instances list
-
Cek apakah web server udah jalan
curl http://[EXTERNAL_IP]
-
buat static ip untuk load balancer
gcloud compute addresses create network-lb-ip-1 \ --region us-central1
-
buat health check
gcloud compute http-health-checks create basic-check
-
add target pool
gcloud compute target-pools create www-pool \ --region us-central1 --http-health-check basic-check
-
add instances to pool
gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
-
add forwarding rule
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
-
cek ip address forwarding rule
gcloud compute forwarding-rules describe www-rule --region us-central1
-
simpan ke variable
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region us-central1 --format="json" | jq -r .IPAddress)
-
request ke ip address
while true; do curl -m1 $IPADDRESS; done
-
Buat load balancer template
gcloud compute instance-templates create lb-backend-template \ --region=us-central1 \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --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'
-
Buat instance group
gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone=us-central1-f
-
Buat health check
gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
-
Set global static ip address
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
-
Buat health check
gcloud compute health-checks create http http-basic-check \ --port 80
-
Buat backend service
gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
-
Add instance group to backend service
gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone=us-central1-f \ --global
-
Buat url map
gcloud compute url-maps create web-map-http \ --default-service web-backend-service
-
Buat target http proxy
gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
-
Buat global forwarding rule
gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Navigation > Network services > Load balancing