So erstellen Sie eine EC2 -Instanz auf AWS mit Terraform

So erstellen Sie eine EC2 -Instanz auf AWS mit Terraform

Mit dem Anstieg der Cloud-Computing-Technologie migrieren mehr Branchen ihre Workloads auf Cloud-basierte Infrastruktur. Infolge dieses Musters haben Technologen die Notwendigkeit eines Mechanismus für die Automatisierung des Prozesses der Instanzbereitstellung (und anderer Cloud -Ressourcen) der Meinung, dass es sich. Terraform ist ein solches Open-Source-Tool, um diesen Fortschritt zu erleichtern.

Was wir abdecken werden

Dieser Artikel zeigt, wie wir mit Terraform eine EC2 -Instanz auf AWS erstellen können. Wir werden ein Beispiel für die Installation eines einfachen Webservers in dieser Instanz sehen. Lassen Sie uns zuerst ein wenig über die Installation von Terraform sprechen.

Wie Sie Terraform installieren können

Offizielle Terraform-Pakete für verschiedene Betriebssysteme wie Windows, Mac und Linux-basierte Distributiere wie Ubuntu/Debian, CentOS/Rhel usw., stehen zur Verfügung. Darüber hinaus unterhält Terraform vor dem Kompilieren von Binärdateien und kann auch aus der Quelle zusammengestellt werden. Sie können die verschiedenen Installationsverfahren auf der Terraform -Website überprüfen. Führen Sie den folgenden Befehl aus, um Ihre Terraforminstallation zu überprüfen:

1
$ terraform -version

Erstellen einer AWS -EC2 -Instanz mit Terraform

Nach der Installation von Terraform in Ihrem System erstellen Sie eine EC2 -Instanz auf AWS. Es gibt einige Dateien, um eine Terraform -Bereitstellung effektiv zu verwalten. Obwohl wir eine einzelne Datei erstellen und alle Dinge deklarieren können, wird dieser Ansatz das gesamte Szenario ungeschickt. Lassen Sie uns zunächst ein Arbeitsverzeichnis erstellen, wie es im Folgenden zu sehen ist:

Schritt 1. Beginnen Sie mit einem Ordner, der alle Konfigurationsdateien enthält. Erstellen Sie den Ordner und bewegen Sie sich wie im Folgenden dargestellt:

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

Schritt 2. Lassen Sie uns unsere erste Konfigurationsdatei „Variablen“ erstellen.TF “, das Informationen über unsere AWS -Region und die Art der Instanz enthält, die wir verwenden möchten, wie im Folgenden dargestellt:

1
$ nano Variablen.tf

Geben Sie nun den folgenden Text in ihn ein und speichern Sie die Datei wie im Folgenden dargestellt:

1
2
3
4
5
6
7
8
9
10
Variable "aws_region"
Beschreibung = "Die AWS -Region für die Bereitstellung der EC2 -Instanz in."
default = "US-East-1"

Variable "Instance_type"
Beschreibung = "Instanztyp für EC2"
default = "t2.Mikro"

Schritt 3. Wenn Terraform eine neue Instanz erstellt. Wir werden daher eine neue Datei „SecGgrp erstellen.TF ”, um eine Sicherheitsgruppe,„ Web-SG “, zu erstellen, mit der der eingehende„ SSH “- und „HTTP“ -Ver Datenverkehr sowie den gesamten ausgehenden Verkehr, wie im Folgenden gezeigt, ermöglicht:

1
$ nano secgrp.tf

Setzen Sie nun den folgenden Code in ihn ein, wie im Folgenden gezeigt:

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

Eindringung
von_port = 22
to_port = 22
Protocol = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Ausgang
von_port = 0
to_port = 0
Protocol = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Schritt 4. Erstellen Sie ein „Haupt.TF ”-Datei, die die gewünschte Infrastruktur definiert, wie im Folgenden dargestellt:

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

Ressource "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.Ausweis]
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-Update
sudo apt -Get Upgrade -y
sudo apt -Get installieren apache2 -y
sudo systemctl starten Sie Apache2 neu
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo echo "

Dies ist unsere Testwebsite, die mit Terraform eingesetzt wird.

"> Index.html
Eof
Tags =
Name = "examplec2instance"


Ausgabe "iPaddress"
value = "$ aws_instance.Webserver.public_ip "

Vergessen Sie im vorherigen Cod. Lassen Sie uns ein wenig über die in den obigen Dateien verwendeten Parameter sehen:

aws_instance: Dies schafft eine EC2 -Instanzressource. Instanzen können erstellt, geändert und zerstört werden

AMI: Geben Sie die AMI -ID an, die mit der EC2 -Instanz verwendet werden soll

Instance_type: Diese Option wird verwendet, um den Typ der zu verwendenden Instanz zu deklarieren

KEY_NAME: Gibt den Namen des Schlüsselpaars an, das mit der EC2 -Instanz verwendet werden soll

vpc_security_group_ids: Ein Argument für eine Liste von Sicherheitsgruppen -IDs, die angehängt sind

associate_public_ip_address: Geben Sie an, ob die öffentliche IP mit einer Instanz in einem VPC angeschlossen werden soll

Benutzerdaten: Wird zum Übergeben von Befehlen/Daten in einer Instanz beim Starten verwendet

Initialisieren Sie nun Terraform, indem Sie den folgenden Befehl ausführen:

1
$ terraform init

Wenden Sie nun die Änderungen mit dem folgenden Befehl an:

1
$ Terraform gelten

Überprüfung des Verfahrens

Lassen Sie uns nun überprüfen, ob die gewünschte EC2 -Instanz erstellt wird. Gehen Sie zur EC2 -Konsole und überprüfen Sie die laufenden Instanzen, wie im folgenden Bild gezeigt:

Da unsere Instanz erfolgreich erstellt wurde, werden wir nun sehen, ob die von uns bereitgestellte Website korrekt funktioniert oder nicht. Kopieren Sie den DNS -Namen oder die öffentliche IP der Instanz und geben Sie ihn in einen Webbrowser ein, wie im Folgenden gezeigt:

Gut gemacht! Unser Webserver funktioniert gut.

Aufräumen der Ressourcen

Wenn Sie Ihre Infrastruktur getestet haben oder wenn Sie dies nicht benötigen, räumen Sie die Ressourcen auf, indem Sie den folgenden Befehl ausführen:

1
$ Terraform zerstören

Abschluss

Dieser Leitfaden hat uns über das Erstellen einer EC2 -Instanz auf AWS mit Terraform gelernt. Wir haben auch gezeigt, wie ein einfacher AWS -Webserver mit Terraform bereitgestellt wird.