Локальный terraform.tfstate на диске разработчика удобен для экспериментов, но не шарится и легко теряется; remote backend (S3, GCS, Azure Blob, Terraform Cloud) хранит state централизованно для команды и CI.
Разбор
- Remote почти всегда нужен locking, чтобы два apply не пересеклись.
- Локальный state в git — антипаттерн (секреты + merge-конфликты).
- Миграция: добавить backend и
terraform init -migrate-state.
- CI должен читать тот же remote state, что и люди.
Итог
Для команды и CI remote state обязателен; локальный — только для песочницы.