Как создать экземпляр EC2 на AWS с помощью Terraform

В этой статье мы рассмотрим, как создать инстанс EC2 с помощью Terraform.

Прежде чем приступить к работе, нам необходимо ознакомиться с основами Terraform и AWS EC2 Instance.

Предварительные условия

  1. Базовое понимание Terraform.
  2. Terraform установлен в нашей системе.
  3. Аккаунт AWS (создайте, если у вас его нет).
  4. access_key & secret_key пользователя AWS IAM.

Файлы конфигурации Terraform для создания AWS EC2 Instance

Создайте специальный каталог, в котором мы сможем создать файлы конфигурации terraform.

Используйте следующую команду, чтобы создать каталог и изменить на него наш текущий рабочий каталог.

mkdir terraform_ec2instance
cd terraform_ec2instance/
Войти в полноэкранный режим Выйдите из полноэкранного режима

Я использовал Visual Studio Code в качестве редактора для записи файлов, мы можем использовать редактор по своему выбору и скопировать-вставить следующие конфигурации для создания variables.tf, terraform.tfvars и main.tf.

main.tf

Создайте main.tf, который отвечает за создание EC2 на AWS. Этот main.tf будет считывать значения переменных из variables.tf и terraform.tfvars.

code main.tf
Вход в полноэкранный режим Выход из полноэкранного режима
provider "aws" {
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
    region = "us-east-1"
}

resource "aws_instance" "ec2_instance" {
    ami = "${var.ami_id}"
    count = "${var.number_of_instances}"
    subnet_id = "${var.subnet_id}"
    instance_type = "${var.instance_type}"
    key_name = "${var.ami_key_pair_name}"
} 
Войти в полноэкранный режим Выход из полноэкранного режима

переменные.tf

Создайте variables.tf, который содержит объявление и определение переменных.

code variables.tf
Войти в полноэкранный режим Выход из полноэкранного режима
variable "access_key" {
        description = "Access key to AWS console"
}
variable "secret_key" {
        description = "Secret key to AWS console"
}


variable "instance_name" {
        description = "Name of the instance to be created"
        default = "awsbuilder-demo"
}

variable "instance_type" {
        default = "t2.micro"
}

variable "subnet_id" {
        description = "The VPC subnet the instance(s) will be created in"
        default = "subnet-07ebbe60"
}

variable "ami_id" {
        description = "The AMI to use"
        default = "ami-09d56f8956ab235b3"
}

variable "number_of_instances" {
        description = "number of instances to be created"
        default = 1
}


variable "ami_key_pair_name" {
        default = "tomcat"
}
Войти в полноэкранный режим Выйдите из полноэкранного режима

После создания файла variables.tf необходимо изменить значения, присвоенные переменным. Мы должны изменить имя пары ключей ami_key_pair_name, ami_id и subnet_id, поскольку они специфичны для среды.

terraform.tfvars

Создайте terraform.tfvars, который содержит определение переменных access_key и secret_key, определенных в вышеприведенном файле.

Следующие ключи должны быть заменены ключами нашего пользователя IAM.

code terraform.tfvars
Вход в полноэкранный режим Выйти из полноэкранного режима
access_key = "Access Key of IAM User"
secret_key = "Secret Key of IAM User"
Войти в полноэкранный режим Выйти из полноэкранного режима

Создание EC2 с помощью конфигурационных файлов Terraform

Команда terraform init загружает и устанавливает плагины для провайдеров, используемых в конфигурации. В нашем случае это AWS.

terraform init
Вход в полноэкранный режим Выход из полноэкранного режима

Команда terraform plan используется для просмотра изменений, которые будут происходить в инфраструктуре.

 terraform plan
Войти в полноэкранный режим Выйти из полноэкранного режима

Команда terraform apply создаст ресурсы на AWS, указанные в файле main.tf. Будет предложено ввести наши данные для создания ресурсов.

terraform apply
Вход в полноэкранный режим Выход из полноэкранного режима

Выполнив приведенную выше команду, мы видим, что в результате был добавлен 1 новый ресурс и 0 уничтожено.

Мы можем перейти в консоль AWS EC2, чтобы проверить, создан ли экземпляр EC2 или нет.

Удаление созданного экземпляра EC2 с помощью Terraform

Если нам больше не нужны ресурсы, которые мы создали с помощью конфигурации, указанной в файле main.tf, мы можем использовать команду terraform destroy для удаления всех этих ресурсов.

terraform destroy
Вход в полноэкранный режим Выход из полноэкранного режима

Спасибо, что дочитали мою статью до конца. Надеюсь, сегодня вы узнали что-то новое. Если вам понравилась эта статья, пожалуйста, поделитесь с друзьями, а если у вас есть предложения или мысли, которыми вы хотите поделиться со мной, пожалуйста, напишите в поле для комментариев.

Следуйте за мной и делитесь своими мыслями,
GitHub
LinkedIn
Twitter

Оцените статью
devanswers.ru
Добавить комментарий