Dokumen ini menjelaskan cara menangguhkan atau melanjutkan instance virtual machine (VM).
Jika Anda ingin mempertahankan instance VM tetapi tidak ingin dikenai biaya saat tidak digunakan, Anda dapat menangguhkan VM. Saat Anda menangguhkan VM, Google akan mempertahankan VM dalam project Anda dan memindahkan isi memori VM ke penyimpanan. Saat VM ditangguhkan, Google hanya mengenakan biaya untuk penyimpanan yang digunakan untuk mempertahankan memori VM. Atribut seperti alamat IP statis tetap ada agar fungsi jaringan akan berfungsi seperti yang diharapkan saat Anda melanjutkan VM. Setelah melanjutkan, Google akan memindahkan kembali memori VM dari penyimpanan ke instance, dan mulai menagih Anda untuk instance VM yang sedang berjalan.
Menangguhkan instance cocok untuk:
- Lingkungan pengembangan dan pengujian yang tidak digunakan sepenuhnya di luar periode, seperti pada malam hari atau akhir pekan, untuk menghemat biaya atau inisialisasi lebih cepat daripada membuat instance VM baru.
- Aplikasi yang memerlukan waktu inisialisasi lama setelah instance selesai melakukan booting, tetapi sebelum aplikasi siap melayani permintaan pertamanya, seperti workstation developer virtual atau aplikasi Java yang kompleks.
Cara kerja penangguhan
Menangguhkan instance akan mengirimkan sinyal
penangguhan ACPI S3
ke sistem operasi instance. Menangguhkan instance sama seperti menutup penutup laptop, menempatkan instance ke status SUSPENDED
.
Menangguhkan instance berbeda dengan menghentikan instance dalam hal berikut:
- Instance yang ditangguhkan mempertahankan memori OS tamu, status perangkat, dan status aplikasi.
- Google akan mengenakan biaya untuk penyimpanan yang diperlukan untuk menghemat memori instance.
- Anda hanya dapat menangguhkan instance hingga 60 hari. Setelah 60 hari, instance
otomatis dipindahkan ke status
TERMINATED
.
Semua resource yang terpasang ke instance tetap terpasang ke instance dan akan dikenai biaya, termasuk persistent disk dan alamat IP eksternal statis atau cadangan. Semua resource ini dikenai biaya sesuai dengan lembar harga, meskipun jika instance ditangguhkan.
Anda tidak dapat menangguhkan instance dengan menggunakan proses standar yang dibangun
ke dalam lingkungan tamu. Perintah, seperti perintah systemctl suspend
di Ubuntu 16.04 dan yang lebih baru, tidak tersedia. Anda hanya dapat menggunakan Google Cloud CLI atau REST untuk menangguhkan instance.
Jika Anda tidak ingin memulihkan memori dan status perangkat instance saat Anda melanjutkan instance tersebut nanti, Anda dapat menghentikan instance tersebut, yang tidak akan menimbulkan biaya penyimpanan tambahan.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah proses di mana identitas Anda diverifikasi untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
Go
Untuk menggunakan contoh Go di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk menggunakan contoh Java di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk menggunakan contoh Node.js di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk menggunakan contoh PHP di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk menggunakan contoh Python di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Batasan
Batasan berikut berlaku pada rilis ini:
- Anda tidak dapat menangguhkan instance yang menggunakan GPU.
- Anda tidak dapat menangguhkan instance dengan menggunakan proses standar yang terintegrasi ke dalam lingkungan tamu. Perintah, seperti perintah
systemctl suspend
di Ubuntu 16.04 dan yang lebih baru, tidak tersedia. Sinyal masuk tamu diabaikan. - Anda hanya dapat menangguhkan instance hingga 60 hari sebelum VM otomatis dihentikan.
- Anda tidak dapat menangguhkan instance yang memiliki memori lebih dari 208 GB.
- Anda dapat menangguhkan preemptible instance, tetapi preemptible instance mungkin dapat dihentikan sebelum berhasil ditangguhkan.
- Anda tidak dapat menangguhkan Confidential VM.
- Anda tidak dapat menangguhkan VM dengan disk yang dilindungi CSEK terpasang.
SSD lokal
Biasanya, menangguhkan instance VM yang menggunakan SSD Lokal akan menghapus semua data di drive SSD Lokal - perilaku yang sama seperti menghentikan instance.
Lihat Dokumentasi SSD lokal untuk detail selengkapnya.
Preemptible VM
Anda dapat menangguhkan preemptible VM, tetapi jika preemption (bukan peringatan awal yang mendahului preemption) terjadi sebelum operasi penangguhan selesai, penangguhan akan keluar dan instance akan di-preempt.
Kompatibilitas OS
Sebagian besar sistem operasi (OS) yang ditawarkan di Compute Engine mendukung fungsi penangguhan dan pelanjutan, tetapi ada beberapa OS yang tidak. Tinjau halaman Detail OS untuk mengetahui daftar lengkapnya.
Harga
Saat menangguhkan instance, Anda akan dikenai biaya untuk:
- Memori instance (lihat harga untuk instance VM yang Ditangguhkan).
- Semua penggunaan persistent disk untuk boot disk dan disk tambahan yang dipasang ke instance (lihat Harga persistent disk).
- Semua IP statis yang terpasang ke instance.
- Menangguhkan VM dapat menghemat biaya lisensi software Anda. Misalnya, jika menangguhkan VM Windows, Anda tidak dikenai biaya lisensi Windows. Biaya lisensi untuk image lain mungkin memiliki persyaratan dan ketentuan yang berbeda, dan dapat menyebabkan tagihan bahkan saat ditangguhkan.
Menangguhkan instance
Untuk menangguhkan instance, gunakan Konsol Google Cloud, gcloud CLI, API, atau Library Klien Cloud.
Anda tidak dapat menangguhkan instance dengan menggunakan proses standar yang dibangun ke dalam lingkungan tamu. Anda dapat menggunakan Konsol Google Cloud, Google Cloud CLI, atau API untuk menangguhkan instance.
Operasi penangguhan dapat gagal jika dipicu terlalu cepat setelah instance dimulai. Instance harus dimulai sepenuhnya (termasuk proses seperti Agen Tamu) agar operasi penangguhan berhasil.
Konsol
Di Konsol Google Cloud, buka halaman VM instances.
Pilih satu atau beberapa instance untuk ditangguhkan.
Klik Tangguhkan.
Saat diminta, jika Anda ingin menghapus data SSD lokal, pilih Hapus konten SSD. Saat instance dilanjutkan, semua data SSD lokal pada instance tersebut akan dihapus.
gcloud
Untuk menangguhkan instance di Google Cloud CLI:
gcloud compute instances suspend VM_NAME
Setelah Anda membuat permintaan untuk menangguhkan instance, Compute Engine memerlukan waktu beberapa saat untuk menyimpan semua data yang diperlukan untuk instance. Selama jangka waktu ini, Anda akan terus dikenakan biaya untuk instance tersebut selama instance tersebut masih berjalan.
Instance yang ditangguhkan ditandai dengan status SUSPENDED
. Periksa status
instance dengan membuat permintaan describe
:
gcloud compute instances describe VM_NAME
Untuk menangguhkan instance dengan data SSD lokal, Anda harus memberikan flag --discard-local-ssd
:
gcloud compute instances suspend VM_NAME --discard-local-ssd
Menggunakan --discard-local-ssd
atau --discard-local-ssd=True
akan menghapus konten SSD Lokal. Compute Engine --discard-local-ssd=False
saat ini berada dalam Pratinjau Publik. Menggunakan tanda ini akan menyimpan konten hingga 32 disk SSD Lokal selama Penangguhan. Lihat dokumentasi SSD Lokal untuk detail selengkapnya.
Go
Java
Node.js
PHP
Python
REST
Di API, buat permintaan menggunakan metode instances.suspend
:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend
Ganti kode berikut:
PROJECT_ID
: the project IDZONE
: zona VMVM_NAME
: instance yang ingin Anda tangguhkan
Setelah Anda membuat permintaan untuk menangguhkan instance, Compute Engine memerlukan waktu beberapa saat untuk menyimpan semua data yang diperlukan untuk instance. Selama jangka waktu ini, Anda akan terus dikenakan biaya untuk instance tersebut selama instance tersebut masih berjalan.
Compute Engine menandai instance yang ditangguhkan dengan status SUSPENDED
. Periksa status instance dengan membuat permintaan GET
:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Status instance terlihat di kolom status. Contoh:
...
"zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"status": "SUSPENDED",
"name": "example-vm",
...
Untuk menangguhkan instance dengan lebih dari 32 disk SSD lokal, Anda harus menghapus data SSD lokal dengan memberikan parameter kueri discardLocalSsd
sebagai berikut:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend?discardLocalSsd=true
Untuk mengetahui informasi selengkapnya, lihat dokumentasi SSD Lokal.
Melanjutkan instance yang ditangguhkan
Anda hanya dapat melanjutkan instance jika terdapat kapasitas yang cukup di zona tempat VM berada. Di sebagian besar kasus, hal ini tidak menjadi masalah, tetapi jika Anda mengalami masalah kapasitas, coba lagi permintaan pelanjutan Anda di lain waktu.
Untuk melanjutkan instance yang ditangguhkan, gunakan Konsol Google Cloud, gcloud CLI, API, atau Library Klien Cloud.
Konsol
Di Konsol Google Cloud, buka halaman VM instances.
Pilih satu atau beberapa instance untuk dilanjutkan.
Klik Mulai/Lanjutkan.
gcloud
Untuk melanjutkan instance di Google Cloud CLI:
gcloud compute instances resume VM_NAME
Setelah Anda membuat permintaan untuk melanjutkan instance, Compute Engine memerlukan waktu beberapa saat untuk memulihkan semua data yang diperlukan untuk instance. Selama jangka waktu ini, Anda akan terus dikenakan biaya untuk instance tersebut saat instance dilanjutkan.
Instance dilanjutkan saat ditandai sebagai RUNNING
. Periksa status instance dengan membuat permintaan deskripsi:
gcloud compute instances describe VM_NAME
Go
Java
Node.js
PHP
Python
REST
Buat permintaan ke metode instances.resume
:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/resume
Ganti kode berikut:
PROJECT_ID
: project ID untuk permintaan iniZONE
: zona VMVM_NAME
: instance yang akan dilanjutkan
Setelah Anda membuat permintaan untuk melanjutkan instance, Compute Engine memerlukan waktu beberapa saat untuk memulihkan semua data yang diperlukan untuk instance. Selama jangka waktu ini, Anda akan terus dikenakan biaya untuk instance tersebut saat instance dilanjutkan.
Compute Engine menandai instance dengan status RUNNING
setelah pelanjutan selesai. Periksa status instance dengan membuat permintaan GET
:
GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance
Status instance terlihat di kolom status. Contoh:
...
"zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"status": "RUNNING",
"name": "example-instance",
...
Proses penangguhan
Saat membuat permintaan penangguhan, Anda akan mengirimkan sinyal penangguhan ACPI ke instance
VM. Jika VM tidak merespons sinyal penangguhan ACPI S3 dalam beberapa menit, Compute Engine akan membatalkan upaya penangguhan dan menampilkan VM ke status RUNNING
.
Tabel berikut menjelaskan efek penangguhan instance VM pada resource terkaitnya:
Resource | Dukungan |
---|---|
Memori | Hanya VM dengan memori kurang dari atau sama dengan 208 GB yang dapat ditangguhkan |
SSD Lokal | Data SSD lokal dihapus |
Persistent disk | Disk HDD dan SSD persisten akan dipertahankan |
Alamat IP | IP efemeral dirilis selama penangguhan, tetapi IP statis tetap terikat ke instance VM. Jika Anda ingin mempertahankan IP sementara Anda, promosikan IP tersebut. |
Konfigurasi VM (seperti jenis mesin, metadata, label, dll.) | Semua konfigurasi VM, selain alamat IP sementara, dipertahankan dan dipulihkan saat instance dilanjutkan. |
Mengonfigurasi VM Debian untuk mendukung penangguhan dan pelanjutan
VM yang menjalankan Debian 8 dan 9 dapat ditangguhkan dan dilanjutkan, tetapi harus dikonfigurasi sebelumnya. Untuk mengonfigurasi instance Debian, selesaikan salah satu rangkaian petunjuk berikut, opsi A atau opsi B. Sebaiknya konfigurasi ACPID jika memungkinkan (opsi A).
Opsi A
Opsi ini mengonfigurasi ACPID untuk menangani peristiwa tombol tidur dan menambahkan skrip shell untuk menangani peristiwa tidur.
Hubungkan ke instance VM Anda menggunakan ssh:
gcloud compute ssh VM_NAME
Pada instance VM, buat direktori di folder
acpi
:sudo mkdir -p /etc/acpi/events/
Konfigurasi ACPID untuk menangani peristiwa tombol tidur:
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOF
Buat skrip penanganan peristiwa tidur:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOF
Siapkan izin untuk skrip:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.sh
Mulai ulang ACPID:
sudo systemctl restart acpid.service
Opsi B
Hubungkan ke instance VM Anda menggunakan ssh:
gcloud compute ssh VM_NAME
Pada instance VM, instal
dbus
:sudo apt-get install dbus
Mulai ulang
logind
:sudo systemctl restart systemd-logind.service
Langkah selanjutnya
- Hapus instance jika Anda tidak lagi memerlukannya.
- Menghentikan atau memulai ulang instance.
- Tinjau Siklus proses instance.
- Tinjau Memecahkan masalah penangguhan VM jika Anda mengalami masalah saat menangguhkan VM.