Читаем 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

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

Старший брат следит за тобой. Как защитить себя в цифровом мире
Старший брат следит за тобой. Как защитить себя в цифровом мире

В эпоху тотальной цифровизации сложно представить свою жизнь без интернета и умных устройств. Но даже люди, осторожно ведущие себя в реальном мире, часто недостаточно внимательно относятся к своей цифровой безопасности. Между тем с последствиями такой беспечности можно столкнуться в любой момент: злоумышленник может перехватить управление автомобилем, а телевизор – записывать разговоры зрителей, с помощью игрушек преступники могут похищать детей, а к видеокамерам можно подключиться и шпионить за владельцами. Существуют и государственные проекты наподобие «Умного города», подразумевающие повсеместное внедрение видеокамер и технологий распознавания лиц.Все это не значит, что нужно стремиться к цифровому затворничеству и панически избегать гаджетов, но необходимо изучить и соблюдать элементарные правила безопасности. Михаил Райтман в своей книге рассказывает, как максимально снизить вероятность утечки персональных данных, осложнив задачу потенциальным злоумышленникам.

Михаил Анатольевич Райтман

Зарубежная компьютерная, околокомпьютерная литература
Восстановление данных на 100%
Восстановление данных на 100%

В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.

Петр Андреевич Ташков

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT