Erstelle eine EC2-Instanz auf AWS mit Terraform
In diesem Artikel zeigen wir dir, wie du eine EC2-Instanz mit Terraform erstellst. Bevor wir fortfahren, gehe ich davon aus, dass du mit den Grundlagen von Terraform und AWS EC2 Instance vertraut bist. Wenn du lernen willst, wie du eine EC2-Instanz über die AWS-Konsole erstellst, dann klicke hier.
Vorraussetzungen
- Grundlegendes Verständnis von Terraform.
- Terraform ist auf deinem System installiert.
- AWS-Konto (Erstelle wenn du noch keines hast).
- ‚access_key‘ & ’secret_key‘ eines AWS IAM Users. (Klicke hier um zu erfahren, wie du einen IAM-Benutzer mit ‚access_key‘ & ’secret_key‘ auf AWS erstellst).
Was wir tun werden
- Terraform-Konfigurationsdateien für die Erstellung einer EC2-Instanz schreiben.
- Erstelle eine EC2-Instanz mit Hilfe der Terraform-Konfigurationsdateien.
- Lösche die erstellte EC2-Instanz mit Terraform.
Terraform-Konfigurationsdateien schreiben, um eine EC2-Instanz zu erstellen
Erstelle ein spezielles Verzeichnis, in dem du Terraform-Konfigurationsdateien erstellen kannst.
Verwende den folgenden Befehl, um ein Verzeichnis zu erstellen und wechsle in dein aktuelles Arbeitsverzeichnis.
mkdir terraform cd terraform/
Ich verwende „vim“ als Editor, um die Dateien zu schreiben. Du kannst einen Editor deiner Wahl verwenden und die folgenden Konfigurationen kopieren und einfügen, um variables.tf, terraform.tfvars und main.tf zu erstellen
Erstelle „main.tf“, die dafür verantwortlich ist, eine EC2 auf AWS zu erstellen. Diese main.tf liest die Werte der Variablen aus variables.tf und terraform.tfvars.
vim main.tf
provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3" } resource "aws_instance" "ec2_instance" { ami = "${var.ami_id}" count = "${var.number_of_instances}" subnet_id = "${var.subnet_id}" instance_type = "${var.instance_type}" key_name = "${var.ami_key_pair_name}" }
Ändereden Wert von „region“, wenn du die Instanz in einer anderen Region als der von mir angegebenen erstellen willst.
Erstelle „variables.tf“, die die Deklaration und Definition der Variablen enthält.
vim variables.tf
variable "access_key" { description = "Access key to AWS console" } variable "secret_key" { description = "Secret key to AWS console" } variable "instance_name" { description = "Name of the instance to be created" default = "test" } variable "instance_type" { default = "t2.micro" } variable "subnet_id" { description = "The VPC subnet the instance(s) will be created in" default = "subnet-a5a72ce8" } variable "ami_id" { description = "The AMI to use" default = "ami-096b8af6e7e8fb927" } variable "number_of_instances" { description = "number of instances to be created" default = 1 } variable "ami_key_pair_name" { default = "tomcat" }
Wenn du „variables.tf“ erstellt hast, vergiss nicht, die den Variablen zugewiesenen Werte zu ändern. Du musst ami_key_pair_name, ami_id und subnet_id ändern, da diese für meine Umgebung spezifisch sind. Die anderen Variablen kannst du so lassen, wie sie sind.
Erstelle die Datei „terraform.tfvars“, die die Definition der Variablen access_key und secret_key aus der obigen Datei enthält. Wir haben die Deklaration dieser beiden Variablen in der Datei“terraform.tfvars“ beibehalten.
Die folgenden Schlüssel müssen durch die Schlüssel deines IAM-Benutzers ersetzt werden.
vim terraform.tfvars
access_key = "AKIAQ6GAIA5XIHHM2GJM" secret_key = "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"
Jetzt solltest du 3 Dateien haben, nämlich variables.tf, terraform.tfvars und main.tf
Erstelle eine EC2-Instanz mit den Terraform-Konfigurationsdateien
Bevor du die folgenden Befehle ausführst, stelle sicher, dass du einen gültigen access_key und secret_key konfiguriert hast.
Der erste Befehl, den du verwenden musst, ist „terraform init“. Dieser Befehl lädt die Plugins für die in der Konfiguration verwendeten Anbieter herunter und installiert sie. In unserem Fall ist es AWS.
terraform init
Der zweite Befehl ist „terraform plan“. Dieser Befehl wird verwendet, um die Änderungen zu sehen, die in der Infrastruktur vorgenommen werden.
terraform plan
Der Befehl „terraform apply“ erstellt die Ressourcen auf der AWS, die in der Datei main.tf angegeben sind. Du wirst aufgefordert, deine Daten einzugeben, um die Ressourcen zu erstellen.
terraform apply
Wenn du den obigen Befehl ausführst, kannst du in der Ausgabesehen, dass 1 neue Ressource hinzugefügt und 0 zerstört wurde.
Du kannst die AWS EC2 Konsole aufrufen, um zu überprüfen, ob die EC2 Instanz erstellt wurde oder nicht.
Löschen der erstellten EC2-Instanz mit Terraform
Wenn du die Ressourcen, die du mit der Konfiguration in der Datei main.tf erstellt hast, nicht mehr benötigst, kannst du den Befehl „terraform destroy“ verwenden, um alle Ressourcen zu löschen.
terraform destroy
Fazit
In diesem Artikel haben wir gesehen, wie wir eine EC2-Instanz in einer Region unserer Wahl erstellen. Wir haben auch gesehen, wie die Instanz gelöscht werden kann.