Если вам нужно настроить AWS Virtual Private Cloud (VPC), вы можете сделать это через консоль управления AWS, но автоматизация делает это намного интереснее! В сценарии DevOps построение сервисов AWS с помощью инструментов, таких как Terraform, является более масштабируемым и автоматизированным подходом к предоставлению облачных ресурсов.
В этом руководстве вы узнаете, как создать и выполнить конфигурацию Terraform для создания VPC с нуля!
Предварительные требования
Это пошаговое руководство. Если вы хотите следовать за ним, убедитесь, что у вас есть следующие компоненты:
- Аккаунт AWS
- Terraform – В этом руководстве будет использоваться Terraform v0.14.9, работающий на Ubuntu 18.04.5 LTS, но с любой операционной системой, на которой установлен Terraform, должно работать.
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should have one that understands the HCL Terraform language. Try out Visual Studio (VS) Code.
Понимание AWS VPC
Облачная платформа AWS включает в себя десятки различных услуг, начиная от вычислений, хранения и сетевых технологий. Каждая из этих услуг может взаимодействовать друг с другом, как услуги центра обработки данных на месте. Однако каждая из этих услуг независима друг от друга, и они не обязательно изолированы от других услуг. Это изменяется с помощью AWS VPC.
AWS VPC – это единая сеть, которая позволяет вам запускать услуги AWS в рамках изолированной сети. Технически AWS VPC практически идентичен владению центром обработки данных, но с встроенными дополнительными преимуществами масштабируемости, устойчивости к сбоям, неограниченного хранилища и т. д.

AWS VPC ограничены по регионам. Нельзя создать VPC, охватывающий несколько регионов, с поддержкой до пяти VPC на регион.
Создание конфигурации Terraform для AWS VPC
Достаточно разговоров, давайте приступим к созданию!
1. Для начала создайте папку для хранения файлов конфигурации Terraform. В этом руководстве будет создана папка с именем terraform-vpc-demo в вашем домашнем каталоге.
2. Откройте ваш любимый редактор кода и скопируйте/вставьте следующую конфигурацию, которая уже создана для вас, сохраните файл как main.tf внутри каталога ~/terraform-vpc-demo. Информация о каждом создаваемом ресурсе приведена внутри.
Файл main.tf содержит все ресурсы, которые должны быть созданы.
Terraform использует несколько различных типов файлов конфигурации. Каждый файл написан либо в формате обычного текста, либо в формате JSON. У них есть определенное соглашение по именованию, либо в формате .tf, либо в формате .tfjson.
Ниже приведена конфигурация Terraform:
- Создает VPC
- Создает Интернет-шлюз и прикрепляет его к VPC, чтобы трафик внутри VPC был доступен извне.
- Создает публичную и частную подсеть
Подсети – это сети внутри сетей. Они предназначены для более эффективного потока сетевого трафика и предоставляют более мелкие, более управляемые «куски» IP-адресов.
- Создает таблицу маршрутизации для публичной и частной подсетей и ассоциирует таблицу с обеими подсетями
- Создает Шлюз NAT, чтобы частные подсети могли обращаться в Интернет без необходимости назначать внешний маршрутизируемый IP-адрес каждому ресурсу.
3. Теперь создайте еще один файл внутри каталога ~/terraform-vpc-demo, назовите его vars.tf и вставьте содержимое ниже.
Vars.tf – это файл переменных Terraform, который содержит все переменные, на которые ссылается файл конфигурации.
Вы можете увидеть ссылки на переменные в файле конфигурации по:
var.region
var.main_vpc_cidr
var.public_subnets
var.private_subnets
Возможно, включить все конфигурационные значения в один конфигурационный файл. Чтобы сохранить ясность и облегчить работу разработчиков и администраторов, важно разделить все на части.
4. Создайте еще один файл внутри каталога ~/terraform-vpc-demo, вставьте следующий код и назовите его provider.tf, чтобы определить провайдера AWS. Учебное пособие будет создавать ресурсы в регионе us-east-2
.
Файлы провайдеров определяют провайдеров, такие как AWS, Oracle или Azure, и т. д., чтобы Terraform мог подключаться к соответствующим облачным службам.
provider "aws" { region = "us-east-2" }
5. Наконец, создайте еще один файл внутри каталога ~/terraform-vpc-demo, назовите его terraform.tfvars, и вставьте нижеуказанный код. Этот файл переменных содержит значения, которые Terraform будет использовать для замены ссылок на переменные внутри конфигурационного файла.
Теперь откройте ваш терминал (например, Bash) и убедитесь, что все необходимые файлы, перечисленные ниже, содержатся в папке, запустив команду tree
.

Запуск Terraform для создания VPC в AWS.
Теперь, когда у вас есть файл конфигурации Terraform и файлы переменных, пришло время инициировать Terraform и создать VPC! Для предоставления конфигурации Terraform обычно используется трехэтапный подход terraform init → terraform plan → terraform apply. Давайте пройдемся по каждому этапу сейчас.
1. Откройте терминал и перейдите в каталог ~\terraform-vpc-demo.
2. Выполните команду terraform init
в том же каталоге. Команда terraform init
инициализирует плагины и провайдеры, необходимые для работы с ресурсами.
Если все проходит успешно, вы должны увидеть сообщение Terraform has been successfully initialized
в выводе, как показано ниже.

3. Теперь выполните команду terraform plan
. Это необязательное, но рекомендуемое действие для проверки правильности синтаксиса вашей конфигурации и получения обзора ресурсов, которые будут предоставлены в вашей инфраструктуре. terraform plan
Если успешно, вы должны увидеть сообщение вроде План: "X" для добавления, "Y" для изменения или "Z" для уничтожения
в выводе, указывающее, что команда выполнена успешно. Вы также увидите все ресурсы AWS, которые Terraform намеревается создать.

4. Затем скажите Terraform фактически выполнить предоставление AWS VPC и ресурсов с помощью terraform apply
. Когда вы вызываете terraform apply
, Terraform будет читать конфигурацию (main.tf) и другие файлы, чтобы скомпилировать конфигурацию. Затем он отправит эту конфигурацию в AWS в качестве инструкций для создания VPC и других компонентов.

Обратите внимание на идентификаторы, определенные в выводе Terraform. Вам понадобятся эти идентификаторы, чтобы связать созданные ресурсы в следующем разделе.
Команда Terraform выполнена успешно, поэтому давайте перейдем в консоль управления AWS, чтобы подтвердить, что VPC и компоненты были успешно созданы.
Проверка AWS Terraform VPC
На данный момент вы должны были создать VPC с помощью Terraform. Давайте проверим, ручная проверка VPC в консоли управления AWS.
1. Откройте свой любимый веб-браузер и перейдите в Консоль управления AWS и войдите в систему.
2. Пока вы находитесь в консоли, щелкните по строке поиска вверху, найдите ‘vpc’ и щелкните по пункту меню VPC.

3. После перехода на страницу VPC, нажмите Ваши VPC. Вы должны увидеть VPC, созданный с тем же идентификатором, который Terraform вернул ранее.

4. Поскольку Terraform создал не только ресурс VPC, но и все ресурсы, необходимые для VPC, вы должны найти каждый ресурс на этой странице также.




Со всеми успешно созданными компонентами, с использованием Terraform, этот VPC готов к использованию!
Заключение
В этом руководстве вы узнали, как использовать Terraform для развертывания AWS VPC и его компонентов с использованием Terraform.
Создание Amazon Virtual Private Cloud с помощью Terraform позволяет создавать ресурсы быстро, легко и предсказуемо. Теперь вы готовы использовать эти знания с другими службами AWS и создавать мощные сервисы на их основе.