Kamu udah capek-capek coding Terraform (IaC) rapi, tapi tiba-tiba ada hotfix manual di console AWS/GCP? Selamat, infrastrukturmu kena "Drift".
Artikel dari Dev.to ini membahas cara mendeteksi dan menangani Configuration Drift sebelum jadi bencana. Ini bedahannya:
1. ⚠️ Problem Statement (Masalah)
* The Silent Killer: Drift terjadi ketika kondisi asli infrastruktur (Cloud) berbeda dengan kode Terraform (State file).
* Penyebab: Ada yang ubah Security Group manual lewat UI, ada resource yang dihapus orang lain, atau ada update otomatis dari cloud provider.
* Impact: Saat kamu jalanin terraform apply berikutnya, Terraform mungkin akan menghapus perubahan manual penting itu, atau gagal eksekusi karena konflik state.
2. 🛠️ Metodologi & Solusi
Solusinya adalah menerapkan Automated Drift Detection dalam pipeline CI/CD.
* Scheduled Plan: Jangan cuma jalanin terraform plan saat mau deploy. Jadwalkan Plan otomatis (misal: tiap malam) untuk mengecek perbedaan.
* Notification System: Jika terraform plan mendeteksi perubahan (changes > 0) di luar jam deployment, kirim alert ke Slack/Email tim.
* Tools: Gunakan alat bantu seperti Driftctl atau fitur bawaan Terraform Cloud/Atlantis.
3. 📈 Findings & Strategi Remediasi
Ada dua cara menangani Drift:
* Overwrite (Revert): Jika perubahan manual itu salah/ilegal, timpa balik dengan kode Terraform asli (terraform apply).
* Import (Accept): Jika perubahan manual itu penting (misal hotfix critical), update kode Terraform kamu agar sesuai dengan kondisi cloud (terraform import atau update .tf file).
4. 💡 Key Takeaways
* Trust No One: Jangan percaya bahwa infrastrukturmu aman cuma karena kode-nya aman. Realita di cloud bisa berubah.
* IaC Discipline: Tutup akses "Write" manual di console AWS/GCP (ClickOps) untuk memaksa semua perubahan lewat kode.
* Early Detection: Menemukan drift 24 jam setelah kejadian jauh lebih mudah diperbaiki daripada menemukannya 1 bulan kemudian saat mau rilis fitur besar.
💻 How to Implement (Simple Cron)
Kamu bisa bikin deteksi murah meriah pakai GitHub Actions / GitLab CI:
* Buat Workflow Terjadwal:
on:
schedule:
- cron: '0 0 * * *' # Jalan tiap tengah malam
* Jalankan Plan Only:
terraform init
terraform plan -detailed-exitcode
Note: Flag -detailed-exitcode akan return code 2 jika ada drift.
* Kirim Alert:
Jika exit code == 2, kirim notifikasi ke Slack Webhook: "⚠️ Alert: Drift Detected on Production!"
🔗 Baca Tutorial Lengkapnya:
https://dev.to/devin-rosario/implementing-terraform-drift-detection-in-your-workflow-56op
#Terraform #DevOps #IaC #Infrastructure #CloudEngineering #SRE #AWS #DriftDetection #Automation