Solusi ini memberikan panduan mendalam tentang cara mengelola image Compute Engine. Image menyediakan lingkungan operasi dasar untuk aplikasi yang berjalan di Compute Engine, dan sangat penting untuk memastikan aplikasi Anda di-deploy dan diskalakan dengan cepat dan andal. Anda juga dapat menggunakan image untuk mengarsipkan versi aplikasi untuk skenario pemulihan dari bencana (disaster recovery) atau rollback.
Memahami gambar
Image di Compute Engine adalah resource cloud yang menyediakan referensi ke disk yang tidak dapat diubah. Representasi disk tersebut kemudian dienkapsulasi menggunakan beberapa format data.
Image adalah kumpulan byte mentah yang digunakan untuk membuat hard disk yang sudah diisi sebelumnya. Ditulis pada disk yang diformat adalah tabel partisi yang mengarah ke satu atau beberapa partisi yang berisi data. Agar dapat di-boot, image harus berisi berikut:
- Tabel partisi: master boot record atau GUID partition table
- Partisi yang dapat di-booting
Agar disk dapat diimpor sebagai image Compute Engine, byte disk harus ditulis ke file bernama disk.raw
.
Setelah urutan byte lengkap dari disk ditulis ke file, file diarsipkan menggunakan
format tar
lalu dikompresi menggunakan format GZIP. Kemudian, Anda dapat mengupload file *.tar.gz
yang dihasilkan ke Cloud Storage dan mendaftarkannya sebagai image di Compute Engine, seperti yang ditunjukkan pada diagram sebelumnya. Setelah mendaftarkan image, Anda dapat menggunakannya untuk membuat replika persis dari disk asli di region Google Cloudmana pun. Image yang baru didaftarkan sering digunakan sebagai volume boot untuk instance Compute Engine.
Untuk pengantar yang lebih mendasar tentang istilah Compute Engine ini, lihat Instance virtual machine dan Image dalam dokumentasi.
Memilih image boot
Langkah pertama dalam menggunakan Compute Engine adalah memilih image yang Anda inginkan sebagai sistem operasi untuk instance virtual machine (VM) Anda. Anda dapat menggunakan image publik yang disediakan oleh Google Cloud, yang diupdate secara rutin. Google Cloud menyediakan berbagai sistem operasi, termasuk Debian, Ubuntu, dan CentOS, untuk Anda gunakan tanpa biaya tambahan. Beberapa sistem operasi, seperti Red Hat Enterprise Linux dan Microsoft Windows, adalah image premium, yang menimbulkan biaya tambahan untuk setiap jam instance berjalan.
Untuk mengetahui informasi selengkapnya tentang gambar tertentu, seperti kebijakan update otomatis, patch keamanan, dan saluran dukungan, lihat bagian Detail sistem operasi dalam dokumentasi produk.
Untuk keamanan tambahan, Anda juga dapat menggunakan fitur Image tepercaya untuk menentukan kebijakan organisasi yang membatasi penggunaan image di project image publik tertentu dalam pembuatan image boot.
Anda dapat menggunakan Google Cloud image publik untuk mem-booting instance Compute Engine, lalu menyesuaikan instance untuk menjalankan aplikasi Anda.
Salah satu cara untuk mengonfigurasi instance Anda adalah dengan menggunakan skrip startup untuk menjalankan perintah yang men-deploy aplikasi Anda saat di-boot. Perlu diingat bahwa skrip ini berjalan setiap kali instance di-boot, jadi Anda harus membuat skrip idempoten untuk menghindari status yang tidak konsisten atau dikonfigurasi sebagian. Jika instance Anda adalah bagian dari grup instance terkelola, Anda dapat menggunakan Updater Grup Instance untuk memulai ulang atau membangun ulang instance, yang menjalankan ulang skrip startup Anda. Praktik umumnya adalah menggunakan skrip startup untuk menjalankan alat pengelolaan konfigurasi seperti Chef atau Ansible.
Membuat gambar yang disesuaikan
Meskipun mengonfigurasi skrip startup instance adalah cara yang efektif untuk menyediakan infrastruktur, metode yang lebih efisien adalah membuat image kustom baru dengan konfigurasi Anda yang dimasukkan ke dalam image publik. Anda dapat menyesuaikan gambar dengan beberapa cara:
- Manual
- Otomatis
- Impor
Proses pembuatan gambar kustom disebut baking.
Memanggang gambar Anda memiliki manfaat berikut:
- Waktu yang lebih singkat dari booting hingga aplikasi siap.
- Peningkatan keandalan untuk deployment aplikasi.
- Rollback ke versi sebelumnya yang lebih mudah.
- Lebih sedikit dependensi pada layanan eksternal selama bootstrap aplikasi.
- Menskalakan ke atas akan membuat instance yang berisi versi software yang identik.
Pemanggangan manual
Anda dapat membuat image kustom sederhana dengan membuat instance VM baru dari image publik, mengonfigurasi instance dengan aplikasi dan setelan yang Anda inginkan, lalu membuat image kustom dari instance tersebut. Gunakan metode ini jika Anda dapat mengonfigurasi gambar dari awal secara manual, bukan menggunakan pembuatan otomatis atau mengimpor gambar yang ada.
Anda dapat membuat image kustom sederhana menggunakan langkah-langkah berikut:
- Buat instance dari image publik.
- Hubungkan ke instance.
- Sesuaikan instance untuk kebutuhan Anda.
- Hentikan instance.
- Buat image kustom dari boot disk instance tersebut. Proses ini mengharuskan Anda menghapus instance, tetapi tetap mempertahankan boot disk.
Pemanggangan otomatis
Pembuatan manual adalah cara mudah untuk memulai jika Anda memiliki sejumlah kecil gambar, tetapi sejumlah besar gambar akan sulit diaudit dan dikelola. Packer adalah alat open source untuk membuat pembuatan image lebih mudah direproduksi, diaudit, dikonfigurasi, dan diandalkan. Anda juga dapat menggunakan Packer sebagai bagian dari pipeline Spinnaker untuk menghasilkan image yang di-deploy ke cluster instance.
Mengimpor gambar yang ada
Anda dapat mengimpor image boot disk dari infrastruktur yang ada ke Compute Engine menggunakan alat impor disk virtual, yang mengotomatiskan proses impor image. Untuk mesin Linux, berikut adalah panduan mendalam untuk memigrasikan disk image RAW, Amazon Machine Image (AMI), dan image VirtualBox secara manual.
Opsi lain untuk mengimpor image yang ada adalah dengan menggunakan Migrate to Virtual Machines.
Migrate to Virtual Machines adalah rangkaian alat dan layanan yang memfasilitasi migrasi mesin dari satu platform ke platform lain dengan waktu non-operasional minimal menggunakan replikasi tingkat blok berkelanjutan. Anda dapat memigrasikan mesin ke Compute Engine, lalu menggunakan baking manual untuk membuat image.
Mengenkripsi gambar
Semua disk di Compute Engine dienkripsi secara default menggunakan kunci enkripsi Google. Image yang dibuat dari disk juga dienkripsi. Atau, Anda dapat memberikan kunci enkripsi Anda sendiri saat disk Anda dibuat. Setelah membuat disk, Anda dapat membuat image terenkripsi dengan memberikan kunci enkripsi ke perintah pembuatan image. Untuk mengetahui informasi selengkapnya tentang enkripsi dalam penyimpanan dan kunci enkripsi yang disediakan pelanggan, lihat Enkripsi dalam penyimpanan dalam dokumentasi Google Cloud .
Siklus proses gambar
Setelah menyiapkan pipeline build image, Anda dapat menggunakan image untuk meluncurkan instance aplikasi secara andal. Meskipun pipeline dapat menangani pembuatan gambar, Anda juga harus memastikan bahwa mekanisme deployment Anda menggunakan versi gambar terbaru. Terakhir, Anda memerlukan proses untuk menyeleksi gambar, sehingga gambar lama dan usang tidak digunakan secara tidak sengaja.
Kelompok image
Kelompok image membantu Anda mengelola image dalam project dengan mengelompokkan image terkait, sehingga Anda dapat me-roll maju dan melakukan roll back di antara versi image tertentu. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik kelompok image.
Menghentikan penggunaan image
Sebagai administrator, Anda juga dapat me-roll back image yang ditunjuk oleh kelompok image dengan menghentikan penggunaan image menggunakan perintah berikut:
gcloud compute images deprecate my-application-v3-20161011 --state DEPRECATED
Anda dapat memilih dari berbagai status penghentian penggunaan:
Negara bagian/Provinsi | Deskripsi |
---|---|
TIDAK DIGUNAKAN LAGI | Gambar yang bukan lagi yang terbaru, tetapi masih dapat diluncurkan oleh pengguna. Pengguna akan melihat peringatan saat peluncuran bahwa mereka tidak lagi menggunakan gambar terbaru. |
OBSOLETE | Gambar yang tidak boleh diluncurkan oleh pengguna atau otomatisasi. Upaya untuk membuat instance dari image ini akan gagal. Anda dapat menggunakan status gambar ini untuk mengarsipkan gambar sehingga datanya tetap tersedia saat dipasang sebagai disk non-booting. |
DIHAPUS | Gambar yang telah dihapus atau ditandai untuk dihapus pada masa mendatang. Aplikasi ini tidak dapat diluncurkan, dan Anda harus menghapusnya sesegera mungkin. |
Menerapkan kebijakan siklus proses
Anda dapat menandai gambar untuk dihapus atau tidak digunakan lagi menggunakan
perintah gcloud compute images deprecate
. Anda dapat melampirkan metadata ke gambar untuk menandainya agar dihapus pada masa mendatang dengan memberikan salah satu tanda --delete-in
atau --delete-on
. Untuk melampirkan metadata guna menandai gambar yang akan usang di masa mendatang, berikan tanda --obsolete-in
atau --obsolete-on
. Anda dapat menggabungkan perintah ini ke dalam proses pembuatan image untuk menerapkan kebijakan siklus proses image yang membatasi penyebaran image yang sudah tidak berlaku dan kedaluwarsa dalam project Anda. Misalnya, di akhir pipeline pembuatan image, Anda dapat menyertakan pemeriksaan tambahan untuk image yang perlu dihentikan penggunaannya atau dihapus, lalu melakukan tindakan tersebut secara eksplisit.
Meskipun gambar yang tidak digunakan lagi dan dihapus tidak lagi ditampilkan melalui API dan UI secara default, Anda masih dapat melihatnya dengan memberikan tanda --show-deprecated
.
Untuk menghapus gambar dan datanya sepenuhnya, Anda harus mengirimkan
perintah hapus eksplisit
untuk gambar tersebut.
Membagikan image antar-project
Organisasi sering kali membuat beberapa Google Cloud project untuk mempartisi resource, lingkungan, dan akses pengguna mereka. Mengisolasi resource ke dalam project memungkinkan penagihan terperinci, penerapan keamanan, dan jaringan yang terpisah. Meskipun sebagian besar resource cloud tidak perlu mencakup beberapa project, image adalah kandidat yang baik untuk dibagikan di seluruh project. Dengan menggunakan sekumpulan image bersama, Anda dapat mengikuti proses umum untuk mengirimkan image dengan praktik terbaik untuk keamanan, otorisasi, pengelolaan paket, dan operasi yang telah dikonfigurasi sebelumnya untuk seluruh organisasi.
Anda membagikan image dengan menetapkan peran IAM ke project organisasi. Project yang berisi gambar yang ingin Anda bagikan ke project lain, yang disebut dalam diagram sebelumnya sebagai "Project Pembuatan Gambar", harus menerapkan peran dan kebijakan IAM berikut:
- Izinkan pengguna "Grup Pengguna Gambar" membuat instance dari gambar ini dengan memberi mereka peran
compute.imageUser
. - Izinkan "Pengguna Pembuatan Gambar" membuat instance dalam project ini dengan
memberinya peran
compute.instanceAdmin
. - Izinkan "Pengguna Pembuatan Gambar" membuat gambar dan disk dalam project ini
dengan memberikan peran
compute.storageAdmin
kepada mereka.
Project yang ingin Anda gunakan untuk image bersama harus mengizinkan pengguna dengan
peran compute.imageUser
membuat instance dengan menetapkan peran
compute.instanceAdmin
kepada mereka.
Untuk mengetahui petunjuk yang lebih mendetail tentang cara berbagi image antar-project, lihat Berbagi image antar-project dalam dokumentasi Compute Engine.
Langkah berikutnya
- Meninjau opsi impor gambar
- Bekerja dengan image booting
- Bekerja dengan gambar kustom