Hashicorp Terraform adalah alat Infrastructure as Code (IaC) yang dapat Anda gunakan untuk 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 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 berguna untuk menentukan status akhir yang Anda inginkan untuk infrastruktur Anda. Kemudian, 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 apa yang akan dilakukan Terraform saat menerapkan konfigurasi. Dengan demikian, Anda dapat menghindari hal tidak terduga saat memodifikasi infrastruktur melalui Terraform.
- Terraform memungkinkan Anda mengemas dan menggunakan kembali kode umum dalam bentuk modul. Modul menyajikan antarmuka standar untuk membuat resource cloud. Mereka 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 dan tidak dapat di-deploy sebagai blueprint dan contoh memulai sebagai Jump Start Solutions.
- Terraform mencatat status infrastruktur saat ini, sehingga Anda dapat 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 pilihan untuk infrastruktur dalam file konfigurasi Terraform. Selanjutnya, 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 Anda sediakan dalam file konfigurasi Terraform. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan konfigurasi ini.
- Anda menjalankan perintah
terraform plan
, yang mengevaluasi konfigurasi Anda dan menghasilkan rencana eksekusi. Anda dapat meninjau rencana dan membuat perubahan sesuai kebutuhan. - Kemudian, jalankan perintah
terraform apply
, yang melakukan tindakan berikut:- Library ini menyediakan infrastruktur Anda berdasarkan rencana eksekusi dengan memanggil Google Cloud API yang sesuai di latar belakang.
- Fitur ini membuat file status Terraform, yang merupakan pemetaan resource berformat JSON dalam file konfigurasi Anda ke resource di infrastruktur dunia nyata. Terraform menggunakan file ini untuk mengetahui status terkini infrastruktur Anda, serta menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
- Selanjutnya, saat Anda menjalankan
terraform apply
, Terraform menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan perubahan yang diperlukan:- Jika objek resource yang ditentukan dalam file konfigurasi tidak ada di file status, Terraform akan membuatnya.
- Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dengan file konfigurasi Anda, Terraform akan memperbarui resource agar sesuai dengan file konfigurasi Anda.
- Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak mengubah resource tersebut.
Penyedia Google Cloud
Ada dua penyedia yang memungkinkan Anda menyediakan dan mengelola infrastruktur Google Cloud:
google
: Menggunakan penyedia ini untuk menyediakan dan mengelola Google Cloud API.google-beta
: Menggunakan penyedia ini untuk menyediakan dan mengelola API beta Google Cloud.
Untuk mengetahui petunjuk tentang penggunaan penyedia ini, lihat referensi konfigurasi penyedia Google Cloud.
Penyedia google
dan google-beta
dikembangkan menggunakan alat yang disebut
Modul Ajaib. Dengan Modul Ajaib, kontributor dapat membuat perubahan pada
satu codebase dan mengembangkan penyedia google
dan google-beta
secara bersamaan.
Anda dapat berkontribusi kepada penyedia Google Cloud menggunakan Modul Ajaib dengan mengikuti petunjuk di panduan kontribusi Modul Ajaib.
Langkah selanjutnya
- Pelajari cara membuat server web dasar di Compute Engine menggunakan Terraform
- Pelajari cara menyimpan status Terraform di bucket Cloud Storage
- Pelajari berbagai contoh Terraform untuk Google Cloud
- Pelajari modul dan blueprint Terraform untuk Google Cloud