По большей части это довольно просто, и в Интернете уже есть дюжина реализаций.
Хитрая часть - это express поле 'create_before_destroy' в L C и ASG. Вы также должны обратиться к L C в вашем ресурсе ASG. Таким образом, после изменения L C вы запустите рабочий процесс, который создаст новую ASG, которая заменит вашу текущую.
Очень хороший документированный пример
Кроме того, у вас есть представление о том, как мы можем программно (через terraform) получить количество серверов, запущенных в любой момент времени, в случае автоматического масштабирования?
Это зависит от контекст. Если у вас есть номер c, это легко, вы можете определить его в своем модуле и придерживаться его. Если речь идет о передаче предыдущего значения ASG, то способ будет снова описан в руководстве выше :) Вам нужно написать собственный внешний обработчик для того, сколько в данный момент запущенных экземпляров у вас вокруг целевых групп. Конечно, может быть новое дополнение AWS REST API, которое даст вам возможность запросить все свойства проверки работоспособности ваших целевых групп и получить их общую сумму (не зная об этом). С другой стороны, вы можете добавить некоторые пользовательские правила для масштабирования политик.
Внешний обработчик
Примечание: в примере развертывание происходит с ELB.