Checkpoint
Create GCS bucket
/ 10
Copy startup script and code to Cloud Storage bucket
/ 10
Deploy instances and configure network
/ 20
Create managed instance groups
/ 20
Create HTTP(S) load balancers
/ 10
Update the frontend instances
/ 10
Scaling GCE
/ 10
Update the website
/ 10
Menghosting Aplikasi Web di Google Cloud Menggunakan Compute Engine
- GSP662
- Ringkasan
- Penyiapan dan persyaratan
- Tugas 1. Mengaktifkan Compute Engine API
- Tugas 2. Membuat bucket Cloud Storage
- Tugas 3. Membuat clone repositori sumber
- Tugas 4. Membuat instance Compute Engine
- Tugas 5. Membuat grup instance terkelola
- Tugas 6. Membuat load balancer
- Tugas 7. Menskalakan Compute Engine
- Tugas 8. Mengupdate situs
- Selamat!
GSP662
Ringkasan
Ada banyak cara untuk men-deploy situs di dalam Google Cloud. Setiap solusi menawarkan fitur, kapabilitas, dan level control yang berbeda. Compute Engine menawarkan level kontrol yang mendalam atas infrastruktur yang digunakan untuk menjalankan situs. Namun, layanan ini memerlukan pengelolaan operasional yang sedikit lebih banyak dibandingkan solusi seperti Google Kubernetes Engines (GKE), App Engine, atau lainnya. Dengan Compute Engine, Anda memiliki kontrol menyeluruh atas berbagai aspek infrastruktur, termasuk virtual machine, load balancer, dan lainnya.
Di lab ini Anda akan men-deploy contoh aplikasi, yakni situs e-commerce "Fancy Store", untuk menunjukkan bagaimana situs dapat di-deploy dan diskalakan dengan mudah menggunakan Compute Engine.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara:
- Membuat instance Compute Engine
- Membuat template instance dari instance source
- Membuat grup instance terkelola
- Membuat dan menguji health check grup instance terkelola
- Membuat Load Balancer HTTP(S)
- Membuat health check load balancer
- Menggunakan Jaringan Penayangan Konten (CDN) untuk Caching
Di akhir lab, Anda akan memiliki instance di dalam grup instance terkelola untuk menyediakan autohealing, load balancing, penskalaan otomatis, dan update berkelanjutan untuk situs Anda.
Penyiapan dan persyaratan
Sebelum mengklik tombol Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info 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.
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.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
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:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Menetapkan region dan zona
Resource Compute Engine tertentu berada di region dan zona. Region adalah lokasi geografis spesifik tempat Anda dapat menjalankan resource. Setiap region memiliki satu atau beberapa zona.
Jalankan perintah gcloud berikut di Konsol Cloud guna menetapkan region dan zona default untuk lab Anda:
Tugas 1. Mengaktifkan Compute Engine API
- Mengaktifkan Compute Engine API dengan menjalankan yang berikut:
Tugas 2. Membuat bucket Cloud Storage
Anda akan menggunakan bucket Cloud Storage untuk menampung kode yang Anda buat serta skrip startup Anda.
- Dari Cloud Shell, jalankan perinitah berikut untuk membuat bucket Cloud Storage baru:
$DEVSHELL_PROJECT_ID
dalam Cloud Shell berfungsi membantu memastikan nama objek bersifat unik. Karena semua Project ID dalam Google Cloud harus unik, penambahan Project ID juga akan membuat nama lain menjadi unik.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 3. Membuat clone repositori sumber
Gunakan situs e-commerce Fancy Store yang ada berdasarkan repositori monolith-to-microservices
sebagai dasar untuk situs Anda.
Buat clone kode sumber sehingga Anda dapat berfokus pada aspek deployment ke Compute Engine. Nanti di lab ini, Anda akan melakukan update kecil pada kode untuk menunjukkan kemudahan melakukan update di Compute Engine.
- Buat clone kode sumber, lalu buka direktori
monolith-to-microservices
:
- Jalankan build awal kode agar aplikasi dapat dijalankan secara lokal:
Perlu waktu beberapa menit hingga skrip ini selesai.
- Setelah selesai, pastikan Cloud Shell menjalankan versi nodeJS yang kompatibel dengan perintah berikut:
- Selanjutnya, jalankan perintah berikut untuk menguji aplikasi, beralih ke direktori
microservices
, dan memulai server web:
Anda akan melihat output berikut:
- Pratinjau aplikasi Anda dengan mengklik ikon pratinjau web lalu pilih Preview on port 8080.
Tindakan ini akan membuka jendela baru di mana Anda dapat melihat frontend Fancy Store.
- Tutup jendela ini setelah Anda melihat situs, kemudian tekan CTRL+C di jendela terminal untuk menghentikan proses server web.
Tugas 4. Membuat instance Compute Engine
Sekarang saatnya mulai men-deploy instance Compute Engine.
Dalam langkah-langkah berikut, Anda akan:
- Membuat skrip startup untuk mengonfigurasi instance.
- Meng-clone kode sumber dan menguploadnya ke Cloud Storage.
- Men-deploy instance Compute Engine untuk menghosting microservice backend.
- Mengonfigurasi ulang kode frontend untuk memanfaatkan instance microservice backend.
- Men-deploy instance Compute Engine untuk menghosting microservice frontend.
- Mengonfigurasi jaringan untuk memungkinkan komunikasi.
Membuat skrip startup
Skrip startup akan memberikan instruksi ke instance tentang hal yang harus dilakukan setiap kali instance dimulai. Dengan cara ini, instance akan dikonfigurasi secara otomatis.
- Di Cloud Shell, jalankan perintah berikut untuk membuat file bernama
startup-script.sh
:
- Klik Open Editor pada pita Cloud Shell untuk membuka Editor Kode.
-
Buka folder
monolith-to-microservices
. -
Tambahkan kode berikut ke file
startup-script.sh
. Anda akan mengedit beberapa bagiannya setelah kode ditambahkan:
- Cari teks
[DEVSHELL_PROJECT_ID]
dalam file dan ganti dengan Project ID Anda:
Baris kode dalam startup-script.sh
sekarang menjadi seperti:
-
Simpan file
startup-script.sh
, tetapi jangan ditutup dulu. -
Lihat ke kanan bawah Cloud Shell Code Editor, dan pastikan "End of Line Sequence" disetel ke "LF" dan bukan "CRLF".
- Jika disetel ke CRLF, klik CRLF lalu pilih LF pada drop-down.
- Jika sudah disetel ke LF, maka biarkan saja.
-
Tutup file
startup-script.sh
. -
Kembali ke Cloud Shell Terminal dan jalankan yang berikut ini untuk menyalin file
startup-script.sh
ke bucket Anda:
File tersebut sekarang dapat diakses di: https://storage.googleapis.com/[BUCKET_NAME]/startup-script.sh
.
[BUCKET_NAME] mewakili nama bucket Cloud Storage. Nama ini hanya dapat dilihat oleh pengguna resmi dan akun layanan secara default, sehingga tidak dapat diakses melalui browser web. Instance Compute Engine akan otomatis mengakses nama ini melalui akun layanannya.
Skrip startup akan melakukan tugas-tugas berikut:
- Menginstal agen Logging. Agen ini mengumpulkan log dari syslog secara otomatis.
- Menginstal Node.js dan Supervisor. Supervisor menjalankan aplikasi sebagai daemon.
- Membuat clone kode sumber aplikasi dari Bucket Cloud Storage, lalu menginstal dependensi.
- Mengonfigurasi Supervisor untuk menjalankan aplikasi. Supervisor memastikan aplikasi akan dimulai ulang jika keluar secara tidak terduga atau dihentikan oleh admin atau proses. Supervisor juga akan mengirimkan stdout dan stderr aplikasi ke syslog untuk dikumpulkan oleh agen Logging.
Menyalin kode ke dalam bucket Cloud Storage
Saat diluncurkan, instance tersebut akan mengambil kode dari bucket Cloud Storage, sehingga Anda dapat menyimpan beberapa variabel konfigurasi dalam file .env
kode tersebut.
- Salin clone kode ke dalam bucket Anda:
node_modules
dihapus untuk memastikan penyalinan dapat dilakukan secepat dan seefisien mungkin. Direktori ini dibuat ulang di instance saat instance dimulai.
Klik Check my progress untuk memverifikasi tujuan.
Men-deploy backend instance
Instance pertama yang akan di-deploy adalah backend instance yang akan menampung microservice Orders dan Products.
- Jalankan perintah berikut untuk membuat instance
e2-standard-2
yang dikonfigurasi untuk menggunakan skrip startup. Instance ini ditandai sebagai instancebackend
, sehingga Anda dapat menerapkan aturan firewall tertentu padanya nanti:
Mengonfigurasi koneksi ke backend
Sebelum men-deploy frontend aplikasi, Anda perlu mengupdate konfigurasinya agar terkoneksi ke backend yang baru saja Anda deploy.
- Ambil alamat IP eksternal backend dengan perintah berikut. Lihat pada tab
EXTERNAL_IP
untuk backend instance tersebut:
Contoh output:
-
Salin IP Eksternal untuk backend.
-
Pada Cloud Shell Explorer, buka
monolith-to-microservices
>react-app
. -
Pada Editor Kode, pilih View > Toggle Hidden Files untuk melihat file
.env
.
Pada langkah berikutnya, Anda akan mengedit file .env
agar terkoneksi ke IP Eksternal backend. [BACKEND_ADDRESS] mewakili alamat IP Eksternal dari backend instance yang ditentukan dari perintah gcloud
di atas.
- Pada file
.env
, gantilocalhost
dengan[BACKEND_ADDRESS]
Anda:
-
Simpan file.
-
Di Cloud Shell, jalankan perintah berikut untuk membangun kembali
react-app
, yang akan mengupdate kode frontend:
- Kemudian salin kode aplikasi ke dalam bucket Cloud Storage:
Men-deploy frontend instance
Sekarang setelah kode dikonfigurasi, deploy frontend instance.
- Jalankan perintah berikut untuk men-deploy
frontend
instance dengan perintah serupa seperti sebelumnya. Instance ini ditandai sebagaifrontend
untuk keperluan firewall:
Mengonfigurasi jaringan
- Buat aturan firewall untuk mengizinkan akses ke port 8080 untuk frontend, dan port 8081-8082 untuk backend. Perintah firewall ini menggunakan tag yang ditetapkan dalam pembuatan instance untuk aplikasi:
Situs sekarang seharusnya sudah dapat berfungsi sepenuhnya.
- Untuk melihat IP eksternal
frontend
, Anda perlu mengetahui alamatnya. Jalankan perintah berikut dan cari EXTERNAL_IP darifrontend
instance:
Contoh output:
Mungkin perlu waktu beberapa menit untuk memulai dan mengonfigurasi instance.
-
Tunggu 3 menit lalu buka tab browser baru dan masukkan alamat
http://[FRONTEND_ADDRESS]:8080
untuk mengakses situs, dengan [FRONTEND_ADDRESS] adalah EXTERNAL_IP frontend yang tercantum di atas. -
Coba buka halaman Products dan Orders. Seharusnya sekarang semuanya berfungsi.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 5. Membuat grup instance terkelola
Agar aplikasi dapat diskalakan, grup instance terkelola akan dibuat dan akan menggunakan frontend
serta backend
instance sebagai Template Instance.
Grup instance terkelola (MIG) berisi instance identik yang dapat Anda kelola sebagai satu entitas dalam satu zona. Grup instance terkelola menjaga ketersediaan tinggi aplikasi Anda dengan secara proaktif memastikan instance Anda terus tersedia, yaitu dalam status RUNNING. Anda akan menggunakan grup instance terkelola untuk frontend dan backend instance guna menyediakan autohealing, load balancing, penskalaan otomatis, dan update berkelanjutan.
Membuat template instance dari instance sumber
Sebelum Anda dapat membuat grup instance terkelola, Anda harus terlebih dahulu membuat template instance yang akan menjadi fondasi grup tersebut. Dengan template instance, Anda dapat menentukan jenis mesin, boot disk image atau image container, jaringan, dan properti instance lainnya yang akan digunakan saat membuat instance VM baru. Anda dapat menggunakan template instance untuk membuat instance dalam grup instance terkelola atau bahkan membuat tiap-tiap instance.
Untuk membuat template instance, gunakan instance yang sudah Anda buat sebelumnya.
- Pertama, hentikan kedua instance:
- Kemudian, buat template instance dari masing-masing instance sumber:
- Konfirmasi bahwa template instance telah dibuat:
Contoh output:
- Setelah templat instance dibuat, hapus vm
backend
untuk menghemat ruang resource:
- Ketikkan dan masukkan y saat diminta.
Biasanya, Anda juga dapat menghapus vm frontend
, tetapi Anda akan menggunakannya untuk memperbarui template instance nanti di lab.
Membuat grup instance terkelola
- Selanjutnya, buat dua grup instance terkelola, satu untuk frontend dan satu lagi untuk backend:
Grup instance terkelola ini akan menggunakan template instance dan dikonfigurasi untuk masing-masing dua instance dalam tiap grup sebagai awalnya. Instance secara otomatis diberi nama berdasarkan base-instance-name
yang ditentukan dengan penambahan karakter acak.
- Untuk aplikasi Anda, microservice
frontend
dijalankan pada port 8080, dan microservicebackend
dijalankan pada port 8081 untukorders
dan port 8082 untuk produk:
Karena ini adalah port nonstandar, Anda menentukan port bernama untuk mengidentifikasinya. Port bernama adalah metadata pasangan nilai kunci yang mewakili nama layanan dan port yang menjalankannya. Port bernama dapat ditetapkan ke grup instance, yang menunjukkan bahwa layanan tersedia di semua instance dalam grup. Informasi ini digunakan oleh layanan Load Balancing HTTP yang akan dikonfigurasi nanti.
Mengonfigurasi autohealing
Untuk meningkatkan ketersediaan aplikasi itu sendiri dan memverifikasi bahwa aplikasi responsif, atur kebijakan autohealing untuk grup instance terkelola.
Kebijakan autohealing bergantung pada health check berbasis aplikasi untuk memverifikasi bahwa aplikasi merespons seperti yang diharapkan. Memeriksa responsivitas aplikasi sifatnya lebih mendetail dibanding sekadar memverifikasi bahwa suatu instance berstatus RUNNING, yang merupakan perilaku default.
- Buat health check yang akan memperbaiki instance jika menampilkan "unhealthy" 3 kali berturut-turut untuk
frontend
danbackend
:
- Buat aturan firewall untuk mengizinkan pemeriksaan health check terhubung ke microservice pada port 8080-8081:
- Terapkan health check pada layanan masing-masing:
- Lanjutkan ke lab untuk memberikan waktu bagi autohealing guna memantau instance dalam grup. Anda akan menyimulasikan kegagalan untuk menguji autohealing di akhir lab.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 6. Membuat load balancer
Untuk melengkapi grup instance terkelola Anda, gunakan Load Balancer HTTP(S) untuk menyajikan traffic ke microservice frontend dan backend, dan gunakan pemetaan untuk mengirim traffic ke layanan backend yang tepat berdasarkan aturan penetapan jalur. Hal ini akan mengekspos satu IP yang di-load balance untuk semua layanan.
Anda dapat mempelajari lebih lanjut opsi Load Balancing di Google Cloud: Ringkasan Load Balancing.
Membuat load balancer HTTP(S)
Google Cloud menawarkan beragam jenis load balancer. Untuk lab ini, Anda akan menggunakan Load Balancer HTTP(S) untuk traffic Anda. Load balancer HTTP disusun sebagai berikut:
- Aturan penerusan mengarahkan permintaan masuk ke proxy HTTP target.
- Proxy HTTP target memeriksa tiap permintaan di peta URL guna menentukan layanan backend yang sesuai untuk permintaan.
- Layanan backend mengarahkan tiap permintaan ke backend yang sesuai berdasarkan kapasitas penyajian, zona, dan responsivitas instance dari backend yang terkait. Respons tiap backend instance diverifikasi menggunakan health check HTTP. Jika layanan backend dikonfigurasi untuk menggunakan health check HTTPS atau HTTP/2, permintaan akan dienkripsi saat dikirimkan ke backend instance.
- Sesi antara load balancer dan instance dapat menggunakan protokol HTTP, HTTPS, atau HTTP/2. Jika Anda menggunakan HTTPS atau HTTP/2, tiap instance di layanan backend harus memiliki sertifikat SSL.
- Buat health check yang akan digunakan untuk menentukan instance yang mampu menyajikan traffic untuk tiap layanan:
- Buat layanan backend yang menjadi target untuk traffic yang di-load balance. Layanan backend akan menggunakan health check dan port bernama yang Anda buat:
- Tambahkan layanan backend Load Balancer:
- Buat peta URL. Peta URL mengarahkan tiap URL ke layanan backend yang ditentukan:
- Buat path matcher agar jalur
/api/orders
dan/api/products
diarahkan ke layanannya masing-masing:
- Buat proxy yang terikat ke peta URL:
- Buat aturan penerusan global yang mengikat alamat IP publik dan port ke proxy:
Klik Check my progress untuk memverifikasi tujuan.
Mengupdate konfigurasi
Setelah Anda memiliki alamat IP statis baru, update kode di frontend
agar terkoneksi ke alamat baru ini, bukan alamat sementara sebelumnya yang terkoneksi ke backend
instance.
- Di Cloud Shell, ganti ke folder
react-app
yang berisi file.env
yang menyimpan konfigurasi:
- Cari alamat IP untuk Load Balancer:
Contoh output:
- Kembali ke Editor Cloud Shell, lalu edit lagi file
.env
agar terkoneksi ke IP Publik Load Balancer. [LB_IP] mewakili alamat IP Eksternal dari backend instance yang ditentukan di atas.
-
Simpan file.
-
Bangun kembali
react-app
, yang akan mengupdate kode frontend:
- Salin kode aplikasi ke dalam bucket Anda:
Mengupdate frontend instance
Setelah ada kode dan konfigurasi baru, frontend instance dalam grup instance terkelola sebaiknya mengambil kode baru.
Karena instance Anda mengambil kode saat sistem dimulai, Anda dapat memberikan perintah mulai ulang yang berkelanjutan:
--max-unavailable
. Tanpa parameter ini, perintah akan membuat sebuah instance tetap berjalan sambil memulai ulang instance lainnya untuk memastikan ketersediaan. Untuk tujuan pengujian ini, Anda menentukan bahwa semua instance dapat segera diganti demi kecepatan.
Klik Check my progress untuk memverifikasi tujuan.
Menguji situs
- Tunggu 3 menit setelah Anda memberikan perintah
rolling-action replace
agar ada cukup waktu untuk pemrosesan instance, lalu periksa status grup instance terkelola. Jalankan perintah berikut untuk mengonfirmasi bahwa layanan tercantum sebagai HEALTHY:
- Tunggu hingga ke-2 layanan tercantum sebagai HEALTHY.
Contoh output:
Jika tidak ada instance yang menunjukkan status HEALTHY setelah ditunggu beberapa saat, berarti ada yang salah dengan penyiapan frontend instance sehingga tidak dapat diakses pada port 8080. Uji hal ini dengan mengakses instance secara langsung pada port 8080.
- Setelah kedua item muncul sebagai HEALTHY pada daftar, keluar dari perintah
watch
dengan menekan CTRL+C.
gcloud compute forwarding-rules list --global
Tugas 7. Menskalakan Compute Engine
Sejauh ini Anda telah membuat dua grup instance terkelola, masing-masing dengan dua instance. Konfigurasi ini berfungsi penuh, tetapi merupakan konfigurasi statis terlepas dari bebannya. Selanjutnya, Anda akan membuat kebijakan penskalaan otomatis berdasarkan penggunaan untuk secara otomatis menskalakan tiap grup instance terkelola.
Mengubah ukuran secara otomatis berdasarkan penggunaan
- Untuk membuat kebijakan penskalaan otomatis, jalankan perintah berikut:
Perintah ini membuat autoscaler pada grup instance terkelola yang secara otomatis menambahkan instance ketika penggunaan load balancer berada di atas 60%, dan menghapus instance ketika penggunaannya berada di bawah 60%.
Mengaktifkan jaringan penayangan konten (CDN)
Cara lain yang dapat membantu penskalaan adalah mengaktifkan layanan Jaringan Penayangan Konten guna menyediakan penyimpanan cache untuk frontend.
- Jalankan perintah berikut pada layanan frontend:
Saat pengguna meminta konten dari load balancer HTTP(S), permintaan tersebut akan tiba di Google Front End (GFE), dan layanan ini pertama-tama akan mencari respons atas permintaan pengguna di cache Cloud CDN. Jika GFE menemukan respons yang di-cache, layanan ini akan mengirimkan respons yang di-cache itu ke pengguna. Hal ini disebut cache hit, atau cache ditemukan.
Jika GFE tidak dapat menemukan respons yang telah di-cache untuk permintaan tersebut, GFE akan membuat permintaan langsung ke backend. Jika respons terhadap permintaan ini dapat disimpan dalam cache, GFE akan menyimpan respons tersebut dalam cache Cloud CDN sehingga cache tersebut dapat digunakan untuk permintaan berikutnya.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 8. Mengupdate situs
Mengupdate template instance
Template instance yang ada tidak dapat diedit. Namun, karena instance Anda stateless dan semua konfigurasi dilakukan melalui skrip startup, Anda hanya perlu mengubah template instance jika ingin mengubah setelan template. Sekarang Anda akan membuat perubahan sederhana untuk menggunakan jenis mesin yang lebih besar dan menerapkannya.
Selesaikan langkah-langkah berikut untuk:
-
Mengupdate
frontend
instance, yang bertindak sebagai dasar untuk template instance. Selama update berlangsung, masukkan file pada versi terbaru image template instance, lalu update template instance, luncurkan template baru, dan konfirmasi bahwa file tersebut ada pada instance grup instance terkelola. -
Ubah jenis mesin template instance Anda, dengan beralih dari jenis mesin
e2-standard-2
kee2-small
.
- Jalankan perintah berikut untuk mengubah jenis mesin frontend instance:
- Buat Template Instance yang baru:
- Luncurkan template instance yang diupdate ke Grup Instance Terkelola:
- Tunggu 3 menit, lalu jalankan perintah berikut untuk memantau status update:
Proses ini perlu waktu beberapa saat.
Setelah Anda memiliki setidaknya 1 instance dalam kondisi berikut:
- STATUS: RUNNING
- ACTION disetel ke None
- INSTANCE_TEMPLATE: nama template baru (fancy-fe-new)
-
Salin nama salah satu mesin yang tercantum untuk digunakan pada perintah berikutnya.
-
Tekan CTRL+C untuk keluar dari proses
watch
. -
Jalankan perintah berikut untuk melihat apakah virtual machine tersebut menggunakan jenis mesin baru (e2-small), dengan [VM_NAME] sebagai instance yang baru dibuat:
Contoh output yang diharapkan:
Membuat perubahan pada situs
Skenario: Tim pemasaran telah meminta Anda mengubah halaman beranda situs Anda. Menurut mereka, halaman ini harus lebih informatif terkait apa perusahaan Anda dan apa yang sebenarnya Anda jual.
Tugas: Tambahkan teks ke beranda agar tim pemasaran merasa senang. Sepertinya salah satu developer telah membuat perubahan itu dengan nama file index.js.new
. Anda cukup menyalin file ini ke index.js
dan perubahannya akan diterapkan. Ikuti petunjuk di bawah ini untuk melakukan perubahan yang sesuai.
- Jalankan perintah berikut untuk menyalin file yang telah diperbarui itu ke nama file yang benar:
- Cetak konten file untuk memverifikasi perubahan:
Kode yang dihasilkan akan terlihat seperti ini:
Anda telah mengupdate komponen React, tetapi Anda perlu membangun aplikasi React untuk menghasilkan file statis.
- Jalankan perintah berikut untuk membangun aplikasi React dan salin ke direktori publik monolit:
- Kemudian kirim kembali kode ini ke bucket:
Memaksakan perubahan dengan penggantian berkelanjutan
- Sekarang paksa semua instance agar diganti untuk mengambil update:
Catatan: Dalam contoh penggantian berkelanjutan ini, Anda secara spesifik menyatakan bahwa semua mesin dapat segera diganti melalui parameter --max-unavailable
. Tanpa parameter ini, perintah akan membuat sebuah instance tetap berjalan sambil menggantikan yang lain. Untuk tujuan pengujian ini, Anda menentukan bahwa semua instance dapat segera diganti demi kecepatan. Dalam produksi, membiarkan buffer akan memungkinkan situs untuk terus menyajikan kontennya sambil diupdate.
Klik Check my progress untuk memverifikasi tujuan.
- Tunggu 3 menit setelah Anda memberikan perintah
rolling-action replace
agar ada cukup waktu untuk pemrosesan instance, lalu periksa status grup instance terkelola. Jalankan perintah berikut untuk mengonfirmasi bahwa layanan tercantum sebagai HEALTHY:
- Tunggu beberapa saat hingga kedua layanan tersebut muncul dan menjadi HEALTHY.
Contoh output:
-
Setelah ada item yang muncul dalam daftar dengan status HEALTHY, keluar dari perintah
watch
dengan menekan CTRL+C. -
Jelajahi situs melalui
http://[LB_IP]
dengan [LB_IP] adalah IP_ADDRESS yang ditentukan untuk Load Balancer, yang dapat ditemukan dengan perintah berikut:
Perubahan situs yang baru sekarang akan terlihat.
Menyimulasikan kegagalan
Untuk mengonfirmasi bahwa health check berfungsi, login ke sebuah instance dan hentikan layanan.
- Untuk menemukan nama instance, jalankan perintah berikut:
- Salin nama instance, lalu jalankan perintah berikut untuk masuk ke instance dengan protokol secure shell, dengan INSTANCE_NAME adalah salah satu instance dari daftar:
-
Ketik "y" untuk mengonfirmasi, dan tekan Enter dua kali untuk tidak menggunakan sandi.
-
Dalam instance, gunakan
supervisorctl
untuk menghentikan aplikasi:
- Keluar dari instance:
- Pantau operasi perbaikan:
Prosesnya perlu waktu beberapa menit sampai selesai.
Cari contoh output berikut:
Grup instance terkelola telah membuat ulang instance tersebut untuk memperbaikinya.
- Anda juga dapat membuka Navigation menu > Compute Engine > VM instances untuk memantau melalui konsol.
Selamat!
Anda telah berhasil men-deploy, menskalakan, dan mengupdate situs Anda di Compute Engine. Anda kini berpengalaman dengan Compute Engine, Grup Instance Terkelola, Load Balancer, dan Health Check.
Langkah berikutnya/Pelajari lebih lanjut
- Tonton video studi kasus tentang Hosting Aplikasi Web yang Skalabel di Google Cloud
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 26 April 2024
Lab Terakhir Diuji pada 15 Desember 2023
Hak cipta 2024 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.