Maak een EC2 instance op AWS met Terraform

In dit artikel zullen we zien hoe je een EC2 Instance kunt maken met Terraform. Alvorens verder te gaan neem ik aan dat je bekend bent met de basisprincipes van Terraform en AWS EC2 Instance. Wil je leren om een EC2 Instance te maken vanuit de AWS console, klik dan hier.

Vereisten

  1. Basiskennis van Terraform.
  2. Terraform geïnstalleerd op je systeem.
  3. AWS Account (Maak aan als je er geen hebt).
  4. ‘access_key’ & ‘secret_key’ van een AWS IAM Gebruiker. (Klik hier om te leren hoe je een IAM gebruiker met ‘access_key’ & ‘secret_key’ op AWS kunt maken, )

Wat we zullen doen

  1. Schrijf Terraform configuratiebestanden voor het maken van een EC2 Instance.
  2. Maak een EC2 met behulp van de Terraform configuratiebestanden.
  3. Verwijder de aangemaakte EC2 instance met behulp van Terraform.

Schrijf Terraform configuratiebestanden om een EC2 Instance te maken

Maak een speciale directory waarin je terraform configuratiebestanden kunt maken.

Gebruik het volgende commando om een directory aan te maken en je huidige werkdirectory er naar te veranderen.

mkdir terraform
cd terraform/

Ik gebruik “vim” als editor om de bestanden in te schrijven, je kunt een editor naar keuze gebruiken en de volgende configuraties kopiëren-plakken om variabelen.tf, terraform.tfvars en main.tf te maken

Maak ‘main.tf’ dat verantwoordelijk is voor het aanmaken van een EC2 op naar AWS. Deze main.tf zal waarden van variabelen lezen uit variables.tf en terraform.tfvars.

vim main.tf
provider "aws" {
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
    region = "eu-west-3"
}

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}"
} 

Veranderde waarde van “region” als je de instantie in een andere regio wilt aanmaken dan wat ik heb opgegeven.

Maak ‘variables.tf’ dat de verklaring en definitie van de variabelen bevat.

vim 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 = "test"
}

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

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

variable "ami_id" {
        description = "The AMI to use"
        default = "ami-096b8af6e7e8fb927"
}

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


variable "ami_key_pair_name" {
        default = "tomcat"
}

Als je ‘variables.tf’ gemaakt hebt, vergeet dan niet de aan de variabele toegekende waarden te veranderen. Je moet ami_key_pair_name, ami_id en subnet_id veranderen, want die zijn specifiek voor mijn omgeving. De rest variabele kun je laten zoals ze is.

Maak ’terraform.tfvars’ dat de definitie bevat van access_key en secret_key variabelen die in het bovenstaande bestand zijn gedefinieerd. We hebben de verklaring van deze 2 variabelen in’terraform.tfvars’ bestand bewaard.

De volgende sleutels moet je veranderen met de sleutels van je IAM gebruiker.

vim terraform.tfvars
access_key = "AKIAQ6GAIA5XIHHM2GJM"
secret_key = "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"

Nu zou je 3 bestanden moeten hebben, nl. variables.tf, terraform.tfvars en main.tf

Maak een EC2 Instance met de Terraform configuratiebestanden

Voor je de volgende commando’s uitvoert, moet je zeker zijn dat je de geldige access_key en secret_key geconfigureerd hebt.

Het eerste commando dat je moet gebruiken is ’terraform init’. Dit commando downloadt en installeert plugins voor providers die binnen de configuratie gebruikt worden. In ons geval is dat AWS.

 terraform init

Het tweede commando dat gebruikt moet worden is ’terraform plan’. Dit commando wordt gebruikt om de veranderingen te zien die op de infrastructuur zullen plaatsvinden.

 terraform plan

Het ’terraform apply’ commando zal de bronnen aanmaken op de AWS die in het main.tf bestand genoemd worden. Je wordt gevraagd je invoer te geven om de middelen aan te maken.

terraform apply

Als je het bovenstaande commando uitvoert, zie je in de uitvoerdat 1 nieuwe resource is toegevoegd en 0 is vernietigd.

Je kunt naar de AWS EC2 console gaan om te controleren of deEC2 instance is aangemaakt of niet.

Verwijder de aangemaakte EC2 Instance met Terraform

Als je de middelen die je aanmaakte met de in het main.tf bestand genoemde configuratie niet meer nodig hebt, kun je het “terraform destroy” commando gebruiken om al die middelen te verwijderen.

terraform destroy

Conclusie

In dit artikel zagen we de stappen om een EC2 instance te maken in de regio van onze keuze. We zagen ook hoe de instantie kan worden verwijderd.