Читаем Terraform: инфраструктура на уровне кода полностью

На этом этапе можно видеть, как ваш кластер реагирует на создание новых и удаление старых серверов. Например, перейдите на вкладку Instances (Серверы) и удалите один из серверов: установите флажок, нажмите вверху кнопку Actions (Действия) и затем поменяйте состояние сервера на Terminate (Удалить). Если вы снова попробуете обратиться к тестовому URL-адресу ALB, каждый ваш запрос должен вернуть 200OK даже после удаления сервера. ALB автоматически обнаружит, что сервера больше нет, и перестанет направлять к нему трафик. Что еще интересней, вскоре после удаления ASG поймет, что у нас остался один сервер вместо двух, и автоматически запустит замену (самовосстановление!). Чтобы увидеть, как ASG меняет свой размер, можете добавить в свой код Terraform параметр desired_capacity и снова выполнить команды apply.

Удаление ненужных ресурсов

Когда вы закончите экспериментировать с Terraform в конце этой или одной из следующих глав, желательно удалить все созданные вами ресурсы, чтобы за них не пришлось платить. Поскольку Terraform отслеживает все, что вы создаете, это не составит проблемы. Достаточно выполнить команду destroy:

$ terraform destroy

(...)

Terraform will perform the following actions:

  # aws_autoscaling_group.example will be destroyed

  - resource "aws_autoscaling_group" "example" {

      (...)

    }

  # aws_launch_configuration.example will be destroyed

  - resource "aws_launch_configuration" "example" {

      (...)

    }

  # aws_lb.example will be destroyed

  - resource "aws_lb" "example" {

      (...)

    }

  (...)

Plan: 0 to add, 0 to change, 8 to destroy.

Do you really want to destroy all resources?

  Terraform will destroy all your managed infrastructure, as shown above.

  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value:

Вы, наверное, и сами понимаете, что команда destroy в промышленной среде должна использоваться редко (или вообще никогда). Ее нельзя отменить, поэтому Terraform даст вам последний шанс взглянуть на свои действия, отобразив на экране список всех ресурсов, которые будут удалены, и запросит у вас подтвер­ждение. Если все выглядит хорошо, введите yes и нажмите клавишу Enter. Terraform построит граф зависимостей и удалит все ваши ресурсы в корректном порядке, как можно сильнее распараллеливая этот процесс. Через одну-две минуты ваша учетная запись AWS снова будет пустой.

Имейте в виду, что в дальнейшем мы продолжим разрабатывать этот пример, поэтому не удаляйте код Terraform! Но вы можете в любой момент выполнить коман­ду destroy, чтобы удалить уже развернутые ресурсы. Прелесть концепции IaC в том, что вся информация об этих ресурсах описана в коде, поэтому при желании вы можете воссоздать их все с помощью одной команды: terraformapply. На самом деле последние внесенные изменения лучше зафиксировать в Git, чтобы вы могли отслеживать историю своей инфраструктуры.

Резюме

У вас теперь есть общее преставление об использовании Terraform. Декларативный язык позволяет легко описывать именно ту инфраструктуру, которую вы хотите создать. С помощью команды plan можно просмотреть потенциальные изменения и устранить ошибки, прежде чем приступать к развертыванию. Переменные, ссылки и зависимости позволяют избавить ваш код от повторяющихся фрагментов и сделать его максимально конфигурируемым.

Но это лишь начало. Из главы 3 вы узнаете, как Terraform следит за тем, какая инфраструктура уже была создана, и то, насколько сильно это влияет на структурирование кода Terraform. В главе 4 научитесь применять модули Terraform для создания инфраструктуры, пригодной для повторного использования.

25 Если технологии AWS кажутся вам запутанными, обязательно почитайте статью AWS in Plain English по адресу expeditedsecurity.com/aws-in-plain-english/.

26 Подробнее о рекомендуемых подходах к управлению пользователями в AWS можно почитать по ссылке amzn.to/2lvJ8Rf.

27 Больше о политиках IAM можно узнать на сайте AWS по адресу docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html.

28 Код Terraform можно также писать на чистом JSON и хранить в файлах с расширением .tf.json. Больше о синтаксисе HCL и JSON можно узнать на сайте Terraform: bit.ly/2MDZyaN.

29 На GitHub по адресу bit.ly/2OIIrr2 можно найти полезный список однострочных HTTP-серверов.

30 Больше о принципе работы CIDR можно узнать на странице в «Википедии» по адресу bit.ly/2l8Ki9g. Для преобразования диапазонов IP-адресов в CIDR и обратно можете использовать веб-калькулятор cidr.xyz или установить команду ipcalc в своем терминале.

31 Из книги: Хант Э., Томас Д. Программист-прагматик. Путь от подмастерья к мастеру (The Pragmatic Programmer). — М.: Лори, 2009.

32 Более подробное обсуждение построения высокодоступных и масштабируемых систем в AWS приводится в статье по адресу bit.ly/2mpSXUZ.

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

В отличие от множества трудов, посвященных руководству проектами и командами, в этой книге не проповедуются никакие новые учения и не превозносятся великие теории. Скотт Беркун считает залогом успеха практику и разнообразие подходов. В книге описываются основные сложности и проблемные ситуации, возникающие в работе менеджера проекта, даны рекомендации по выходу из них.Издание предназначено не только для лидеров команд и менеджеров высшего звена, но и для программистов, тестеров и других исполнителей конкретных проектных заданий. Также оно будет полезно студентам, изучающим бизнес-менеджмент, проектирование изделий или программную инженерию.Текст нового издания значительно переработан автором с целью добиться большей ясности, кроме того, книга дополнена новым приложением и более чем 120 практическими упражнениями.

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги