img

Изменение ресурсов AWS с Terraform

В прошлой статье мы рассмотрели, как создавать в амазоне инстансы с помощью Terraform. В данной статье мы рассмотрим, как изменять то, что мы создали в облаке.

Из прошлой статьи у нас есть работающий сервер в амазоне, теперь нам необходимо изменить его параметры.

Сервер в амазоне

Допустим мы решили, что нам одного сервера недостаточно и нам понадобился еще один сервер. Мы можем внести изменение. Вместо count 1, подставим значение 2.

count

Сохраняем изменение в файле. Пробуем запустить, команду которая покажет, что у нас произойдет - terraform plan.

terraform plan

Мы видим, что в результате наших действий, будет добавлен еще один сервер. Запускаем на выполнение terraform apply. Не забываем, что необходимо подтвердить наше действие напечатав yes.

terraform apply

Мы можем увидеть, что в результате наших действий изменилось количество бегущих серверов. Теперь их 2 штуки.

Следующий шаг. Давайте попробуем изменить, размер сервера. У нас был t2.micro, возьмем немного побольше сервер t3.micro и уберем один лишний сервер изменив параметр count c 2 на 1.

Вводим команду terraform plan и видим, что один сервер будет уничтожен, а второй будет изменен.

terraform plan

Ну и стандартное уже terraform apply с подтверждением своих действий. Перейдем в консоль амазон и посмотрим, что происходит.

terraform apply

Амазон, в соответствии с произведёнными изменениями меняет размер виртуального сервера и уничтожает лишний. Теперь, можно посмотреть в официальной документации resource aws_instance, те параметры, которые можно изменять таким нехитрым образом в амазон с помощью Terraform.

Давайте добавим так, чтобы обозначить, например, сервер. На старице в официальной документации, было показано, что внутрь ресурса надо добавить.

tags = {
    Name = "Vasya"
  }
tags

И отправляем изменения в амазон terraform apply. На выходе мы получим.

terraform apply

Сервер с именем Vasya. По факту мы не сделали ничего нового, просто изменили пустые параметры, грубо говоря просто подписали, добавили tags. Tags имеет смысл добавлять к каждому развертываемому серверу, потому что в крупных проектах, когда серверов более 100, а то и пол тысячи, будет очень легко запутаться и в параметрах и в запущенных серверах. В этом случае tag или по-другому метки, нас выручат очень хорошо.

tags

Обратите внимание, когда мы вносим, какое-либо изменение в код, то при выводе результата команды terraform plan, на против планируемых изменений мы видим знак + зеленый если добавляется что-то или знак - красный если мы, что-то убираем.

Еще не мало важный фактор. Нельзя вносить изменения в сервера, в ручном режиме через консоль, которые мы обслуживаем с помощью Terraform. Все, изменения, которые вы внесете в ручном режиме, будут удалены при синхронизации, потому что данных параметров нет в коде.

Следовательно, исходя из этого принципа, удалять ресурсы тоже необходимо через код. Делается это достаточно просто, просто необходимо удалить ресурс из кода или поставить параметр count = 0 внутри ресурса.

В нашем примере я изменил параметр count = 0. И можно видеть, что Terraform сообщил нам о том, что сервер будет уничтожен в облаке.

Destroyed

И действительно, если мы посмотрим в консоль, то мы увидим, что все сервера в облаке находятся в состоянии terminated, в течении полутора минут.

terminated

Это означает, что данные сервера выключены и готовятся к удалению. Если у нас несколько серверов предназначен для удаления, то Terraform будет производить выключение и последующее удаление данных серверов параллельно.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59