Mendalami mekanisme state management dalam Terraform — konsep paling kritis yang membedakan Terraform dari tool provisioning sederhana.
Apa yang Akan Dipelajari? #
State adalah file JSON yang merekam mapping antara konfigurasi Terraform Anda dan resource aktual di infrastructure. State management yang buruk adalah penyebab #1 masalah di production Terraform. Section ini membahas semua aspek state dari local hingga remote, dari locking hingga migration.
Artikel dalam Section Ini #
| Artikel | Topik Utama |
|---|---|
| Local | State file lokal — cara kerja dan keterbatasannya |
| Remote | Remote backend (S3, GCS, Azure Blob) untuk team collaboration |
| Locking | Mencegah concurrent operation yang merusak state |
| Import | Membawa resource existing ke dalam Terraform state |
| Migration | Memindahkan state antar backend atau reorganisasi |
| Anti-Pattern | Kesalahan umum dalam state management yang harus dihindari |
State Flow #
flowchart TD
subgraph Write Path
TF["Terraform Apply"] --> SF["State File"]
SF -->|Lock| RB["Remote Backend<br/>(S3, GCS, Azure)"]
end
subgraph Read Path
TP["Terraform Plan"] -->|Read| SF2["Read State"]
SF2 -->|Compare| API["Cloud API<br/>(Actual State)"]
end
subgraph Drift
API -->|Diff| Drift["Drift Detected"]
Drift -->|Inform| TP
end
TF --> TP
style Write Path fill:#e3f2fd
style Read Path fill:#e8f5e9
style Drift fill:#fff3e0Local vs Remote State #
flowchart LR
subgraph Local["Local State"]
LS["terraform.tfstate<br/>Di local machine"]
LR["Hanya untuk<br/>solo developer"]
end
subgraph Remote["Remote State"]
RS["Backend: S3, GCS,<br/>Azure Blob, Terraform Cloud"]
RL["Locking built-in"]
RV["Version history"]
RT["Team collaboration"]
end
Local -->|"Migrate"| Remote
style Local fill:#ffebee
style Remote fill:#e8f5e9State Anti-Patterns #
flowchart TD
AP1["❌ Manual edit state file"] --> FIX1["✅ Gunakan terraform state mv/rm"]
AP2["❌ Shared state file tanpa locking"] --> FIX2["✅ Remote backend + locking"]
AP3["❌ Store secrets di state"] --> FIX3["✅ Encrypt state + limit access"]
AP4["❌ No state backup"] --> FIX4["✅ Enable versioning di backend"]
style AP1 fill:#ffebee
style AP2 fill:#ffebee
style AP3 fill:#ffebee
style AP4 fill:#ffebee
style FIX1 fill:#e8f5e9
style FIX2 fill:#e8f5e9
style FIX3 fill:#e8f5e9
style FIX4 fill:#e8f5e9State management yang baik adalah fondasi dari Terraform yang reliable di production. Lanjutkan ke Security untuk mempelajari cara melindungi state file dan secrets.