В последнее время я изучаю Terraform и приобретаю привычку развертывать инфраструктуру как код у различных поставщиков облачных услуг, уже давно я не находил случая использования инфраструктуры на AWS.
Вдохновением для этой статьи послужило путешествие по дорогам памяти примерно в конце 2021 года, когда я проходил этап изучения WordPress и сначала использовал Amazon Lightsail для хостинга WordPress, по какой-то причине я использовал графический интерфейс для предоставления экземпляра Amazon Lightsail.
Ранее я изучал документацию по использованию CloudFormation, но так и не решился использовать этот способ для Lightsail. Теперь, когда все это в прошлом, я обрел уверенность и понимание использования инфраструктуры как кода и, в частности, Terraform, пришло время решить эту прошлогоднюю мини-задачу.
HashiCorp Terraform — это инструмент инфраструктуры как кода, позволяющий определять облачные и локальные ресурсы в человекочитаемых конфигурационных файлах, которые можно редактировать, повторно использовать и совместно использовать.
Если вы новичок в Terraform, возможно, стоит прочитать официальную документацию или посмотреть потрясающее вводное видео от Наны Джанашиа:
Что такое Terraform | Terraform by HashiCorp
Terraform объясняется за 15 минут | Terraform Tutorial for Beginners
Предварительные условия:
— Учетная запись AWS
— Настроен именованный профиль
— Terraform должен быть установлен
— Visual Studio Code
— Расширение AWS Toolkit для VS Code
Весь код в этом блоге можно найти в репозитории:
Amazon-Lightsail-Terraform .
После клонирования репозитория вам нужно будет запустить команду terraform init, эта команда используется для инициализации рабочей директории, содержащей наши конфигурационные файлы Terraform.
Я включил файл variables.tf, чтобы уйти от как можно большего количества жестко закодированных значений в файле main.tf.
Это обеспечит универсальность и сделает шаблон многократно используемым для различных типов чертежей Lightsail, например, LAMP, Node.js, Joomla, GitLab и т.д.
Официальную документацию AWS по блюпринтам можно найти здесь.
Чтобы найти доступные идентификаторы чертежей, введите следующую команду в AWS CLI:
aws lightsail get-blueprints
После того, как вы ввели нужные параметры в файл variables.tf, вы можете применить конфигурацию с помощью terraform apply, и экземпляр Amazon Lightsail будет инициализирован.
Полезные ресурсы:
Ресурс: aws_lightsail_instance
Регионы и зоны доступности в Amazon Lightsail