Come creare AWS VPC usando Terraform

Come creare AWS VPC usando Terraform

AWS fornisce un servizio cloud privato virtuale (VPC) per la creazione di una rete virtuale logicamente isolata nel cloud. Qui possiamo lanciare istanze EC2 e RDS e creare gruppi di sicurezza e altre risorse. Come molte altre attività, possiamo anche creare un VPC usando Terraform.

Cosa copriremo

Questa guida mostrerà come creare un VPC AWS (cloud privato virtuale) utilizzando Terraform.

Cosa avrai bisogno

  1. Account AWS
  2. Accesso a Internet
  3. Nozioni di base di Terraform

Creazione di AWS VPC usando Terraform

Ora che abbiamo installato Terraform sulla nostra macchina locale, possiamo continuare il nostro compito di lavorare con VPC. Qui, abbiamo delineato la configurazione VPC per il nostro caso:

Abbiamo una sottorete privata e una sottorete pubblica con la tabella di rotta corrispondente. La sottorete pubblica ha anche un gateway NAT collegato ad esso. La configurazione Terraform per componenti diversi è memorizzata in file diversi come:

  1. variabili.TF: definizione di variabili utilizzate nei file
  2. VPC.TF: per la risorsa VPC
  3. gateway.TF: per le risorse gateway
  4. sottoreti.TF: per definire sottoreti pubblici e privati
  5. Tabella del percorso.TF: per le risorse del tavolo del percorso pubblico e privato
  6. principale.tf

Come accennato in precedenza, Terraform utilizza diversi file di configurazione per le risorse di provisioning e ciascuno di questi file deve risiedere nella rispettiva cartella/directory di lavoro. Creiamo una directory per questo scopo:

Passo 1. Crea una cartella che manterrà i file di configurazione, quindi vai a questa cartella:

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

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

1
$ nano variabili.tf

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
variabile "aws_region"
Descrizione = "La regione AWS per creare il VPC in."
Default = "US-East-1"

variabile "VPC-CIDR"
cidr_block = "172.168.0.0/16 "

variabile "pubsubcidr"
cidr_block = "172.168.0.0/24 "

variabile "prisubcidr"
cidr_block = "172.168.1.0/24 "

Passaggio 3. Crea VPC.TF:

1
$ Nano VPC.tf

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

1
2
3
4
5
risorsa "aws_vpc" "my-vpc"
cidr_block = var.VPC-CIDR

Passaggio 4. Crea Gateway.File TF e Definisci Internet Gateway e Nat Gateway qui:

1
$ nano gateway.tf

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Crea risorsa Gateway Internet e allegala al VPC
risorsa "aws_internet_gateway" "igw"
VPC_ID = AWS_VPC.my-vpc.id

# Crea EIP per IGW
risorsa "aws_eip" "myeip"
VPC = true

# Crea risorsa Nat Gateway e allegala al VPC
risorsa "aws_nat_gateway" "nat-gw"
allocation_id = aws_eip.myeip.id
Subnet_id = AWS_SUBNET.mypublicsubnet.id

Passaggio 5. Crea sottoreti.TF per i sottoreti privati ​​e pubblici all'interno del VPC:

1
$ nano sottoreti.tf

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

1
2
3
4
5
6
7
8
9
risorsa "aws_subnet" "myprivatesubnet"
VPC_ID = AWS_VPC.my-vpc.id
cidr_block = var.prisubcidr

risorsa "aws_subnet" "mypublicsubnet"
VPC_ID = AWS_VPC.my-vpc.id
cidr_block = var.pubsubcidr

Passaggio 6. Crea tabella del percorso.TF per sottoreti privati ​​e pubblici:

1
$ nano-table per il percorso.tf

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

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
# Creazione di RT per la sottorete privata
risorsa "aws_route_table" "privrt"
VPC_ID = AWS_VPC.my-vpc.id
itinerario
cidr_block = "0.0.0.0/0 "
nat_gateway_id = aws_nat_gateway.Nat-gw.id


# Creazione di RT per la sottorete pubblica
risorsa "aws_route_table" "pubrt"
VPC_ID = AWS_VPC.my-vpc.id
itinerario
cidr_block = "0.0.0.0/0 "
gateway_id = aws_internet_gateway.IGW.id


#Associare la RT pubblica con le sottoreti pubbliche
risorsa "aws_route_table_association" "pubrtass"
Subnet_id = AWS_SUBNET.mypublicsubnet.id
route_table_id = aws_route_table.pubrt.id

#Associare la RT privata con le sottoreti private
risorsa "aws_route_table_association" "prirtass"
Subnet_id = AWS_SUBNET.myprivatesubnet.id
route_table_id = aws_route_table.Privirt.id

Passaggio 7. Fare un "principale.TF ”File che conterrà la definizione per la nostra infrastruttura:

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

Modifica il "Nome utente"Nel codice sopra con il nome utente nel tuo caso. Vediamo un po 'sui parametri utilizzati nei file precedenti:

  • condiviso_credentials_file: È il percorso del file contenente le credenziali degli utenti AWS.
  • profilo: Specifica il profilo dell'utente da utilizzare per lavorare con AWS.
  • AWS_VPC: Risorsa per la costruzione di un VPC.
  • cidr_block: Fornisce un blocco CIDR IPv4 per il VPC.
  • AWS_INTERNET_GATEWAY: Risorsa per la creazione di un gateway Internet per il VPC.
  • AWS_EIP: Risorsa per la produzione di un IP elastico (EIP).
  • AWS_NAT_GATEWAY: Risorsa per la creazione di un gateway NAT per il VPC.
  • Allocazione_id: Attributo per l'ID di allocazione dell'EIP sopra generato.
  • sottorete_id: Attributo per la sottorete ID della sottorete in cui viene distribuito il gateway NAT.
  • AWS_SUBNET: Risorsa per la creazione di una sottorete VPC.
  • aws_route_table: Risorsa per la creazione di una tabella del percorso VPC.
  • itinerario: Argomento che contiene un elenco di oggetti del percorso.
  • nat_gateway_id: Argomento che indica l'ID del VPC NAT Gateway.
  • gateway_id: Argomento opzionale per VPC Internet Gateway.
  • aws_route_table_association: Risorsa per la creazione di un'associazione tra il percorso (pubblico o privato) e 1) Gateway Internet e 2) Gateway privato virtuale.
  • route_table_id: ID tabella di rotta con cui stiamo associando la sottorete.

Inizializzazione della directory Terraform

Per scaricare e installare il provider che abbiamo definito nella nostra configurazione e in altri file, dobbiamo inizializzare la directory contenente questo file:

1
$ Terraform init

Costruire l'infrastruttura

Per applicare le modifiche che abbiamo pianificato sopra, eseguire il seguente comando:

1
$ Terraform si applica

Immettere "sì" sul terminale quando richiesto.

Verificare la procedura

Ora, controlliamo se il VPC desiderato viene creato o no. Dirigiti alla console VPC e controlla i VPC disponibili:

Possiamo vedere che il nostro VPC è stato creato correttamente.

Dopo aver eseguito questo compito, elimina le risorse per evitare spese inutili:

1
$ Terraform Distruggi

Immettere "sì" per applicare l'azione.

Conclusione

In questa guida, abbiamo imparato a creare un VPC su AWS usando Terraform. La prossima cosa che puoi fare è provare a fornire un'istanza RDS o EC2 usando Terraform.