Crear una instancia EC2 en AWS con Terraform
En este artículo, veremos cómo crear una Instancia EC2 utilizando Terraform. Antes de continuar, asumo que estás familiarizado con los fundamentos de Terraform y de la Instancia EC2 de AWS. Si quieres aprender a crear una instancia EC2 desde la consola de AWS, haz clic aquí.
Requisitos previos
- Conocimiento básico de Terraform.
- Terraform instalado en tu sistema.
- Cuenta de AWS (Crea si no tienes una).
- ‘access_key’ & ‘secret_key’ de un usuario IAM de AWS. (Haz clic aquí para aprender a crear un usuario IAM con ‘access_key’ & ‘secret_key’ en AWS, )
Qué vamos a hacer
- Escribir los archivos de configuración de Terraform para crear una Instancia EC2.
- Crear una EC2 utilizando los archivos de configuración de Terraform.
- Eliminar la instancia EC2 creada utilizando Terraform.
Escribir los archivos de configuración de Terraform para crear una Instancia EC2
Crea un directorio dedicado donde puedas crear los archivos de configuración de Terraform.
Utiliza el siguiente comando para crear un directorio y cambia tu actual directorio de trabajo a él.
mkdir terraform
cd terraform/
Estoy utilizando «vim» como editor para escribir en los archivos, puedes utilizar un editor de tu elección y copiar y pegar las siguientes configuraciones para crear variables.tf, terraform.tfvars y main.tf
Crea ‘main.tf’, que es el responsable de crear un EC2 en AWS. Este main.tf leerá los valores de las variables de variables.tf y 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}" }
Cambia el valor de «región» si quieres crear la instancia en alguna región distinta a la que he especificado.
Crea ‘variables.tf’ que contiene la declaración y definición de las variables.
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" }
Una vez creado ‘variables.tf’, no olvides cambiar los valores asignados a las variables. Debes cambiar ami_key_pair_name, ami_id y subnet_id ya que son específicos de mi entorno. Puedes mantener el resto de variables como están.
Crea ‘terraform.tfvars’ que contiene la definición de las variables access_key y secret_key definidas en el archivo anterior. Hemos mantenido la declaración de estas 2 variables en el archivo ‘terraform.tfvars ‘.
Las siguientes claves deben cambiarse con las claves de tu usuario IAM.
vim terraform.tfvars
access_key = "AKIAQ6GAIA5XIHHM2GJM" secret_key = "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"
Ahora, deberías tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf
Crea una Instancia EC2 utilizando los archivos de configuración de Terraform
Antes de ejecutar los siguientes comandos asegúrate de haber configurado la access_key y secret_key válidas.
El primer comando a utilizar es ‘terraform init’. Este comando descarga e instala los plugins de los proveedores utilizados en la configuración. En nuestro caso es AWS.
terraform init
El segundo comando a utilizar es ‘terraform plan’. Este comando se utiliza para ver los cambios que se producirán en la infraestructura.
terraform plan
El comando «terraformar aplicar» creará los recursos en la AWS mencionados en el archivo main.tf. Se te pedirá que proporciones tus datos para crear los recursos.
terraform apply
Cuando ejecutes el comando anterior, podrás ver que se ha añadido 1 nuevo recurso y se han destruido 0 en la salida.
Puedes ir a la consola de AWS EC2 para verificar si la instancia EC2 está creada o no.
Eliminar la Instancia EC2 creada mediante Terraform
Si ya no necesitas los recursos que has creado utilizando la configuración mencionada en el archivo main.tf, puedes utilizar el comando «terraform destroy» para eliminar todos esos recursos.
terraform destroy
Conclusión
En este artículo, hemos visto los pasos para crear una instancia EC2 en la región de nuestra elección. También hemos visto cómo se puede eliminar la instancia.