👋🏻 Привет! С вами снова Merion Academy - платформа доступного IT образования. Сегодня мы разберем изменение ресурсов AWS с Terraform. Гооу.
В прошлой статье мы рассмотрели, как создавать в амазоне инстансы с помощью Terraform. В данной статье мы рассмотрим, как изменять то, что мы создали в облаке.
Из прошлой статьи у нас есть работающий сервер в амазоне, теперь нам необходимо изменить его параметры.
Допустим мы решили, что нам одного сервера недостаточно и нам понадобился еще один сервер. Мы можем внести изменение. Вместо count 1, подставим значение 2.
Сохраняем изменение в файле. Пробуем запустить, команду которая покажет, что у нас произойдет - terraform plan.
Мы видим, что в результате наших действий, будет добавлен еще один сервер. Запускаем на выполнение terraform apply. Не забываем, что необходимо подтвердить наше действие напечатав yes.
Мы можем увидеть, что в результате наших действий изменилось количество бегущих серверов. Теперь их 2 штуки.
Следующий шаг. Давайте попробуем изменить, размер сервера. У нас был t2.micro, возьмем немного побольше сервер t3.micro и уберем один лишний сервер изменив параметр count c 2 на 1.
Вводим команду terraform plan и видим, что один сервер будет уничтожен, а второй будет изменен.
Ну и стандартное уже terraform apply с подтверждением своих действий. Перейдем в консоль амазон и посмотрим, что происходит.
Амазон, в соответствии с произведёнными изменениями меняет размер виртуального сервера и уничтожает лишний. Теперь, можно посмотреть в официальной документации resource aws_instance, те параметры, которые можно изменять таким нехитрым образом в амазон с помощью Terraform.
Давайте добавим так, чтобы обозначить, например, сервер. На старице в официальной документации, было показано, что внутрь ресурса надо добавить.
tags = {
Name = "Vasya"
}
И отправляем изменения в амазон terraform apply. На выходе мы получим.
Сервер с именем Vasya. По факту мы не сделали ничего нового, просто изменили пустые параметры, грубо говоря просто подписали, добавили tags. Tags имеет смысл добавлять к каждому развертываемому серверу, потому что в крупных проектах, когда серверов более 100, а то и пол тысячи, будет очень легко запутаться и в параметрах и в запущенных серверах. В этом случае tag или по-другому метки, нас выручат очень хорошо.
Обратите внимание, когда мы вносим, какое-либо изменение в код, то при выводе результата команды terraform plan, на против планируемых изменений мы видим знак + зеленый если добавляется что-то или знак - красный если мы, что-то убираем.
Еще не мало важный фактор. Нельзя вносить изменения в сервера, в ручном режиме через консоль, которые мы обслуживаем с помощью Terraform. Все, изменения, которые вы внесете в ручном режиме, будут удалены при синхронизации, потому что данных параметров нет в коде.
Следовательно, исходя из этого принципа, удалять ресурсы тоже необходимо через код. Делается это достаточно просто, просто необходимо удалить ресурс из кода или поставить параметр count = 0 внутри ресурса.
В нашем примере я изменил параметр count = 0. И можно видеть, что Terraform сообщил нам о том, что сервер будет уничтожен в облаке.
И действительно, если мы посмотрим в консоль, то мы увидим, что все сервера в облаке находятся в состоянии terminated, в течении полутора минут.
Это означает, что данные сервера выключены и готовятся к удалению. Если у нас несколько серверов предназначен для удаления, то Terraform будет производить выключение и последующее удаление данных серверов параллельно.
--
До встречи на нашей образовательной платформе.
Merion Academy - платформа доступного IT образования.