• В первый год использования AWS предлагает щедрый бесплатный тариф (https://aws.amazon.com/free/), который позволяет выполнить все эти примеры без денежных затрат. Если вы уже исчерпали свои бесплатные кредиты, работа с примерами из этой книги будет стоить не дороже нескольких долларов.
Не нужно волноваться, если вы прежде не использовали AWS или Terraform. Этот учебник подойдет для новичков в обеих технологиях. Я проведу вас через такие этапы, как:
• подготовка вашей учетной записи в AWS;
• установка Terraform;
• развертывание одного сервера;
• развертывание одного веб-сервера;
• развертывание конфигурируемого веб-сервера;
• развертывание кластера веб-серверов;
• развертывание балансировщика нагрузки;
• удаление ненужных ресурсов.
Пример кода
Напоминаю, что все примеры кода из этой книги доступны по адресу github.com/brikis98/terraform-up-and-running-code.
Подготовка вашей учетной записи в AWS
Если у вас нет учетной записи в AWS, пройдите на страницу aws.amazon.com и зарегистрируйтесь. Сразу после регистрации вы входите в систему в качестве корневого пользователя. Эта учетная запись позволяет делать что угодно, поэтому с точки зрения безопасности ее лучше не использовать регулярно. Она вам будет нужна только для создания других пользовательских учетных записей с ограниченными правами, на одну из которых вы должны немедленно переключиться26.
Чтобы создать более ограниченную учетную запись, следует использовать сервис Identity and Access Management (IAM). IAM — это то место, где происходит управление учетными записями пользователей и их правами. Чтобы создать нового пользователя IAM, перейдите в консоль IAM (https://amzn.to/33fM2jf), щелкните на ссылке Users (Пользователи) и затем нажмите кнопку Create New Users (Создать новых пользователей). Введите имя пользователя и убедитесь, что флажок Generate an access key for each user (Сгенерировать ключ доступа для каждого пользователя) установлен, как показано на рис. 2.1. Имейте в виду, что AWS вносит косметические изменения в свою веб-консоль, поэтому на момент чтения этой книги страницы IAM могут немного отличаться.
Рис. 2.1. Создание нового пользователя IAM
Нажмите кнопку Create (Создать). AWS покажет вам учетные данные доступа этого пользователя, которые, как видно на рис. 2.2, состоят из ID ключа доступа (Access Key ID) и секретного ключа доступа (Secret Access Key). Их следует немедленно сохранить, поскольку их больше никогда не покажут, а они в этом руководстве еще понадобятся. Помните, что эти данные дают доступ к вашей учетной записи в AWS, поэтому храните их в безопасном месте (например, в диспетчере паролей, таком как 1Password, LastPass или OS X Keychain) и никогда никому не давайте.
Сохранив свои учетные данные, нажмите кнопку Close (Закрыть). Таким образом вы перейдете к списку пользователей IAM. Щелкните на имени пользователя, которого только что создали, и выберите вкладку Permissions (Права доступа). Новые пользователи IAM по умолчанию лишены всяких прав и, следовательно, не могут ничего делать в рамках учетной записи AWS.
Рис. 2.2. Храните свои учетные данные AWS в надежном месте. Никому их не показывайте (не волнуйтесь, те, что на снимке экрана, — ненастоящие)
Чтобы выдать пользователю IAM какие-то права, вы должны связать его учетную запись с одной или несколькими политиками IAM. Политика IAM — это документ в формате JSON, который определяет, что пользователю позволено, а что — нет. Вы можете создавать свои собственные политики или обойтись уже готовыми, которые называются управляемыми политиками27.
Для выполнения примеров из этой книги вам нужно назначить своему пользователю IAM следующие управляемые политики (рис. 2.3).
•AmazonEC2FullAccess — требуется для этой главы.
• AmazonS3FullAccess — требуется для главы 3.
• AmazonDynamoDBFullAccess — требуется для главы 3.
• AmazonRDSFullAccess — требуется для главы 3.
• CloudWatchFullAccess — требуется для главы 5.
• IAMFullAccess — требуется для главы 5.
Рис. 2.3. Назначение нескольких управляемых политик IAM вашему новому пользователю IAM
Замечание о виртуальных частных облаках по умолчанию
Если вы используете существующую учетную запись AWS, у нее уже должно быть облако VPC по умолчанию. VPC (Virtual Private Cloud — виртуальное частное облако) — это изолированная область вашей учетной записи AWS с собственными виртуальной сетью и пространством IP-адресов. Практически любой ресурс AWS развертывается в VPC. Если не указать VPC явно, ресурс будет развернут в VPC по умолчанию, которое является частью всех новых учетных записей AWS. VPC по умолчанию применяется во всех примерах в этой книге, поэтому, если по какой-то причине вы его удалили, переключитесь на другой регион (у каждого региона свое облако VPC по умолчанию) или создайте новое в веб-консоли AWS (https://amzn.to/31lVUWW). В противном случае вам придется обновить почти все примеры, добавив в них параметр vpc_id или subnet_id, который указывает на пользовательское VPC.