Foundationপ্রথম নীতি থেকে
LEVEL 12 · Virtualization, Containers & Cloud

Terraform State

টেরাফর্ম স্টেট

Terraform-এর নিজের রেকর্ড — কোন `.tf` resource address কোন বাস্তব cloud resource ID-র সাথে মেলে, আর সেই resource-এর শেষ-জানা attribute কী — `plan` এই রেকর্ডের সাথেই desired config তুলনা করে, বাস্তব cloud-এর সাথে সরাসরি না।

also: tfstate, terraform.tfstate, state file

plan  = diff(desired .tf files, RECORDED state)   -- dry-run, side-effect নেই
apply = execute(diff)  + রেকর্ডেড state আপডেট
drift = বাস্তব cloud বদলেছে (manually), কিন্তু recorded state এখনো পুরনো
refresh = বাস্তব cloud পড়ে recorded state-কে বাস্তবতার সাথে মেলানো (.tf ছোঁয় না)
  • Cloud provider থেকে re-derive করা যায় না নির্ভরযোগ্যভাবে — resource-address-to-ID mapping আর sensitive attribute শুধু এখানেই থাকে
  • Stale state-এ plan নীরবে ভুল দেখাতে পারে — কোনো error ছাড়াই “কিছু বদলায়নি” বলা
  • Team সেটআপে remote backend (S3+DynamoDB, Terraform Cloud) + locking আবশ্যিক — concurrent apply-তে corruption ঠেকাতে
  • বিস্তারিত: virtualization-cloud/infrastructure-as-code-terraform লেসন