Виявлення та усунення дрифту Terraform
Дрифт Terraform створює приховані ризики у вашому продуктивному середовищі. Це стається, коли ваша реальна інфраструктура більше не відповідає вашому коду.
Така невідповідність спричиняє збої в роботі. Вона створює прогалини в безпеці. Вона призводить до порушень відповідності стандартам.
Чому виникає дрифт?
- Інженери вносять термінові виправлення (hotfixes) безпосередньо в консолі хмари.
- Команди вносять ручні зміни під час інцидентів.
- Користувачі створюють ресурси поза межами вашого робочого процесу IaC.
- Швидкість розробки випереджає ваші правила управління (governance).
Приклад: Ваш код визначає екземпляр EC2 як t2.micro. Інженер вручну змінює його на t2.large в консолі AWS. Тепер ваш код і реальність відрізняються. Це і є дрифт.
Як його виявити:
Виконайте команду terraform plan. Вона покаже розбіжність між вашим кодом і хмарою. Зауважте, що деякі ручні зміни можуть залишитися непоміченими, якщо вони не стосуються конкретних ресурсів, які відстежує Terraform.
Як його запобігти:
- Використовуйте remote backend. Зберігайте свій state в AWS S3. Це забезпечить безпеку та версійність файлу стану для всієї вашої команди.
- Використовуйте GitOps. Зробіть Git єдиним джерелом істини. Кожна зміна має проходити через pull request.
- Автоматизуйте тестування. Перевіряйте зміни в інфраструктурі перед їх впровадженням.
- Постійно здійснюйте моніторинг. Використовуйте такі інструменти, як AWS Config або Spacelift, щоб отримувати сповіщення, коли зміни відбуваються поза межами вашого коду.
Як його виправити:
Якщо ви виявили дрифт, ви повинні привести інфраструктуру у відповідність до вашого коду. Використовуйте команду terraform apply, щоб перезаписати ручні зміни та відновити запланований стан.
Послідовність забезпечує стабільність ваших систем.
Source: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
Optional learning community: https://t.me/GyaanSetuAi