Hvordan lage AWS VPC ved hjelp av Terraform

Hvordan lage AWS VPC ved hjelp av Terraform

AWS tilbyr en Virtual Private Cloud (VPC) -tjeneste for å lage et logisk isolert virtuelt nettverk i skyen. Her kan vi lansere EC2 og RDS -forekomster og opprette sikkerhetsgrupper og andre ressurser. Som mange andre oppgaver kan vi også lage en VPC ved hjelp av Terraform.

Hva vi vil dekke

Denne guiden vil vise hvordan du lager en AWS VPC (virtuell privat sky) ved hjelp av Terraform.

Hva du trenger

  1. AWS -konto
  2. Tilgang til Internett
  3. Grunnleggende om Terraform

Opprette AWS VPC ved hjelp av Terraform

Nå som vi har installert terraform på vår lokale maskin, kan vi fortsette oppgaven med å jobbe med VPC. Her har vi skissert VPC -oppsettet for saken vår:

Vi har ett privat og ett offentlig undernett med deres tilsvarende rutetabell. Det offentlige undernettet har også en Nat Gateway knyttet til den. Terraformkonfigurasjonen for forskjellige komponenter lagres i forskjellige filer som:

  1. variabler.TF: Definisjon av variabler brukt i filene
  2. VPC.TF: For VPC -ressurs
  3. inngangsport.TF: For gateway -ressurser
  4. undernett.TF: For å definere offentlige og private undernett
  5. Rute-bord.TF: For offentlige og private rutebordsressurser
  6. hoved-.tf

Som nevnt tidligere, bruker Terraform flere konfigurasjonsfiler for levering av ressurser, og hver av disse filene må ligge i sin respektive arbeidsmappe/katalog. La oss lage en katalog for dette formålet:

Trinn 1. Opprett en mappe som holder konfigurasjonsfilene dine, og navigerer deretter til denne mappen:

1
$ mkdir linuxhint-terraForm && cd linuxhint-terraformform

Steg 2. La oss opprette vår første konfigurasjonsfil, “Variabler.TF ”, som vil inneholde informasjon om AWS -regionen vår og typen forekomst vi ønsker å bruke:

1
$ nano -variabler.tf

Legg nå følgende tekst inni den, og lagre filen:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
variabel "aws_region"
beskrivelse = "AWS -regionen for å lage VPC i.""
Standard = "US-East-1"

variabel "vpc-cidr"
cidr_block = "172.168.0.0/16 "

variabel "pubsubcidr"
cidr_block = "172.168.0.0/24 "

variabel "prisubcidr"
cidr_block = "172.168.1.0/24 "

Trinn 3. Opprett VPC.tf:

1
$ Nano VPC.tf

Legg nå følgende tekst inni den, og lagre filen:

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

Trinn 4. Lag gateway.TF -fil og definere Internet Gateway og Nat Gateway her:

1
$ Nano Gateway.tf

Legg nå følgende tekst inni den, og lagre filen:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
# Opprett Internett Gateway Resource og fest den til VPC
ressurs "aws_internet_gateway" "igw"
vpc_id = aws_vpc.My-VPC.id

# Lag EIP for IGW
ressurs "aws_eip" "myeip"
vpc = sant

# Opprett Nat Gateway Resource og fest den til VPC
ressurs "aws_nat_gateway" "nat-gw"
allokering_id = aws_eip.myeip.id
SUBNET_ID = AWS_SUBNET.MyPublicsubnet.id

Trinn 5. Lag undernett.TF for de private og offentlige undernettene inne i VPC:

1
$ nano -undernett.tf

Legg nå følgende tekst inni den, og lagre filen:

1
2
3
4
5
6
7
8
9
ressurs "aws_subnet" "myprivatesubnet"
vpc_id = aws_vpc.My-VPC.id
cidr_block = var.Prisubcidr

ressurs "aws_subnet" "mypublicsubnet"
vpc_id = aws_vpc.My-VPC.id
cidr_block = var.PubSubcidr

Trinn 6. Lag rutetabell.TF for private og offentlige undernett:

1
$ Nano Route-Table.tf

Legg nå følgende tekst inni den, og lagre filen:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Opprette RT for privat undernett
ressurs "aws_route_table" "privrt"
vpc_id = aws_vpc.My-VPC.id
rute
cidr_block = "0.0.0.0/0 "
nat_gateway_id = aws_nat_gateway.Nat-GW.id


# Opprette RT for offentlig undernett
ressurs "aws_route_table" "publrt"
vpc_id = aws_vpc.My-VPC.id
rute
cidr_block = "0.0.0.0/0 "
gateway_id = aws_internet_gateway.Igw.id


#For å samle den offentlige RT med de offentlige undernettene
ressurs "aws_route_table_association" "pubrtass"
SUBNET_ID = AWS_SUBNET.MyPublicsubnet.id
route_table_id = aws_route_table.publrt.id

#For å samle den private RT med de private undernettene
ressurs "aws_route_table_association" "prirtass"
SUBNET_ID = AWS_SUBNET.MyPrivatesubnet.id
route_table_id = aws_route_table.Privrt.id

Trinn 7. Lag en "hoved.TF ”-fil som vil inneholde definisjonen for vår infrastruktur:

1
$ nano main.tf

Legg nå følgende konfigurasjon inni den:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
20
21
terraform
krevde_providers
aws =
Source = "Hashicorp/AWS"
versjon = "~> 3.27 "


krevde_versjon = "> = 0.14.9 "

leverandør "aws"
Region = var.aws_region
shared_credentials_file = "/home/user_name/.AWS/legitimasjon "
profil = "Profil1"

Endre "Brukernavn”I ovennevnte kode med brukernavnet i ditt tilfelle. La oss se litt om parametrene som ble brukt i de forrige filene:

  • shared_credentials_file: Det er banen til filen som inneholder legitimasjonene til AWS -brukerne.
  • profil: Den spesifiserer brukerens profil som skal brukes til å jobbe med AWS.
  • aws_vpc: Ressurs for å bygge en VPC.
  • CIDR_BLOCK: Gir en IPv4 CIDR -blokk for VPC.
  • aws_internet_gateway: Ressurs for å lage en internettporten for VPC.
  • aws_eip: Ressurs for å produsere en elastisk IP (EIP).
  • aws_nat_gateway: Ressurs for å lage en NAT -gateway for VPC.
  • Tildeling_id: Attributt for tildelings-ID for ovennevnte EIP.
  • SUBNET_ID: Attributt for undernett -ID for undernettet der Nat Gateway er distribuert.
  • aws_subnet: Ressurs for å lage et VPC -undernett.
  • aws_route_table: Ressurs for å lage en VPC -rutebord.
  • rute: Argument som inneholder en liste over ruteobjekter.
  • nat_gateway_id: Argument som betegner IDen til VPC Nat Gateway.
  • gateway_id: Valgfritt argument for VPC Internet Gateway.
  • aws_route_table_association: Ressurs for å lage en assosiasjon mellom rutebord (offentlig eller privat) og 1) Internett -gateway og 2) Virtual Private Gateway.
  • rute_table_id: Rutebord -ID som vi forbinder undernettet.

Initialisere terraformkatalogen

For å laste ned og installere leverandøren vi definerte i konfigurasjonen og andre filer, må vi initialisere katalogen som inneholder denne filen:

1
$ terraform init

Bygge infrastrukturen

For å bruke endringene vi planla ovenfor, kjør følgende kommando:

1
$ Terraform Søk

Skriv inn "ja" på terminalen når du blir bedt om det.

Verifisere prosedyren

La oss nå sjekke om ønsket VPC er opprettet eller ikke. Gå til VPC -konsollen, og sjekk for tilgjengelige VPC -er:

Vi kan se at VPC -en vår er opprettet med hell.

Etter at du har utført denne oppgaven, må du slette ressursene for å unngå unødvendige kostnader:

1
$ terraform ødelegger

Skriv inn "ja" for å anvende handlingen.

Konklusjon

I denne guiden har vi lært om å lage en VPC på AWS ved hjelp av Terraform. Det neste du kan gjøre er å prøve å tilveiebringe en RDS- eller EC2 -forekomst ved å bruke Terraform.