GSP041

Ringkasan
Load Balancer Aplikasi internal sangat penting untuk membangun aplikasi internal yang andal, aman, dan mudah dikelola yang mendukung operasi bisnis Anda. Lab ini akan mengajarkan cara mendistribusikan traffic jaringan dalam jaringan cloud pribadi tanpa mengekspos virtual machine (VM) Anda secara langsung ke internet publik, sehingga layanan Anda tetap aman dan efisien.
Anda akan membangun pola arsitektur yang disederhanakan, tetapi sangat umum:
- "Tingkat Web" (situs yang ditampilkan kepada publik) yang perlu meminta bantuan layanan internal lainnya.
- "Tingkat Layanan Internal" (kalkulator bilangan prima) yang melakukan tugas-tugas tertentu dan didistribusikan di beberapa mesin.
Penyiapan ini memastikan bahwa meskipun satu bagian layanan internal Anda sibuk atau tidak berfungsi, keseluruhan sistem tetap berjalan lancar, karena load balancer akan otomatis mengarahkan permintaan ke mesin yang responsif.
Yang akan Anda lakukan
- Mempelajari komponen yang membentuk Load Balancer Internal
- Membuat grup mesin backend (kalkulator bilangan prima)
- Menyiapkan load balancer internal untuk mengarahkan traffic internal ke mesin backend.
- Menguji load balancer internal dari mesin internal lain
- Menyiapkan server web yang dapat diakses publik yang menggunakan load balancer internal untuk mendapatkan hasil dari layanan "kalkulator bilangan prima" internal.
Prasyarat
- Pengetahuan dasar tentang Google Cloud Compute Engine: Memahami apa itu instance Virtual Machine (VM).
- Konsep dasar jaringan: Apa itu alamat IP.
- Command line Unix/Linux dasar: Cara mengetik perintah di terminal.
- Beberapa pengetahuan tentang VPC (Virtual Private Cloud): Memahami bahwa resource Google Cloud Anda berada di jaringan pribadi.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Menetapkan region dan zona
- Tetapkan region dan zona project untuk lab ini:
gcloud config set compute/region {{{project_0.default_region | Region}}}
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
- Buat variabel untuk region:
export REGION={{{project_0.default_region | Region}}}
- Buat variabel untuk zona:
export ZONE={{{project_0.default_zone | Zone}}}
Pelajari lebih lanjut dari dokumentasi Region & Zona.
Catatan: Saat Anda menjalankan gcloud
di mesin Anda sendiri, setelan konfigurasi akan disimpan di seluruh sesi. Namun, di Cloud Shell, Anda perlu menetapkan ini untuk setiap sesi atau koneksi ulang baru.
Tugas 1. Membuat lingkungan virtual
Lingkungan virtual menjaga software project Anda tetap rapi dan memastikan kode Anda selalu berjalan dengan versi alat tertentu yang dibutuhkan.
Lingkungan virtual python digunakan untuk mengisolasi penginstalan paket dari sistem.
- Instal lingkungan
virtualenv
:
sudo apt-get install -y virtualenv
- Bangun lingkungan virtual:
python3 -m venv venv
- Aktifkan lingkungan virtual:
source venv/bin/activate
Tugas 2. Membuat Grup Instance Terkelola Backend
Dengan menggunakan "grup instance terkelola", Google Cloud dapat otomatis membuat dan mempertahankan salinan layanan Anda yang identik. Jika satu salinan gagal, Google Cloud akan menggantinya, sehingga layanan Anda menjadi lebih andal.
Membuat skrip startup
Skrip ini seperti serangkaian petunjuk yang akan diikuti oleh tiap VM baru dalam grup Anda saat dimulai. Skrip kita akan menyertakan server web kecil yang ditulis dalam Python yang dapat memberi tahu kita apakah suatu angka adalah bilangan prima (True) atau bukan (False).
- Mulai dengan membuat skrip
backend.sh
di direktori utama:
touch ~/backend.sh
- Klik Open Editor dengan mengklik ikon di bagian atas Cloud Shell. Jika diminta, klik Open in a new window.

Catatan: Jika Anda tidak melihat ikon Editor Kode, tutup panel kiri dengan mengklik ikon Navigation menu.
Meluncurkan Editor Kode akan memindahkan Cloud Shell ke jendela baru dan membuka Editor Kode. Setelah beberapa detik, ruang kerja akan muncul.
-
Pilih file backend.sh
di panel kiri.
-
Sekarang tambahkan skrip berikut ke editor di sebelah kanan:
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/serveprimes.py
import http.server
def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1))
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/plain")
s.end_headers()
s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8')))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
- Klik File > Save.
Membuat template instance
- Klik Open Terminal di toolbar Cloud Shell. Masukkan perintah berikut untuk membuat template instance
primecalc
:
gcloud compute instance-templates create primecalc \
--metadata-from-file startup-script=backend.sh \
--no-address --tags backend --machine-type=e2-medium
Ini adalah "blueprint" untuk VM backend. Perhatikan bahwa VM ini memiliki --no-address
, yang berarti VM backend ini tidak akan memiliki akses internet publik untuk keamanan.
Membuka firewall
Anda perlu membuat aturan firewall untuk mengizinkan traffic di port 80 (traffic HTTP standar) menjangkau VM backend. Hal ini sangat penting agar Load Balancer Aplikasi internal dan health check dapat berkomunikasi dengan VM tersebut.
- Buka firewall ke port
80
:
gcloud compute firewall-rules create http --network default --allow=tcp:80 \
--source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan.
Membuat template instance dan membuka firewall di port 80
Membuat grup instance
- Selanjutnya, buat grup instance terkelola bernama
backend
. Mulai dengan 3 instance:
gcloud compute instance-groups managed create backend \
--size 3 \
--template primecalc \
--zone $ZONE
- Setelah selesai berjalan, kembali ke tab Konsol. Buka Compute Engine > VM instances. Sekarang Anda akan melihat tiga VM backend yang dibuat oleh grup instance Anda.

Backend kini siap melayani traffic.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan.
Membuat grup instance
Tugas 3. Menyiapkan load balancer internal
Anda akan membuat satu pintu masuk VIP pribadi untuk layanan internal Anda. Dengan demikian, aplikasi internal lainnya dapat menjangkau "kalkulator bilangan prima" Anda secara andal, tanpa perlu mengetahui VM backend spesifik yang aktif atau tersedia.
Sekarang, mari kita siapkan Load Balancer Internal dan menghubungkannya ke grup instance yang baru saja Anda buat.
Load Balancer Internal terdiri atas tiga bagian utama:
- Aturan Penerusan: Ini adalah alamat IP pribadi sebenarnya yang akan digunakan oleh layanan internal lainnya untuk mengirim permintaan. Aturan ini "meneruskan" traffic ke layanan backend Anda.
- Layanan Backend: Ini menentukan cara load balancer mendistribusikan traffic ke instance VM Anda. Layanan ini juga mencakup health check.
- Health Check: Ini adalah pemeriksaan berkelanjutan yang memantau responsivitas VM backend Anda. Load balancer hanya akan mengirimkan traffic ke mesin yang lulus health check, sehingga memastikan layanan Anda selalu tersedia.
Diagram berikut menunjukkan cara instance di-load balance menggunakan beberapa instance di beberapa grup backend di zona yang berbeda.

Membuat health check
- Health check diperlukan untuk memastikan load balancer hanya mengirimkan traffic ke instance yang responsif. Layanan backend Anda adalah server HTTP. Jadi, periksa apakah layanan tersebut merespons dengan "200 OK" di jalur URL tertentu (dalam hal ini,
/2
untuk memeriksa apakah 2 adalah bilangan prima atau bukan):
gcloud compute health-checks create http ilb-health --request-path /2
Karena layanan HTTP disediakan, periksa apakah respons 200 pada jalur URL tertentu (dalam hal ini /2
untuk memeriksa apakah 2 adalah bilangan prima atau bukan) diisi atau tidak:
Membuat layanan backend
- Sekarang, buat layanan backend bernama
prime-service
:
gcloud compute backend-services create prime-service \
--load-balancing-scheme internal --region=$REGION \
--protocol tcp --health-checks ilb-health
Layanan ini akan mengikat health check ke grup instance.
Menambahkan grup instance ke layanan backend
- Hubungkan grup backend instance Anda ke layanan backend prime-service. Hal ini akan memberi tahu load balancer mesin mana yang harus dikelolanya:
gcloud compute backend-services add-backend prime-service \
--instance-group backend --instance-group-zone=$ZONE \
--region=$REGION
Membuat aturan penerusan
- Terakhir, buat aturan penerusan bernama
prime-lb
dengan IP statis :
gcloud compute forwarding-rules create prime-lb \
--load-balancing-scheme internal \
--ports 80 --network default \
--region=$REGION --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \
--backend-service prime-service
Layanan "penghitungan bilangan prima" internal Anda kini telah disiapkan sepenuhnya dan siap dikueri melalui alamat IP internalnya.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan.
Menyiapkan load balancer internal
Tugas 4. Menguji load balancer
Langkah ini sangat penting untuk memastikan bahwa Load Balancer Aplikasi internal Anda mengarahkan traffic dengan benar ke layanan backend. Hal ini membuktikan bahwa aplikasi internal lainnya kini dapat menjangkau layanan Anda secara andal melalui satu alamat IP yang stabil, sehingga memastikan operasi yang berkelanjutan.
Untuk menguji load balancer, Anda perlu membuat instance VM baru di jaringan yang sama dengan Load Balancer Aplikasi internal Anda. Load Balancer Aplikasi internal hanya dapat diakses dari dalam jaringan cloud pribadi Anda, bukan langsung dari Cloud Shell (yang berada di luar jaringan tertentu ini).
- Dengan menggunakan
gcloud
di Cloud Shell, buat instance pengujian sederhana:
gcloud compute instances create testinstance \
--machine-type=e2-standard-2 --zone $ZONE
- Kemudian, gunakan SSH untuk mengakses instance tersebut:
gcloud compute ssh testinstance --zone $ZONE
Jika diminta, ketik Y, lalu tekan Enter dua kali untuk melanjutkan.
Mengirim kueri ke load balancer
- Dari dalam instance pengujian, gunakan
curl
untuk mengirim permintaan ke alamat IP Load Balancer Aplikasi internal Anda dan menanyakan apakah beberapa angka merupakan bilangan prima atau bukan:
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Output-nya akan menampilkan True atau False persis di samping command line Anda, seperti ini:
user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Trueuser@testinstance:~$ exit
Anda akan melihat bahwa 2 dan 5 diidentifikasi dengan benar sebagai bilangan prima, tetapi 4 tidak. Hal ini mengonfirmasi bahwa Load Balancer Aplikasi internal berfungsi. Load Balancer ini menerima permintaan dan berhasil meneruskannya ke salah satu VM "perhitungan bilangan prima" backend Anda.
Layanan merespons dengan benar: bahwa 2 dan 5 adalah bilangan prima, tetapi 4 bukan.
- Keluar dari instance pengujian:
exit
- Kemudian, hapus karena tidak diperlukan lagi:
gcloud compute instances delete testinstance --zone=$ZONE
- Ketik Y untuk mengonfirmasi penghapusan.
Tugas 5. Membuat server web yang dapat diakses publik
Sekarang Anda paham bagaimana aplikasi yang dapat diakses publik (seperti situs) dapat memanfaatkan layanan internal Anda. Anda akan membuat server web yang dapat diakses publik yang akan menggunakan layanan "kalkulator bilangan prima" internal (melalui Load Balancer Aplikasi internal) untuk menampilkan matriks bilangan prima.
- Pertama, buat skrip startup untuk "frontend" yang dapat diakses publik ini di direktori utama:
touch ~/frontend.sh
- Anda akan tetap melihat Editor Kode terbuka. Jika tidak terbuka, luncurkan Editor Kode dengan memilihnya di shell:

Setelah beberapa detik, ruang kerja akan muncul.
- Sekarang tambahkan skrip ini ke editor di sebelah kanan:
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/getprimes.py
import urllib.request
from multiprocessing.dummy import Pool as ThreadPool
import http.server
PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer
def get_url(number):
return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8')
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
i = int(s.path[1:]) if (len(s.path)>1) else 1
s.wfile.write("<html><body><table>".encode('utf-8'))
pool = ThreadPool(10)
results = pool.map(get_url,range(i,i+100))
for x in range(0,100):
if not (x % 10): s.wfile.write("<tr>".encode('utf-8'))
if results[x]=="True":
s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8'))
else:
s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8'))
s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8'))
if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8'))
s.wfile.write("</table></body></html>".encode('utf-8'))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
- Klik File > Save.
Membuat frontend instance
- Di Cloud Shell, buat instance bernama
frontend
yang akan menjalankan server web ini:
gcloud compute instances create frontend --zone=$ZONE \
--metadata-from-file startup-script=frontend.sh \
--tags frontend --machine-type=e2-standard-2
Buka firewall untuk frontend
- Ini adalah server yang dapat diakses publik. Jadi, Anda perlu membuka firewall-nya untuk mengizinkan traffic dari mana pun di internet (0.0.0.0/0) di port 80:
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \
--source-ranges 0.0.0.0/0 --target-tags frontend
-
Di Navigation menu, klik Compute Engine > VM instances. Muat ulang browser jika Anda tidak melihat instance frontend
.
-
Buka External IP untuk frontend di browser Anda:

Anda akan melihat matriks seperti ini, yang menampilkan semua bilangan prima hingga 100 dalam warna hijau:

- Coba tambahkan angka ke jalur, seperti http://your-ip/10000, untuk melihat semua bilangan prima yang dimulai dari angka tersebut.

Catatan: Skrip startup contoh tidak secara efektif menghitung bilangan prima. Selain itu, aplikasi ini tidak memiliki algoritma koreksi atau pendeteksian error. Menambahkan angka besar ke jalur akan menyebabkan layanan mengalami waktu tunggu habis.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan.
Membuat server web yang dapat diakses publik
Selamat!
Anda telah berhasil membangun layanan internal yang andal menggunakan Load Balancer Aplikasi internal Google Cloud dan menunjukkan cara aplikasi publik dapat memanfaatkannya dengan aman.
Langkah berikutnya/Pelajari lebih lanjut
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 18 Juli 2025
Lab Terakhir Diuji pada 18 Juli 2025
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.