Praktik terbaik untuk menyediakan resource Google Cloud dengan Terraform terintegrasi dalam modul Cloud Foundation Toolkit yang dikelola oleh Google. Dokumen ini menegaskan kembali beberapa praktik terbaik ini.
Panduan ini bukan merupakan pengantar untuk Terraform. Untuk pengantar penggunaan Terraform dengan Google Cloud, baca Mulai menggunakan Terraform.
Menyimulasikan image virtual machine
Secara umum, sebaiknya Anda membuat image virtual machine menggunakan alat seperti Packer. Terraform kemudian hanya perlu meluncurkan mesin menggunakan gambar yang telah dibuat sebelumnya.
Jika gambar yang dibuat sebelumnya tidak tersedia, Terraform dapat menyerahkan virtual
machine baru ke alat manajemen konfigurasi dengan blok provisioner
. Sebaiknya
hindari metode ini dan hanya gunakan sebagai
upaya terakhir.
Untuk membersihkan status lama yang terkait dengan instance, penyedia yang memerlukan
logika penghapusan harus menggunakan blok provisioner
dengan when = destroy
.
Terraform harus memberikan informasi konfigurasi VM ke manajemen konfigurasi dengan metadata instance.
Mengelola Identity and Access Management
Saat menyediakan asosiasi IAM dengan Terraform, tersedia beberapa resource yang berbeda:
google_*_iam_policy
(misalnya,google_project_iam_policy
)google_*_iam_binding
(misalnya,google_project_iam_binding
)google_*_iam_member
(misalnya,google_project_iam_member
)
google_*_iam_policy
dan google_*_iam_binding
membuat asosiasi IAM otoritatif,
dengan resource Terraform berfungsi sebagai satu-satunya
sumber tepercaya untuk izin yang dapat ditetapkan ke resource yang relevan.
Jika izin berubah di luar Terraform, Terraform pada eksekusi berikutnya akan menimpa semua izin untuk mewakili kebijakan seperti yang ditetapkan dalam konfigurasi Anda. Hal ini mungkin masuk akal untuk resource yang sepenuhnya dikelola oleh konfigurasi Terraform tertentu, tetapi hal ini berarti peran yang dikelola secara otomatis oleh Google Cloud akan dihapus, yang berpotensi mengganggu fungsionalitas beberapa layanan.
Untuk mencegah hal ini, sebaiknya gunakan resource google_*_iam_member
secara langsung atau
modul IAM dari Google.
Langkah selanjutnya
- Pelajari praktik terbaik untuk kontrol versi.
- Pelajari praktik terbaik untuk operasi Terraform.