HashiCorp Terraform adalah alat infrastruktur sebagai kode (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin yang disebut penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API lainnya. Anda dapat menggunakan penyedia Terraform untuk Google Cloud guna menyediakan dan mengelola resource Google Cloud, termasuk Compute Engine.
Halaman ini memperkenalkan penggunaan Terraform dengan Compute Engine, termasuk pengantar tentang cara kerja Terraform dan beberapa referensi untuk membantu Anda mulai menggunakan Terraform dengan Google Cloud. Anda juga akan menemukan link ke dokumen referensi Terraform untuk Compute Engine, contoh kode, dan panduan untuk menggunakan Terraform guna menyediakan resource Compute Engine.
Untuk petunjuk cara memulai Terraform untuk Google Cloud, lihat Menginstal dan mengonfigurasi Terraform atau panduan memulai Terraform untuk Google Cloud.
Cara kerja Terraform
Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi yang dapat Anda gunakan untuk mendeskripsikan infrastruktur yang ingin Anda sediakan di project Google Cloud Anda. Setelah menulis konfigurasi ini di satu atau beberapa file konfigurasi Terraform, Anda dapat menggunakan Terraform CLI untuk menerapkan konfigurasi ini ke resource Compute Engine Anda.
Langkah-langkah berikut menjelaskan cara kerja Terraform:
- Anda mendeskripsikan infrastruktur yang ingin disediakan dalam file konfigurasi Terraform. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan infrastruktur. Terraform menyediakan infrastruktur untuk Anda.
- Anda menjalankan perintah
terraform plan
, yang mengevaluasi konfigurasi dan membuat rencana eksekusi. Anda dapat meninjau rencana dan melakukan perubahan sesuai kebutuhan. -
Anda menjalankan perintah
terraform apply
, yang melakukan tindakan berikut:- Alat ini menyediakan infrastruktur berdasarkan rencana eksekusi Anda dengan memanggil Compute Engine API yang sesuai di latar belakang.
- Tindakan ini akan membuat file status Terraform, yang merupakan file JSON yang memetakan resource dalam file konfigurasi Anda ke resource di infrastruktur dunia nyata. Terraform menggunakan file ini untuk menyimpan catatan status terbaru infrastruktur Anda, dan untuk menentukan waktu membuat, memperbarui, dan menghancurkan resource.
-
Saat Anda menjalankan
terraform apply
, Terraform akan menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan update sesuai kebutuhan:- Jika objek resource ditentukan dalam file konfigurasi, tetapi tidak ada dalam file status, Terraform akan membuatnya.
- Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dari file konfigurasi Anda, Terraform akan memperbarui resource agar cocok dengan file konfigurasi Anda.
- Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak akan mengubah resource.
Resource Terraform untuk Compute Engine
Resource adalah elemen dasar dalam bahasa Terraform. Setiap blok resource menjelaskan satu atau beberapa objek infrastruktur, seperti jaringan virtual atau instance komputasi.
Tabel berikut mencantumkan resource Terraform yang tersedia untuk Compute Engine:
Panduan berbasis Terraform untuk Compute Engine
Tabel berikut mencantumkan panduan dan tutorial cara kerja berbasis Terraform untuk Compute Engine:
Panduan | Detail |
---|---|
Membuat dan memulai instance Compute Engine | Menjelaskan cara membuat instance virtual machine (VM). |
Membuat VM dengan disk SSD Lokal | Menjelaskan cara membuat VM dengan penyimpanan disk SSD Lokal. |
Membuat snapshot disk | Menjelaskan cara membuat snapshot standar untuk mencadangkan data secara berkala dari disk. |
Menduplikasi disk dengan clone | Menjelaskan cara membuat clone disk zonal dari disk yang ada. |
Membuat dan mengelola disk regional | Menjelaskan cara membuat dan mengelola disk regional. |
Membuat dan menggunakan VM Spot | Menjelaskan cara membuat dan mengelola Spot VM. Spot VM adalah instance VM yang merupakan kapasitas Compute Engine berlebih. Spot VM tersedia dengan harga yang jauh lebih rendah dibandingkan dengan harga on-demand untuk VM standar |
Menambahkan 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 skrip shutdown | Menjelaskan cara membuat dan menjalankan skrip shutdown yang menjalankan perintah tepat sebelum instance VM dihentikan atau dimulai ulang. |
Membuat pemesanan untuk satu project | Menjelaskan cara membuat pemesanan satu project, yang hanya dapat digunakan oleh instance VM dalam project yang sama. |
Membuat template instance | Menjelaskan cara membuat dan mengelola template instance. |
Menskalakan berdasarkan jadwal | Menjelaskan cara membuat jadwal penskalaan untuk MIG yang ada. Dengan penskalaan otomatis berbasis jadwal, Anda dapat meningkatkan ketersediaan workload dengan menjadwalkan kapasitas sebelum beban yang diantisipasi. |
Menambahkan penyimpanan Persistent Disk ke VM Anda | Menjelaskan cara membuat volume Persistent Disk zonal kosong dan non-booting, lalu memasangnya ke VM Anda. |
Menyiapkan Login OS | Menjelaskan cara menyiapkan Login OS. |
Menyertakan disk non-boot ke VM | 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 akun khusus yang biasanya digunakan oleh aplikasi atau workload komputasi untuk melakukan panggilan API resmi. |
Meningkatkan ukuran persistent disk | Menjelaskan cara meningkatkan ukuran persistent disk. |
Mengaktifkan tampilan virtual di VM | Menjelaskan cara mengaktifkan tampilan virtual pada instance VM. |
Membuat MIG dalam satu zona | Menjelaskan cara membuat grup instance terkelola (MIG) dalam satu zona. Menempatkan semua VM MIG Anda dalam satu zona membantu meminimalkan latensi, yang berguna untuk workload tertentu, misalnya workload batch. |
Membuat instance VM dengan nama host kustom | Menjelaskan cara membuat instance VM dengan nama host kustom. |
Menyiapkan health check dan autohealing berbasis aplikasi | Menjelaskan cara menyiapkan health check berbasis aplikasi untuk melakukan pemulihan otomatis VM di MIG. |
Membuat MIG yang menggunakan preemptible VM | Menjelaskan cara membuat MIG yang menggunakan instance VM preemptible. Preemptible VM berguna jika beban kerja Anda dapat menoleransi gangguan, dan Anda ingin memanfaatkan penghematan biaya yang terkait dengan preemptible VM. |
Menambahkan dan menghapus VM dari MIG | Menjelaskan cara menambahkan dan menghapus VM dari MIG. |
Membuat MIG dengan penskalaan otomatis yang diaktifkan | Menjelaskan cara membuat MIG berskala otomatis yang otomatis menambahkan dan menghapus VM berdasarkan penggunaan CPU rata-rata di seluruh grup. |
Membuat MIG dengan disk stateful | Menjelaskan cara membuat MIG yang menggunakan instance VM preemptible. Preemptible VM berguna jika beban kerja Anda dapat menoleransi gangguan, dan Anda ingin memanfaatkan penghematan biaya yang terkait dengan preemptible VM. |
Membuat instance VM SQL Server | Menjelaskan cara membuat instance VM Microsoft SQL Server. SQL Server adalah sistem database yang berjalan di Windows Server dan beberapa distribusi Linux. Anda dapat menggunakan SQL Server di Compute Engine sebagai bagian dari backend untuk aplikasi, sebagai lingkungan pengembangan dan pengujian yang fleksibel, atau sebagai tambahan untuk sistem on-premise Anda untuk pencadangan dan disaster recovery. |
Membuat penetapan kebijakan OS | Menjelaskan cara membuat penetapan kebijakan OS. Anda dapat menggunakan kebijakan OS untuk mempertahankan konfigurasi software yang konsisten di seluruh instance VM Linux dan Windows. |
Mengonfigurasi metadata stateful di MIG | Menjelaskan cara mengonfigurasi metadata stateful di MIG. Metadata instance berguna untuk menetapkan properti dan berkomunikasi dengan aplikasi Anda melalui server metadata. |
Mengonfigurasi persistent disk stateful di MIG | Menjelaskan cara mengonfigurasi persistent disk stateful di MIG. Dengan mengonfigurasi persistent disk menjadi stateful, Anda dapat memanfaatkan autohealing instance VM dan update otomatis sekaligus mempertahankan status disk. |
Mengonfigurasi alamat IP stateful di MIG | Menjelaskan cara mengonfigurasi alamat IP stateful di MIG. Dengan mengonfigurasi alamat IP stateful di MIG, Anda memastikan bahwa alamat IP dipertahankan saat instance VM dalam grup di-autohealing, diperbarui, dan dibuat ulang. |
Menetapkan bentuk distribusi target untuk VM di MIG regional | Menjelaskan cara menetapkan bentuk distribusi target untuk VM. |
Membuat MIG dengan VM di beberapa zona dalam satu region | Menjelaskan cara membuat MIG yang VM-nya tersebar di beberapa zona dalam satu region. Menyebarkan beban aplikasi di beberapa zona akan melindungi workload Anda dari kegagalan zona.
|
Menonaktifkan dan mengaktifkan kembali redistribusi VM proaktif di MIG regional | Menjelaskan cara menonaktifkan dan mengaktifkan kembali redistribusi VM proaktif di MIG regional. Dalam MIG regional, untuk mempertahankan jumlah instance VM yang genap di seluruh zona yang dipilih dalam region, gunakan redistribusi instance proaktif. Opsi konfigurasi ini memaksimalkan ketersediaan aplikasi jika terjadi kegagalan tingkat zona. |
Modul dan blueprint Terraform untuk Compute Engine
Modul dan blueprint membantu Anda mengotomatiskan penyediaan dan pengelolaan resource Google Cloud dalam skala besar. Modul adalah kumpulan file konfigurasi Terraform yang dapat digunakan kembali dan membuat abstraksi logis resource Terraform. Blueprint adalah paket modul yang dapat di-deploy dan digunakan kembali, serta kebijakan yang menerapkan dan mendokumentasikan solusi tertentu.
Tabel berikut mencantumkan modul dan blueprint yang terkait dengan Compute Engine:
Modul atau blueprint | Detail |
---|---|
terraform-google-vm |
Kumpulan submodul opini yang dapat Anda gunakan sebagai elemen penyusun 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 |
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