Прежде чем мы начнем, важно понять, что Terraform — это инструмент «инфраструктура как код», который позволяет создавать, управлять и обновлять ресурсы инфраструктуры, такие как серверы, сети и хранилища, в облачных провайдерах, таких как AWS.

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

  1. Войдите в свою учетную запись AWS и перейдите на панель инструментов IAM.
  2. Нажмите «Пользователи», а затем нажмите на свое имя пользователя.
  3. Перейдите на вкладку «Учетные данные безопасности», а затем нажмите «Создать ключ доступа».
  4. Сохраните ключ доступа и секретный ключ в надежном месте, так как позже вы не сможете получить секретный ключ.

Получив учетные данные для доступа, вы можете приступить к созданию файла Terraform для инициализации экземпляра EC2 на AWS. Вот пример файла, который вы можете изменить в соответствии с вашими потребностями:

provider "aws" {
  access_key = "YOUR_ACCESS_KEY"
  secret_key = "YOUR_SECRET_KEY"
  region     = "us-west-2"
}
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  tags = {
    Name = "my-ec2-instance"
  }
}

В приведенном выше примере мы начинаем с определения поставщика aws и передачи наших учетных данных для доступа и региона AWS, который мы хотим использовать. Затем мы определяем ресурс aws_instance, который представляет экземпляр EC2, который мы хотим создать. Мы указываем образ машины Amazon (AMI) для использования и тип экземпляра. Наконец, мы добавляем к экземпляру тег, чтобы его было легче идентифицировать в консоли AWS.

Пояснение

provider "aws" {
  access_key = "YOUR_ACCESS_KEY"
  secret_key = "YOUR_SECRET_KEY"
  region     = "us-west-2"
}

В блоке provider мы определяем поставщика AWS и передаем свои учетные данные для доступа и регион AWS, который мы хотим использовать. В переменных access_key и secret_key следует заменить YOUR_ACCESS_KEY и YOUR_SECRET_KEY ключом доступа и секретным ключом, которые вы создали для своей учетной записи AWS. В переменной region вы должны заменить us-west-2 регионом, который хотите использовать.

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  tags = {
    Name = "my-ec2-instance"
  }
}

Ресурс aws_instance — это место, где мы определяем экземпляр EC2, который хотим создать. В переменной ami мы указываем образ машины Amazon (AMI) для использования. AMI — это предварительно настроенный образ виртуальной машины, который содержит необходимое программное обеспечение для запуска экземпляра EC2. Вы можете выбрать один из множества AMI, предоставляемых AWS, или создать свой собственный AMI.

В переменной instance_type мы указываем тип экземпляра, который хотим использовать. Тип экземпляра определяет аппаратное обеспечение хост-компьютера, на котором работает экземпляр, а также сетевые ресурсы и ресурсы хранения, доступные экземпляру.

В переменную tags мы добавляем тег к экземпляру, чтобы его было легче идентифицировать в консоли AWS. Теги — это пары «ключ-значение», которые можно назначать ресурсам в AWS, чтобы упростить организацию ресурсов и управление ими.

Чтобы запустить этот файл Terraform, вы можете выполнить следующие действия:

  1. Сохраните файл как example.tf.
  2. Откройте терминал или командную строку и перейдите в каталог, в котором вы сохранили файл.
  3. Запустите terraform init, чтобы инициализировать Terraform и загрузить все необходимые плагины.
  4. Запустите terraform plan, чтобы увидеть, какие изменения Terraform внесет в ваши ресурсы.
  5. Если план выглядит хорошо, запустите terraform apply, чтобы создать экземпляр EC2.
  6. Если экземпляр вам больше не нужен, вы можете запустить terraform destroy, чтобы удалить его.
terraform init
terraform plan
terraform apply
terraform destroy

Это команды Terraform, которые мы используем для инициализации Terraform, создания плана изменений, которые Terraform внесет в наши ресурсы, применения этих изменений для создания экземпляра EC2 и уничтожения экземпляра, когда мы закончим с ним.

Команда terraform init инициализирует Terraform и загружает все необходимые плагины. Команда terraform plan показывает нам, какие изменения Terraform внесет в наши ресурсы, фактически не внося никаких изменений. Команда terraform apply применяет изменения и создает экземпляр EC2. Команда terraform destroy уничтожает экземпляр, когда мы с ним закончим.

Вот и все! Теперь вы знаете, как создать файл Terraform для инициализации экземпляра EC2 на AWS. Не забывайте хранить свои учетные данные для доступа в безопасном месте и никогда не передавайте их никому.

Примечание. В рабочей среде настоятельно рекомендуется использовать AWS Secret Manager или Hashicorp Vault для хранения и извлечения секретов, включая ключи доступа и секретные ключи. Это обеспечивает безопасный и централизованный способ управления секретами.