Come creare un'istanza EC2 su AWS usando Terraform

Come creare un'istanza EC2 su AWS usando Terraform

Con l'aumento della tecnologia del cloud computing, più industrie stanno migrando i loro carichi di lavoro in infrastrutture basate sul cloud. Come risultato di questo modello, i tecnologi hanno ritenuto la necessità di un meccanismo per automatizzare il processo di distribuzione delle istanze (e altre risorse cloud). Terraform è uno strumento open source per facilitare questo progresso.

Cosa copriremo

Questo articolo mostrerà come possiamo creare un'istanza EC2 su AWS usando Terraform. Vedremo un esempio di installazione di un semplice server Web in questa istanza. Parliamo per la prima volta sull'installazione di Terraform.

Come puoi installare Terraform

Pacchetti di terraform ufficiali per vari sistemi operativi come Windows, Mac e Distri basati su Linux, come Ubuntu/Debian, Centro/RHEL, ecc., sono disponibili. Inoltre, Terraform mantiene anche il binario pre-compilato e può anche essere compilato dalla sorgente. È possibile controllare le varie procedure di installazione sul sito Web di Terraform. Per verificare l'installazione di Terraform, eseguire il seguente comando:

1
$ Terraform -Version

Creazione dell'istanza AWS EC2 usando Terraform

Dopo aver installato Terraform sul sistema, procedi con la creazione di un'istanza EC2 su AWS. Esistono alcuni file per gestire efficacemente una distribuzione Terraform. Sebbene possiamo creare un singolo file e dichiarare tutte le cose, questo approccio renderà goffo l'intero scenario. Quindi, creiamo prima una directory di lavoro come segue:

Passo 1. Inizia con una cartella che conterrà tutti i file di configurazione. Crea la cartella e spostati al suo interno come mostrato nel seguente:

1
$ MKDIR Linuxhint-Terraform && CD Linuxhint-Terraform

Passo 2. Creiamo il nostro primo file di configurazione, "Variabili.TF ”, che contiene informazioni sulla nostra regione AWS e sul tipo di istanza che vogliamo usare, come mostrato nel seguente:

1
$ nano variabili.tf

Ora, metti al suo interno il testo seguente e salva il file come mostrato nel seguente:

1
2
3
4
5
6
7
8
9
10
variabile "aws_region"
Descrizione = "La regione AWS per distribuire l'istanza EC2 in."
Default = "US-East-1"

Variabile "Instance_Type"
Descrizione = "Tipo di istanza per EC2"
default = "t2.micro "

Passaggio 3. Per impostazione predefinita, quando Terraform crea una nuova istanza, il gruppo di sicurezza predefinito associato all'istanza nega tutto il traffico. Creeremo quindi un nuovo file, "Secgrp.TF ", per creare un gruppo di sicurezza," Web-SG ", che consentirà il traffico inbound" SSH "e" HTTP ", nonché tutto il traffico in uscita, come mostrato nel seguente:

1
$ nano secgrp.tf

Ora, inserisci il seguente codice al suo interno come mostrato nel seguente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
risorsa "aws_security_group" "web-sg"
name = "new-secgrp"
ingresso
da_port = 80
to_port = 80
Protocol = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

ingresso
da_port = 22
to_port = 22
Protocol = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Egress
da_port = 0
to_port = 0
Protocol = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Passaggio 4. Crea un "Main.FILE TF "che definirà l'infrastruttura desiderata come mostrato da segue:

1
$ nano main.tf

Ora, inserisci la seguente configurazione al suo interno:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
65
66
67
68
Terraform
richiesto_providers
aws =
Source = "Hashicorp/AWS"
versione = "~> 3.27 "


richiesto_version = "> = 0.14.9 "

Provider "AWS"
regione = var.AWS_REGION
shared_credentials_file = "/home/user_name/.AWS/Credentials "
profilo = "profile1"

risorsa "aws_instance" "webserver"
AMI = "AMI-09D56F8956AB235B3"
Instance_Type = var.Instance_Type
key_name = "ec2-keypair-name"
vpc_security_group_ids = [aws_security_group.web-sg.id]
Associate_public_ip_address = true
root_block_device
Volume_Type = "GP2"
Volume_Size = "30"
delete_on_termination = false

user_data = <#!/Bin/Bash
Sudo Apt-get Aggiornamento
SUDO APT -EGT Aggiornamento -y
sudo apt -get installa apache2 -y
Sudo SystemCtl Riavvia Apache2
sudo chmod 777 -r/var/www/html/
cd/var/www/html/
sudo eco "

Questo è il nostro sito Web di test distribuito utilizzando Terraform.

"> Indice.html
Eof
tags =
Name = "EsempioC2Instance"


output "iPaddress"
value = "$ aws_instance.server web.public_ip "

Nel codice precedente, non dimenticare di modificare il "nome utente" nel nome dell'utente del sistema e il "ec2-keypair-name" a nome della coppia di chiavi nel tuo caso. Vediamo un po 'sui parametri utilizzati nei file sopra:

AWS_Instance: Questo crea una risorsa di istanza EC2. Le istanze possono essere create, cambiate e distrutte

Ami: Specificare l'ID AMI da utilizzare con l'istanza EC2

Instance_Type: Questa opzione viene utilizzata per dichiarare il tipo di istanza da utilizzare

key_name: Specifica il nome della coppia di chiavi da utilizzare con l'istanza EC2

vpc_security_group_ids: Un argomento per un elenco di ID del gruppo di sicurezza da allegare

Associate_public_ip_address: Specificare se allegare l'IP pubblico con un'istanza all'interno di un VPC

dati utente: Utilizzato per i comandi/dati di passaggio su un'istanza al momento dell'avvio

Ora, inizializza Terraform eseguendo il seguente comando:

1
$ Terraform init

Ora, applica le modifiche utilizzando il seguente comando:

1
$ Terraform si applica

Verificare la procedura

Ora, controlliamo se viene creata l'istanza EC2 desiderata. Dirigiti alla console EC2 e verifica le istanze in esecuzione come mostrato nella seguente immagine:

Poiché la nostra istanza è stata creata correttamente, ora vedremo se il sito Web che abbiamo distribuito funziona correttamente o no. Copia il nome DNS o l'IP pubblico dell'istanza e inseriscilo all'interno di un browser Web come mostrato da segue:

Ben fatto! Il nostro server web sta funzionando bene.

Ripulire le risorse

Quando hai testato la tua infrastruttura o quando non la richiedi, ripulire le risorse eseguendo il comando seguente:

1
$ Terraform Distruggi

Conclusione

Questa guida ci ha insegnato a creare un'istanza EC2 su AWS usando Terraform. Abbiamo anche dimostrato come provvedere a un semplice server Web AWS utilizzando Terraform.