Hashicorp Terraform adalah alat Infrastructure as code (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 (Penyedia Google Cloud) untuk menyediakan dan mengelola infrastruktur Google Cloud.
Manfaat menggunakan Terraform
Bagian ini menjelaskan beberapa manfaat penggunaan Terraform untuk menyediakan dan mengelola infrastruktur Google Cloud:
- Terraform adalah alat yang paling umum digunakan untuk menyediakan dan mengotomatiskan infrastruktur Google Cloud. Anda dapat menggunakan penyedia Google Cloud untuk mengonfigurasi dan mengelola semua resource Google Cloud menggunakan sintaksis dan alat deklaratif yang sama.
- Terraform memungkinkan Anda menentukan status akhir yang diinginkan untuk infrastruktur Anda. Selanjutnya, Anda dapat men-deploy konfigurasi yang sama beberapa kali untuk membuat lingkungan pengembangan, pengujian, dan produksi yang dapat direproduksi.
- Terraform memungkinkan Anda membuat rencana eksekusi yang menunjukkan tindakan yang akan dilakukan Terraform saat Anda menerapkan konfigurasi. Dengan begitu, Anda tidak akan terkejut saat mengubah infrastruktur melalui Terraform.
- Terraform memungkinkan Anda memaketkan dan menggunakan kembali kode umum dalam bentuk modul. Modul menampilkan antarmuka standar untuk membuat resource cloud. Hal ini menyederhanakan project dengan meningkatkan keterbacaan dan memungkinkan tim mengatur infrastruktur dalam blok yang dapat dibaca. Selain itu, Google Cloud memublikasikan sejumlah modul yang dapat di-deploy dengan opini sebagai blueprint dan contoh memulai sebagai Solusi Mulai Cepat.
- Terraform mencatat status infrastruktur Anda saat ini dan memungkinkan Anda mengelola status secara efektif. File status Terraform melacak semua resource dalam deployment.
Menggunakan Terraform
Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi, yang dapat Anda gunakan untuk menulis infrastruktur yang ingin Anda sediakan. Dengan menggunakan sintaksis ini, Anda akan menentukan status akhir yang diinginkan untuk infrastruktur dalam file konfigurasi Terraform. Kemudian, Anda akan menggunakan Terraform CLI untuk menyediakan infrastruktur berdasarkan file konfigurasi.
Langkah-langkah berikut menjelaskan cara kerja Terraform:
- Anda mendeskripsikan infrastruktur Google Cloud yang ingin disediakan dalam file konfigurasi Terraform. Anda tidak perlu membuat kode yang menjelaskan cara menyediakan konfigurasi ini.
- Anda menjalankan perintah
terraform plan
, yang mengevaluasi konfigurasi dan membuat rencana eksekusi. Anda dapat meninjau rencana dan melakukan perubahan sesuai kebutuhan. - Kemudian, Anda menjalankan perintah
terraform apply
, yang melakukan tindakan berikut:- Layanan ini menyediakan infrastruktur berdasarkan rencana eksekusi Anda dengan memanggil Google Cloud API yang sesuai di latar belakang.
- Tindakan ini akan membuat file status Terraform, yang merupakan pemetaan resource dalam file konfigurasi Anda ke resource dalam infrastruktur dunia nyata dalam format JSON. Terraform menggunakan file ini untuk mengetahui status terbaru infrastruktur Anda, dan untuk menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
- Selanjutnya, 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 yang ditentukan dalam file konfigurasi 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.
Penyedia Google Cloud
Ada dua penyedia yang memungkinkan Anda menyediakan dan mengelola infrastruktur Google Cloud:
google
: Gunakan penyedia ini untuk menyediakan dan mengelola Google Cloud API.google-beta
: Gunakan penyedia ini untuk menyediakan dan mengelola Google Cloud API beta.
Untuk petunjuk cara menggunakan penyedia ini, lihat referensi konfigurasi penyedia Google Cloud.
Penyedia google
dan google-beta
dikembangkan menggunakan alat yang disebut
Magic Modules. Modul Ajaib memungkinkan kontributor membuat perubahan pada
satu codebase dan mengembangkan penyedia google
dan google-beta
secara bersamaan.
Anda dapat berkontribusi pada penyedia Google Cloud menggunakan Magic Modules dengan mengikuti petunjuk dalam panduan kontribusi Magic Modules.
Langkah selanjutnya
- Pelajari cara membuat server web dasar di Compute Engine menggunakan Terraform
- Pelajari cara menyimpan status Terraform di bucket Cloud Storage
- Lihat berbagai contoh Terraform untuk Google Cloud
- Lihat modul dan blueprint Terraform untuk Google Cloud