So erstellen Sie AWS VPC mit Terraform

So erstellen Sie AWS VPC mit Terraform

AWS bietet einen VPC -Dienst (Virtual Private Cloud) für das Erstellen eines logisch isolierten virtuellen Netzwerks in der Cloud. Hier können wir EC2- und RDS -Instanzen starten und Sicherheitsgruppen und andere Ressourcen erstellen. Wie viele andere Aufgaben können wir auch ein VPC mit Terraform erstellen.

Was wir abdecken werden

Diese Anleitung zeigt, wie Sie mit Terraform ein AWS -VPC (Virtual Private Cloud) erstellen können.

Was wirst du brauchen

  1. AWS -Konto
  2. Zugang zum Internet
  3. Grundlagen der Terraform

Erstellen von AWS VPC mit Terraform

Nachdem wir Terraform auf unserer lokalen Maschine installiert haben, können wir unsere Aufgabe, mit VPC zusammenzuarbeiten, fortsetzen. Hier haben wir das VPC -Setup für unseren Fall beschrieben:

Wir haben ein privates und ein öffentliches Subnetz mit ihrer entsprechenden Routentabelle. Das öffentliche Subnetz hat auch ein NAT -Gateway daran beigefügt. Die Terraform -Konfiguration für verschiedene Komponenten wird in verschiedenen Dateien gespeichert wie:

  1. Variablen.TF: Definition der in den Dateien verwendeten Variablen
  2. VPC.TF: Für VPC -Ressource
  3. Tor.TF: Für Gateway -Ressourcen
  4. Subnetze.TF: Zur Definition öffentlicher und privater Subnetze
  5. Routentisch.TF: Für öffentliche und private Routentischressourcen
  6. hauptsächlich.tf

Wie bereits erwähnt, verwendet Terraform mehrere Konfigurationsdateien für Bereitstellungsressourcen, und jede dieser Dateien muss sich in ihrem jeweiligen Arbeitsordner/Verzeichnis befinden. Lassen Sie uns zu diesem Zweck ein Verzeichnis erstellen:

Schritt 1. Erstellen Sie einen Ordner, in dem Ihre Konfigurationsdateien gespeichert sind, und navigieren Sie dann zu diesem Ordner:

1
$ mkdir linuxHint-terraform && cd linuxHint-terraform

Schritt 2. Lassen Sie uns unsere erste Konfigurationsdatei „Variablen“ erstellen.TF “, die Informationen über unsere AWS -Region und die Art der Instanz enthalten, die wir verwenden möchten:

1
$ nano Variablen.tf

Geben Sie nun den folgenden Text hinein und speichern Sie die Datei:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Variable "aws_region"
Beschreibung = "Die AWS -Region zum Erstellen des VPC in."
default = "US-East-1"

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

Variable "PubSubcidr"
cidr_block = "172.168.0.0/24 "

Variable "Prisubcidr"
cidr_block = "172.168.1.0/24 "

Schritt 3. Erstellen Sie VPC.tf:

1
$ nano vpc.tf

Geben Sie nun den folgenden Text hinein und speichern Sie die Datei:

1
2
3
4
5
Ressource "AWS_VPC" "my-vpc"
cidr_block = var.VPC-CIDR

Schritt 4. Gateway erstellen.TF -Datei und Definieren Sie hier Internet Gateway und Nat Gateway:

1
$ nano Gateway.tf

Geben Sie nun den folgenden Text hinein und speichern Sie die Datei:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Erstellen Sie die Internet -Gateway -Ressource und fügen Sie sie dem VPC hinzu
Ressource "aws_internet_gateway" "igw"
vpc_id = aws_vpc.my-vpc.Ausweis

# EIP für die IGW erstellen
Ressource "AWS_EIP" "myeip"
vpc = true

# Erstellen Sie die NAT -Gateway -Ressource und fügen Sie sie dem VPC an
Ressource "aws_nat_gateway" "nat-gw"
Allocation_id = aws_eip.myeip.Ausweis
subnet_id = aws_subnet.MyPublicsSubnet.Ausweis

Schritt 5. Subnetze erstellen.TF für die privaten und öffentlichen Subnetze im VPC:

1
$ nano subnetze.tf

Geben Sie nun den folgenden Text hinein und speichern Sie die Datei:

1
2
3
4
5
6
7
8
9
Ressource "AWS_SUBNET" "MYPRivateSubnet"
vpc_id = aws_vpc.my-vpc.Ausweis
cidr_block = var.Prisubcidr

Ressource "AWS_SUBNET" "MyPublicsubnet"
vpc_id = aws_vpc.my-vpc.Ausweis
cidr_block = var.PubSubcidr

Schritt 6. Routentisch erstellen.TF für private und öffentliche Subnetze:

1
$ nano route table.tf

Geben Sie nun den folgenden Text hinein und speichern Sie die Datei:

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
# RT für private Subnetze erstellen
Ressource "aws_route_table" "privrt"
vpc_id = aws_vpc.my-vpc.Ausweis
Route
cidr_block = "0.0.0.0/0 "
nat_gateway_id = aws_nat_gateway.Nat-GW.Ausweis


# RT für öffentliches Subnetz erstellen
Ressource "AWS_Route_table" "Publrt"
vpc_id = aws_vpc.my-vpc.Ausweis
Route
cidr_block = "0.0.0.0/0 "
gateway_id = aws_internet_gateway.Igw.Ausweis


#Association der öffentlichen RT mit den öffentlichen Subnetzen
Ressource "aws_route_table_association" "bubrtass"
subnet_id = aws_subnet.MyPublicsSubnet.Ausweis
Route_table_id = aws_route_table.publrt.Ausweis

#Association des privaten RT mit den privaten Subnetzen
Ressource "aws_route_table_association" "Prirtass"
subnet_id = aws_subnet.MyPrivateSubnet.Ausweis
Route_table_id = aws_route_table.privrt.Ausweis

Schritt 7. Mach ein „Haupt.TF ”-Datei, die die Definition für unsere Infrastruktur enthält:

1
$ nano main.tf

Stellen Sie nun die folgende Konfiguration hinein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Terraform
fordert_providers
AWS =
Source = "Hashicorp/AWS"
Version = "~> 3.27 "


fordern_version = "> = 0.14.9 "

Anbieter "AWS"
Region = var.AWS_region
shared_credentials_file = "/home/user_name/.AWS/Anmeldeinformationen "
Profil = "Profil1"

Modifiziere den "NutzernameIm obigen Code mit dem Benutzernamen in Ihrem Fall. Lassen Sie uns ein wenig über die in den vorherigen Dateien verwendeten Parameter sehen:

  • Shared_credentials_file: Es ist der Pfad der Datei, die die Anmeldeinformationen der AWS -Benutzer enthält.
  • Profil: Es gibt das Profil des Benutzers an, das für die Arbeit mit AWS verwendet werden soll.
  • AWS_VPC: Ressource zum Aufbau eines VPC.
  • cidr_block: Bietet einen IPv4 -CIDR -Block für den VPC.
  • aws_internet_gateway: Ressource zum Erstellen eines Internet -Gateways für den VPC.
  • AWS_EIP: Ressource zur Herstellung eines elastischen IP (EIP).
  • aws_nat_gateway: Ressource zum Erstellen eines NAT -Gateways für den VPC.
  • Allocation_id: Attribut für die Zuordnungs-ID des oben generierten EIP.
  • subnet_id: Attribut für die Subnetz -ID des Subnetzes, in der NAT Gateway bereitgestellt wird.
  • AWS_SUBNET: Ressource zum Erstellen eines VPC -Subnetzes.
  • AWS_ROUTE_TABLE: Ressource zum Erstellen einer VPC -Routentabelle.
  • Route: Argument, das eine Liste von Routenobjekten enthält.
  • nat_gateway_id: Argument, das die ID des VPC Nat Gateway bezeichnet.
  • Gateway_id: Optionales Argument für VPC Internet Gateway.
  • AWS_ROUTE_TABLE_ASSOCIATION: Ressource für die Erstellung einer Assoziation zwischen der Routentabelle (öffentlich oder privat) und 1) Internet -Gateway und 2) Virtual Private Gateway.
  • Route_table_id: Die Routentabellen -ID, mit der wir das Subnetz assoziieren.

Initialisierung des Terraform -Verzeichnisses

Um den in unserer Konfiguration und anderen Dateien definierten Anbieter herunterzuladen und zu installieren, müssen wir das Verzeichnis mit dieser Datei initialisieren:

1
$ terraform init

Aufbau der Infrastruktur

Um die oben geplanten Änderungen anzuwenden, führen Sie den folgenden Befehl aus:

1
$ Terraform gelten

Geben Sie bei der Aufforderung „Ja“ am Terminal ein.

Überprüfung des Verfahrens

Lassen Sie uns nun überprüfen, ob der gewünschte VPC erstellt wird oder nicht. Gehen Sie zur VPC -Konsole und prüfen Sie nach den verfügbaren VPCs:

Wir können sehen, dass unser VPC erfolgreich erstellt wird.

Nachdem Sie diese Aufgabe erledigt haben, löschen Sie die Ressourcen, um unnötige Gebühren zu vermeiden:

1
$ Terraform zerstören

Geben Sie "Ja" ein, um die Aktion anzuwenden.

Abschluss

In diesem Leitfaden haben wir gelernt, einen VPC auf AWS mit Terraform zu erstellen. Das nächste, was Sie tun können, ist zu versuchen, eine RDS- oder EC2 -Instanz mit Terraform bereitzustellen.