Cómo crear una instancia de EC2 en AWS usando Terraform

Cómo crear una instancia de EC2 en AWS usando Terraform

Con el aumento de la tecnología de computación en la nube, más industrias están migrando sus cargas de trabajo a la infraestructura basada en la nube. Como resultado de este patrón, los tecnólogos han sentido la necesidad de algún mecanismo para automatizar el proceso de implementación de instancias (y otros recursos en la nube). Terraform es una de esas herramientas de código abierto para facilitar este progreso.

Lo que cubriremos

Este artículo mostrará cómo podemos crear una instancia de EC2 en AWS usando Terraform. Veremos un ejemplo de instalar un servidor web simple en esta instancia. Primero hablemos un poco sobre la instalación de Terraform.

Cómo puedes instalar Terraform

Paquetes oficiales de Terraform para varios sistemas operativos como Windows, Mac y distribuciones basadas en Linux, como Ubuntu/Debian, Centos/Rhel, etc., están disponibles. Además, Terraform también mantiene binario precompilado y también puede compilarse de la fuente. Puede consultar los diversos procedimientos de instalación en el sitio web de Terraform. Para verificar su instalación de Terraform, ejecute el siguiente comando:

1
$ Terraform -version

Creación de instancia de AWS EC2 usando Terraform

Después de instalar Terraform en su sistema, continúe creando una instancia de EC2 en AWS. Hay algunos archivos para administrar efectivamente una implementación de Terraform. Aunque podemos crear un solo archivo y declarar todas las cosas, este enfoque hará que todo el escenario sea torpe. Entonces, primero creemos un directorio de trabajo como se ve en lo siguiente:

Paso 1. Comience con una carpeta que mantendrá todos los archivos de configuración. Crea la carpeta y muévete dentro de ella como se muestra en lo siguiente:

1
$ mkdir linuxhint-teraform && cd linuxhint-terraform

Paso 2. Permítanos crear nuestro primer archivo de configuración, "Variables.tf ”, que contiene información sobre nuestra región de AWS y el tipo de instancia que queremos usar, como se muestra en lo siguiente:

1
$ nano variables.TF

Ahora, coloque el texto a continuación dentro y guarde el archivo como se muestra en el siguiente:

1
2
3
4
5
6
7
8
9
10
variable "aws_region"
descripción = "La región de AWS para implementar la instancia de EC2 en."
predeterminado = "us-east-1"

variable "instance_type"
Descripción = "Tipo de instancia para EC2"
predeterminado = "t2.micro"

Paso 3. Por defecto, cuando Terraform crea una nueva instancia, el grupo de seguridad predeterminado asociado con la instancia niega todo el tráfico. Por lo tanto, crearemos un nuevo archivo, "SecGRP.TF ", para crear un grupo de seguridad," Web-SG ", que permitirá el tráfico entrante" SSH "y" HTTP ", así como todo el tráfico saliente, como se muestra a continuación:

1
$ nano secgrp.TF

Ahora, coloque el siguiente código dentro de él como se muestra en lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
recurso "AWS_SECURITY_GROUP" "Web-SG"
nombre = "nuevo-secrp"
ingreso
from_port = 80
to_port = 80
Protocol = "TCP"
CIDR_BLOCKS = ["0.0.0.0/0 "]

ingreso
from_port = 22
to_port = 22
Protocol = "TCP"
CIDR_BLOCKS = ["0.0.0.0/0 "]

salida
from_port = 0
to_port = 0
Protocolo = "-1"
CIDR_BLOCKS = ["0.0.0.0/0 "]

Etapa 4. Crear un "principal.Archivo TF "que definirá la infraestructura deseada como se muestra en lo siguiente:

1
$ nano principal.TF

Ahora, coloque la siguiente configuración dentro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
sesenta y cinco
66
67
68
Terraform
requerido_providers
AWS =
fuente = "Hashicorp/AWS"
versión = "~> 3.27 "


requerido_version = "> = 0.14.9 "

Proveedor "AWS"
región = var.AWS_region
shared_credentials_file = "/home/user_name/.AWS/Credenciales "
perfil = "perfil1"

Recurso "AWS_Instance" "WebServer"
ami = "AMI-09D56F8956AB235B3"
instance_type = var.instancia_type
key_name = "EC2-Kepair-Name"
vpc_security_group_ids = [aws_security_group.SG-SG.identificación]
asociado_public_ip_address = true
root_block_device
volumen_type = "GP2"
volumen_size = "30"
delete_on_mination = falso

user_data = <#!/bin/bash
actualización de sudo apt-get
sudo apt -get actualización -y
sudo apt -get install apache2 -y
sudo systemctl reiniciar apache2
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo eco "

Este es nuestro sitio web de prueba implementado con Terraform.

"> índice.html
EOF
etiquetas =
Nombre = "EjemploC2Instance"


Salida "iPaddress"
valor = "$ aws_instance.Servidor web.public_ip "

En el código anterior, no olvide cambiar el "nombre del usuario" al nombre del usuario de su sistema y el "nombre de keyPair EC2" al nombre del par de claves en su caso. Veamos un poco sobre los parámetros utilizados en los archivos anteriores:

AWS_Instance: Esto crea un recurso de instancia de EC2. Las instancias se pueden crear, cambiar y destruir

Ami: Especifique la ID de AMI que se utilizará con la instancia de EC2

instancia_type: Esta opción se utiliza para declarar el tipo de instancia que se utilizará

Nombre clave: Especifica el nombre del par de claves que se utilizará con la instancia de EC2

vpc_security_group_ids: Un argumento para una lista de ID de grupo de seguridad para adjuntar

asociado_public_ip_address: Especifique si se adjuntará la IP pública con una instancia dentro de un VPC

datos del usuario: Utilizado para pasar comandos/datos en una instancia al iniciarlo

Ahora, inicialice Terraform ejecutando el siguiente comando:

1
$ Terraform init

Ahora, aplique los cambios usando el siguiente comando:

1
$ Terraform se aplica

Verificar el procedimiento

Ahora, verifiquemos si se crea la instancia de EC2 deseada. Dirígete a la consola EC2 y verifique las instancias de ejecución como se muestra en la siguiente imagen:

Dado que nuestra instancia se creó con éxito, ahora veremos si el sitio web que implementamos funciona correctamente o no. Copie el nombre DNS o la IP pública de la instancia e ingrese dentro de un navegador web como se muestra en el siguiente:

Bien hecho! Nuestro servidor web funciona bien.

Limpiar los recursos

Cuando haya probado su infraestructura o cuando no la requiera, limpie los recursos ejecutando el siguiente comando:

1
$ Terraform Destro

Conclusión

Esta guía nos enseñó sobre la creación de una instancia de EC2 en AWS usando Terraform. También hemos demostrado cómo aprovisionar un servidor web simple de AWS usando Terraform.