HashiCorp Terraform adalah alat Infrastructure-as-Code (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin bernama penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API lainnya. Anda dapat menggunakan penyedia Terraform for Google Cloud untuk menyediakan dan mengelola resource Google Cloud, termasuk Compute Engine.
Cara kerja Terraform
Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi, yang dapat Anda digunakan untuk menggambarkan infrastruktur yang ingin Anda sediakan dalam project Google Cloud Anda. Setelah Anda menulis konfigurasi ini di satu atau beberapa file konfigurasi Terraform, Anda dapat menggunakan Terraform CLI untuk ke resource Compute Engine Anda.
Langkah-langkah berikut menjelaskan cara kerja Terraform:
- Anda menjelaskan infrastruktur yang ingin Anda sediakan dalam Terraform file konfigurasi. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan infrastruktur. Terraform menyediakan infrastruktur untuk Anda.
- Anda menjalankan perintah
terraform plan
, yang mengevaluasi konfigurasi dan akan menghasilkan rencana eksekusi. Anda dapat meninjau rencana dan membuat perubahan sebagai diperlukan. -
Anda menjalankan perintah
terraform apply
, yang melakukan hal berikut tindakan:- Infrastruktur Anda sesuai dengan rencana eksekusi yang diterapkan dengan memanggil Compute Engine API yang sesuai di latar belakang.
- Perintah ini membuat file status Terraform, yang merupakan file JSON yang memetakan resource di file konfigurasi Anda ke sumber daya di infrastruktur dunia nyata. Penggunaan Terraform file ini untuk menyimpan catatan status terbaru infrastruktur Anda, dan untuk menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
-
Saat Anda menjalankan
terraform apply
, Terraform menggunakan pemetaan di file status untuk membandingkan infrastruktur yang ada dengan kode, dan membuat pembaruan yang diperlukan:- Jika objek sumber daya didefinisikan dalam file konfigurasi, namun tidak ada di dalam status, Terraform akan membuatnya.
- Jika objek resource ada di file status, tetapi memiliki resource dari file konfigurasi Anda, Terraform akan memperbarui resource untuk mencocokkan file konfigurasi Anda.
- Jika objek sumber daya dalam file status cocok dengan file konfigurasi Anda, Terraform tidak mengubah resource.
Panduan berbasis Terraform untuk Compute Engine
Tabel berikut berisi semua panduan cara kerja dan tutorial berbasis Terraform untuk Compute Engine:
Panduan | Detail |
---|---|
Membuat dan memulai instance Compute Engine | Menjelaskan cara membuat instance virtual machine (VM). |
Membuat VM dengan SSD Lokal disk | Menjelaskan cara membuat VM dengan penyimpanan disk SSD Lokal. |
Buat disk snapshot | Menjelaskan cara membuat snapshot standar untuk melakukan pencadangan secara berkala data dari disk. |
Menduplikasi disk dengan clone | Menjelaskan cara membuat clone disk zona dari disk yang ada. |
Membuat dan mengelola disk yang direplikasi secara sinkron | Menjelaskan cara membuat dan mengelola {i>disk<i} replika. |
Membuat dan menggunakan Spot VM | Menjelaskan cara membuat dan mengelola Spot VM. Spot VM adalah instance VM yang melebihi kapasitas Compute Engine. Spot VM tersedia di harga yang jauh lebih rendah dibandingkan harga on demand untuk VM standar |
Tambahkan kunci SSH ke VM | Menjelaskan cara menambahkan kunci SSH ke instance VM yang menggunakan Login OS dan VM yang menggunakan kunci SSH berbasis metadata. |
Menjalankan penonaktifan skrip | Menjelaskan cara membuat dan menjalankan skrip shutdown yang menjalankan perintah tepat sebelum instance VM dihentikan atau dimulai ulang. |
Buat reservasi untuk satu project | Menjelaskan cara membuat reservasi satu project, yang dapat hanya digunakan oleh instance VM dalam project yang sama. |
Membuat template instance | Menjelaskan cara membuat dan mengelola template instance. |
Penskalaan berdasarkan jadwal | Menjelaskan cara membuat jadwal penskalaan untuk MIG yang sudah ada. Penskalaan otomatis berbasis jadwal memungkinkan Anda meningkatkan ketersediaan workload dengan menjadwalkan kapasitas sebelum beban yang diantisipasi. |
Tambahkan Penyimpanan Persistent Disk ke VM Anda | Menjelaskan cara membuat volume Persistent Disk zona non-booting yang kosong dan memasangnya ke VM. |
Siapkan OS Login | Menjelaskan cara menyiapkan Login OS. |
Pasang disk non-boot ke Pesan Suara | Menjelaskan cara memasang disk zona non-boot ke VM Anda. |
Membuat VM yang menggunakan akun layanan yang dikelola pengguna | Menjelaskan cara membuat instance VM yang dikonfigurasi untuk menggunakan akun layanan yang dikelola pengguna. Akun layanan adalah jenis yang biasanya digunakan oleh aplikasi atau workload komputasi untuk membuat panggilan API yang diizinkan. |
Perbesar ukuran persistent disk | Menjelaskan cara meningkatkan ukuran persistent disk. |
Mengaktifkan tampilan virtual pada VM | Menjelaskan cara mengaktifkan tampilan virtual pada instance VM. |
Membuat MIG dalam satu zona | Menjelaskan cara membuat grup instance terkelola (MIG) dalam satu zona waktu. Menempatkan semua VM MIG Anda dalam satu zona membantu meminimalkan latensi yang berguna untuk workload tertentu—misalnya, batch sebagian besar workload standar dan berbasis cloud. |
Membuat VM instance dengan nama host kustom | Menjelaskan cara membuat instance VM dengan nama host kustom. |
Menyiapkan health check berbasis aplikasi dan autohealing | Menjelaskan cara menyiapkan health check berbasis aplikasi untuk pemulihan otomatis VM di MIG. |
Membuat MIG yang menggunakan preemptible VM | Menjelaskan cara membuat MIG yang menggunakan instance preemptible VM. Preemptible VM berguna jika workload Anda dapat menoleransi gangguan dan Anda ingin memanfaatkan penghematan biaya yang terkait dengan atau VM. |
Tambahkan dan menghapus VM dari MIG | Menjelaskan cara menambah dan menghapus VM dari MIG. |
Membuat MIG dengan penskalaan otomatis yang diaktifkan | Menjelaskan cara membuat MIG dengan penskalaan otomatis yang secara otomatis menambahkan dan menghapus VM berdasarkan pemakaian CPU rata-rata di seluruh grup. |
Membuat MIG dengan disk stateful | Menjelaskan cara membuat MIG yang menggunakan instance preemptible VM. Preemptible VM berguna jika workload Anda dapat menoleransi gangguan dan Anda ingin memanfaatkan penghematan biaya yang terkait dengan atau VM. |
Membuat instance VM SQL Server | Menjelaskan cara membuat instance VM Microsoft SQL Server. Server SQL adalah sistem {i>database<i} yang berjalan pada Windows Server dan beberapa Linux distribusi. Anda dapat menggunakan SQL Server di Compute Engine sebagai bagian dari backend untuk aplikasi Anda, sebagai pengembangan dan pengujian atau selain sistem lokal untuk pencadangan dan pemulihan dari bencana. |
Membuat penetapan kebijakan OS | Menjelaskan cara membuat penetapan kebijakan OS. Anda dapat menggunakan OS kebijakan untuk menjaga konfigurasi perangkat lunak yang konsisten di Linux dan di seluruh instance VM Windows. |
Mengonfigurasi metadata stateful di MIG | Menjelaskan cara mengonfigurasi metadata stateful di MIG. Penataan letak {i>metadata<i} berguna untuk mengatur properti dan berkomunikasi dengan aplikasi melalui server metadata. |
Mengonfigurasi persistent disk stateful di MIG | Menjelaskan cara mengonfigurasi persistent disk stateful di MIG. Mengonfigurasi persistent disk agar stateful, memungkinkan Anda mendapatkan manfaat dari VM autohealing instance dan update otomatis sembari mempertahankan status setiap disk. |
Mengonfigurasi alamat IP stateful di MIG | Menjelaskan cara mengonfigurasi alamat IP stateful di MIG. Menurut mengonfigurasi alamat IP stateful dalam MIG, Anda memastikan bahwa alamat IP dipertahankan ketika instance VM dalam grup disembuhkan secara otomatis, dibuat ulang. |
Menetapkan bentuk distribusi target untuk VM di MIG regional | Menjelaskan cara menetapkan bentuk distribusi target untuk VM. |
Buat MIG dengan VM di beberapa zona dalam satu region | Menjelaskan cara membuat MIG yang memiliki VM-nya yang tersebar di berbagai beberapa zona dalam sebuah region. Menyebarkan beban aplikasi di beberapa zona melindungi workload Anda dari kegagalan zona. |
Nonaktifkan dan mengaktifkan kembali redistribusi VM proaktif di MIG regional | Menjelaskan cara menonaktifkan dan mengaktifkan kembali distribusi ulang VM proaktif di MIG regional. Di MIG regional, untuk mempertahankan jumlah VM yang genap di seluruh zona yang dipilih dalam region, gunakan instance proaktif mendistribusikan ulang. Opsi konfigurasi ini memaksimalkan ketersediaan aplikasi Anda jika terjadi kegagalan tingkat zona. |
Modul dan blueprint Terraform untuk Compute Engine
Modul dan blueprint membantu Anda mengotomatisasi penyediaan dan pengelolaan resource Google Cloud dalam skala besar. Modul adalah kumpulan file konfigurasi Terraform yang dapat digunakan kembali yang membuat abstraksi logis resource Terraform. Blueprint adalah paket yang dapat di-deploy dan digunakan kembali modul, dan kebijakan yang menerapkan dan mendokumentasikan solusi tertentu.
Tabel berikut mencantumkan semua modul dan blueprint yang terkait dengan Compute Engine:
Modul atau blueprint | Detail |
---|---|
terraform-google-vm |
Kumpulan submodul yang tidak dapat berubah yang dapat Anda gunakan sebagai membangun pemblokiran VM untuk menyediakan VM di Google Cloud. |
terraform-google-startup-scripts |
Menyediakan library skrip startup yang berguna untuk disematkan di VM. |
terraform-google-container-vm |
Men-deploy container di instance Compute Engine |
Resource Terraform untuk Compute Engine
Resource adalah elemen dasar dalam bahasa Terraform. Masing-masing blok resource menjelaskan satu atau beberapa objek infrastruktur, seperti atau Compute Engine.
Tabel berikut mencantumkan resource Terraform yang tersedia untuk Compute Engine:
Langkah selanjutnya
- Contoh kode Terraform untuk Compute Engine
- Dokumentasi Terraform di Google Cloud
- Dokumentasi penyedia Google Cloud di HashiCorp
- Infrastruktur sebagai kode untuk Google Cloud