Instance adalah unit komputasi yang digunakan App Engine untuk menskalakan aplikasi Anda secara otomatis. Pada waktu tertentu, aplikasi Anda dapat berjalan di satu atau beberapa instance, dengan permintaan tersebar di semua instance tersebut.
Instance dengan penskalaan manual seharusnya berjalan tanpa batas waktu, tetapi tidak ada jaminan waktu beroperasi karena instance dapat mengalami penghentian lebih awal akibat kegagalan atau dimulai ulang untuk pembaruan. Kegagalan hardware atau software yang menyebabkan penghentian awal atau sering dimulai ulang dapat terjadi tanpa peringatan dan dapat memerlukan waktu yang cukup lama untuk menyelesaikannya.
Semua instance fleksibel dapat dimulai ulang setiap minggu jika ada update yang tersedia. Jadwal ini tidak dijamin. Selama mulai ulang, update penting yang kompatibel dengan versi lama akan otomatis diluncurkan ke sistem operasi yang mendasarinya. Image aplikasi Anda akan tetap sama setiap kali dimulai ulang.
Health check
App Engine mengirim permintaan health check secara berkala untuk mengonfirmasi bahwa instance berjalan, dan untuk memeriksa apakah instance telah dimulai sepenuhnya dan siap menerima permintaan masuk. Secara default, health check ini diaktifkan dan dikenal sebagai health check terpisah. Instance yang menerima health check harus menjawab health check dalam interval waktu yang ditentukan.
Jika perlu memperluas perilaku default health check terpisah ke aplikasi, Anda dapat menyesuaikan file app.yaml
untuk mengonfigurasi dua jenis health check:
- Pemeriksaan keaktifan mendeteksi bahwa instance VM dan container-nya sedang berjalan. Jika instance VM gagal dalam pemeriksaan keaktifan, instance akan dimulai ulang secara otomatis. Pemeriksaan keaktifan bisa gagal karena batas waktu yang telah dikonfigurasi dan interval waktu, atau karena container mengalami error.
- Pemeriksaan kesiapan mendeteksi bahwa instance VM siap menerima permintaan masuk. Jika instance VM gagal dalam pemeriksaan kesiapan, itu berarti instance VM belum menyelesaikan startup-nya dan belum siap menerima permintaan. Setelah lulus pemeriksaan kesiapan dan telah menyelesaikan startup-nya, instance VM akan ditambahkan ke kumpulan instance yang tersedia.
Pelajari lebih lanjut perilaku health check terpisah dalam panduan Bermigrasi ke Health Check Terpisah.
Saat instance menjalani health check ini, log App Engine dapat menunjukkan bahwa instance berada dalam salah satu status berikut:
- Responsif. Instance menerima permintaan health check dan sedang memproses permintaan tersebut. Status sehat menunjukkan bahwa instance memiliki lebih dari
820 MB ruang disk yang tersedia dan harus merespons health check dengan
kode status HTTP
200
. - Tidak Responsif. Instance menolak permintaan health check dan gagal merespons sejumlah permintaan health check berturut-turut. App Engine akan terus mengirim permintaan health check dan memulai ulang instance jika instance yang tidak responsif terus gagal merespons health check berturut-turut dalam jumlah yang telah ditentukan.
- Lameduck. Instance dijadwalkan untuk dimatikan atau dimulai ulang.
Selama penonaktifan, instance akan menyelesaikan permintaan yang sedang berlangsung dan menolak permintaan baru. Aplikasi menampilkan kode
503
untuk menunjukkan bahwa instance tidak dapat menangani permintaan. Sebelum instance dihentikan atau dimulai ulang, skrip penonaktifan memiliki jangka waktu terbatas untuk dijalankan, dan tidak dapat dikonfigurasi menjadi lebih pendek atau lebih lama. - Aplikasi Lameduck. Instance sedang bersiap untuk melayani traffic. Aplikasi
menampilkan kode
503
untuk menunjukkan bahwa instance tidak dapat menangani permintaan. Ketika instance VM telah menyelesaikan startup dan siap untuk melayani traffic, instance akan menjadi responsif dan memproses permintaan. Jika instance VM tidak dimulai tepat waktu, instance akan berubah menjadi tidak responsif dan dihapus.
Perilaku lameduck dan aplikasi lameduck adalah bagian dari proses normal yang dilalui instance VM.
Memantau penggunaan resource
Halaman Instance Google Cloud console memberikan visibilitas tentang performa instance Anda. Anda dapat melihat penggunaan memori dan CPU setiap instance, waktu beroperasi, jumlah permintaan, dan statistik lainnya. Anda juga dapat memulai proses penonaktifan secara manual untuk instance apa pun.
NTP dengan lingkungan fleksibel App Engine
Lingkungan fleksibel App Engine memiliki layanan protokol waktu jaringan (NTP) yang menggunakan server NTP Google. Namun, layanan NTP di lingkungan fleksibel tidak dapat diedit.
Lokasi instance
Instance secara otomatis ditempatkan menurut wilayah geografis sesuai dengan setelan project.
Penskalaan instance
Saat aplikasi berjalan, permintaan masuk akan diarahkan ke instance yang ada atau baru dari layanan/versi yang sesuai. Setiap versi aktif harus memiliki setidaknya satu instance yang berjalan, dan jenis penskalaan layanan/versi mengontrol cara pembuatan instance tambahan.
Anda dapat menentukan jenis penskalaan di
app.yaml
aplikasi.
Secara default, aplikasi Anda menggunakan penskalaan otomatis, yang berarti App Engine akan mengelola jumlah instance yang nonaktif.
- Penskalaan otomatis
- Penskalaan otomatis membuat instance berdasarkan rasio permintaan, latensi respons,
dan metrik aplikasi lainnya. Anda dapat menentukan batas untuk setiap
metrik ini, serta jumlah instance minimum yang akan terus berjalan setiap saat
dengan mengonfigurasi elemen
automatic_scaling
.
- Penskalaan manual
- Penskalaan manual menentukan jumlah instance yang terus berjalan, berapa pun tingkat bebannya. Hal ini memungkinkan tugas-tugas seperti inisialisasi dan aplikasi kompleks yang mengandalkan status memori dari waktu ke waktu.
Mengelola layanan
Bergantung pada jenis penskalaan instance, Anda dapat mengelola layanan dan versi di konsol Google Cloud atau Google Cloud CLI.
Menghentikan versi
Setiap versi di App Engine berjalan dalam satu atau beberapa instance, bergantung pada jumlah traffic yang dikonfigurasi untuk ditangani.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda:
Konsol
Untuk menghentikan atau menonaktifkan versi untuk layanan Anda:
Buka halaman Versi App Engine di konsol Google Cloud:
Pilih versi dari tabel, lalu klik Stop.
gcloud
Jalankan perintah berikut:
gcloud app versions stop --service=SERVICE VERSION
Ganti:
- SERVICE dengan nama layanan Anda.
- VERSION dengan nama versi layanan Anda.
Hapus layanan
Setiap layanan dapat dikonfigurasi untuk menggunakan runtime yang berbeda dan beroperasi dengan setelan performa yang berbeda. Anda tidak dapat menghapus layanan default. Menghapus layanan juga akan menghapus semua versi yang menyertainya di project Anda.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda:
Konsol
Untuk menghapus layanan:
Buka halaman Services App Engine di konsol Google Cloud:
Pilih layanan dari tabel, lalu klik Hapus.
gcloud
Jalankan perintah berikut:
gcloud app services delete SERVICE
Ganti:
- SERVICE dengan nama layanan Anda.