In questo articolo vedremo come creare un'istanza EC2 utilizzando Terraform. Prima di procedere, presumo che tu abbia familiarità con le basi di Terraform e dell'istanza AWS EC2. Se vuoi imparare a creare un'istanza EC2 dalla console AWS, fai clic qui.
Prerequisiti
- Comprensione di base di Terraform.
- Terraform installato sul tuo sistema.
- Account AWS (crea se non ne hai uno).
- 'access_key' &'secret_key' di un utente AWS IAM. (Fai clic qui per imparare a creare un utente IAM con 'access_key' &'secret_key' su AWS, )
Cosa faremo
- Scrivi i file di configurazione di Terraform per creare un'istanza EC2.
- Crea un EC2 usando i file di configurazione di Terraform.
- Elimina l'istanza EC2 creata utilizzando Terraform.
Scrivi i file di configurazione di Terraform per creare un'istanza EC2
Crea una directory dedicata in cui puoi creare file di configurazione di terraform.
Utilizzare il comando seguente per creare una directory e modificare la directory di lavoro attuale in essa.
mkdir terraform
cd terraform/
Sto usando "vim" come editor per scrivere nei file, puoi usare un editor a tua scelta e copiare e incollare le seguenti configurazioni per creare variabili.tf, terraform.tfvars e main.tf
Crea 'main.tf' che è responsabile della creazione di un EC2 su AWS. Questo main.tf leggerà i valori delle variabili da variabili.tf e 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}" }
Modifica il valore di "regione" se desideri creare l'istanza in un'altra regione rispetto a quella che ho specificato.
Crea 'variables.tf' che contiene la dichiarazione e la definizione delle variabili.
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" }
Dopo aver creato 'variables.tf', non dimenticare di modificare i valori assegnati alla variabile. Devi cambiare ami_key_pair_name, ami_id e subnet_id poiché sono specifici del mio ambiente. Puoi mantenere la variabile resto così com'è.
Crea 'terraform.tfvars' che contiene la definizione delle variabili access_key e secret_key definite nel file sopra. Abbiamo conservato la dichiarazione di queste 2 variabili nel file 'terraform.tfvars'.
Le seguenti chiavi devono essere modificate con le chiavi del tuo utente IAM.
vim terraform.tfvars
access_key = "AKIAQ6GAIA5XIHHM2GJM" secret_key = "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"
Ora dovresti avere 3 file, vale a dire, variabili.tf, terraform.tfvars e main.tf
Crea un'istanza EC2 usando i file di configurazione Terraform
Prima di eseguire i seguenti comandi assicurati di aver configurato access_key e secret_key validi.
Il primo comando da utilizzare è 'terraform init'. Questo comando scarica e installa i plug-in per i provider utilizzati nella configurazione. Nel nostro caso è AWS.
terraform init
Il secondo comando da utilizzare è 'terraform plan'. Questo comando viene utilizzato per vedere le modifiche che avverranno sull'infrastruttura.
terraform plan
Il comando 'terraform apply' creerà le risorse su AWS menzionate nel file main.tf. Ti verrà chiesto di fornire il tuo input per creare le risorse.
terraform apply
Quando esegui il comando precedente, puoi vedere che 1 nuova risorsa è stata aggiunta e 0 è stata distrutta nell'output.
Puoi accedere alla console AWS EC2 per verificare se l'istanza EC2 è stata creata o meno.
Elimina l'istanza EC2 creata utilizzando Terraform
Se non hai più bisogno delle risorse che hai creato utilizzando la configurazione menzionata nel file main.tf, puoi utilizzare il comando "terraform destroy" per eliminare tutte quelle risorse.
terraform destroy
Conclusione
In questo articolo, abbiamo visto i passaggi per creare un'istanza EC2 nella regione di nostra scelta. Abbiamo anche visto come eliminare l'istanza.