כשאתה עובד עם Terraform, יש קובץ קריטי שנקרא:
👉 terraform.tfstate
הקובץ הזה:
- ממפה בין הקוד שלך (Infrastructure as Code) לבין המשאבים בפועל (AWS, Azure וכו’)
- מכיל מידע רגיש (IDs, ARNs, metadata)
- משמש את Terraform כדי להבין מה קיים ומה צריך לשנות
הבעיה
אם כמה אנשים (או pipelines) מריצים terraform apply במקביל:
❌ יכול להיווצר מצב של:
- התנגשויות (race conditions)
- overwrite של state
- תשתית שבורה / inconsistent
הפתרון: State Locking
מנגנון שנועל את ה-state בזמן ריצה, כך:
- רק תהליך אחד יכול לשנות אותו בכל רגע
- אחרים ימתינו או ייכשלו
🧠 איך זה עבד עד היום (לפני Terraform 1.10)
כשהשתמשנו ב-S3 backend, היינו צריכים:
1. S3 Bucket