Praktik terbaik untuk operasi Terraform

Dokumen ini memberikan panduan dan rekomendasi untuk operasi Terraform.

Panduan ini bukan merupakan pengantar untuk Terraform. Untuk pengantar penggunaan Terraform dengan Google Cloud, baca Mulai menggunakan Terraform.

Selalu membuat rencana terlebih dahulu

Selalu buat rencana terlebih dahulu untuk eksekusi Terraform. Simpan rencana ke file output. Setelah pemilik infrastruktur menyetujuinya, jalankan rencana. Meskipun membuat perubahan prototipe secara lokal, developer harus membuat rencana dan meninjau resource yang akan ditambahkan, diubah, dan dihancurkan sebelum menerapkan rencana.

Menerapkan pipeline otomatis

Untuk memastikan konteks eksekusi yang konsisten, jalankan Terraform melalui alat otomatis. Jika sistem build (seperti Jenkins) sudah digunakan dan diadopsi secara luas, gunakan sistem tersebut untuk menjalankan perintah terraform plan dan terraform apply secara otomatis. Jika tidak ada sistem yang tersedia, gunakan Cloud Build atau Terraform Cloud.

Menggunakan kredensial akun layanan untuk continuous integration

Ketika dijalankan dari mesin di pipeline CI/CD, Terraform akan mewarisi kredensial akun layanan dari layanan yang menjalankan pipeline. Jika memungkinkan, jalankan pipeline CI di Google Cloud karena Cloud Build, Google Kubernetes Engine, atau Compute Engine memasukkan kredensial tanpa mendownload kunci akun layanan.

Untuk pipeline yang berjalan di luar Google Cloud, pilih workload identity federation untuk mendapatkan kredensial tanpa mendownload kunci akun layanan.

Menghindari impor resource yang sudah ada

Jika memungkinkan, hindari mengimpor resource yang sudah ada (menggunakan terraform import), karena hal ini dapat mempersulit pemahaman tentang asal dan konfigurasi resource yang dibuat secara manual. Sebagai gantinya, buat resource baru melalui Terraform dan hapus resource lama.

Jika menghapus resource lama akan menimbulkan toil yang signifikan, gunakan perintah terraform import dengan persetujuan eksplisit. Setelah resource diimpor ke Terraform, kelola resource secara eksklusif dengan Terraform.

Jangan mengubah status Terraform secara manual

File status Terraform sangat penting untuk mempertahankan pemetaan antara konfigurasi Terraform dan resource Google Cloud. Kerusakan dapat menyebabkan masalah infrastruktur besar. Jika perubahan status Terraform diperlukan, gunakan perintah terraform state.

Meninjau pin versi secara rutin

Penyematan versi akan memastikan stabilitas, tetapi mencegah perbaikan bug dan peningkatan lainnya disertakan ke dalam konfigurasi Anda. Oleh karena itu, tinjau pin versi untuk Terraform, penyedia Terraform, dan modul secara rutin.

Untuk mengotomatiskan proses ini, gunakan alat seperti Dependabot.

Menggunakan kredensial default aplikasi saat berjalan secara lokal

Saat melakukan iterasi secara lokal pada konfigurasi Terraform, developer harus melakukan autentikasi dengan menjalankan gcloud auth application-default login untuk membuat kredensial default aplikasi. Jangan mendownload kunci akun layanan, karena kunci yang didownload lebih sulit dikelola dan diamankan.

Menetapkan alias ke Terraform

Untuk mempermudah pengembangan lokal, Anda dapat menambahkan alias ke profil command shell:

  • alias tf="terraform"
  • alias terrafrom="terraform"

Langkah selanjutnya