AWS: CloudFormation Drift — обнаружение изменений

Автор: | 14/11/2018

Вчера в блоге AWS появилась преинтереснейшая новость: AWS CloudFormation обзавёлся поддержкой изменений в стеке, выполеннных вручную.

Очень частовстречающая проблема при использовании CloudFormation заключается в том, что он не обращает внимание на внесённые изменения, которые не были добавлены в шаблон. В результате — это иногда приводило к проблемам при апдейте стека.

Теперь появилась возможность перед апдейтом проверить текущее состояние инфраструктуры, и сравнить его с шаблоном CF, из которого был создан стек.

Документация — тут>>>.

Работает он аналогично Change Set-ам — в меню Actions выбирается новая опция Drift, CF создаёт «снимок» текущего состояния, и сранивает с шаблоном, из которог остек был создан.

Пример:

В Details есть список ресурсов с изменениями:

Теперь можно добавить изменения в шаблон или внести изменения в ресурс вручную и вернуть его в исходное состояние перед выполнением обновления.

Осталось только выяснить почему у некоторых стеков при повторном запуске Drift появляется ошибка «DETECTION_FAILED» (первая проверка прошла нормально), при чём при перезапуске — список «failed» ресурсов отличается. Учитывая, что функционал только ввели — может просто какие-то баги у AWS.

В любом случае — крайне полезная возможность.

Ещё пришла в голову мысль, что можно автоматизировать такие проверки, и делать алерты на изменения. CloudTrail вещь хорошая, но использование Drift — тоже вариант.