Mit Terraform einen S3 Bucket auf AWS erstellen

In diesem Artikel zeige ich dir, wie du mit Terraform einen S3-Bucket auf AWS erstellen kannst. Bevor ich fortfahre, gehe ich davon aus, dass du mit dem S3-Bucket vertraut bist. Wenn nicht, kannst du hier klicken, um die Schritte zum Erstellen eines S3-Buckets über die AWS-Konsole zu sehen.

Vorraussetzungen

  1. Grundlegendes Verständnis von Terraform.
  2. Terraform ist auf deinem System installiert.
  3. AWS-Konto (Erstelle wenn du noch keines hast).
  4. ‚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

  1. Terraform-Konfigurationsdateien für S3 Bucket schreiben.
  2. EinS3 Bucket mit Hilfe der Terraform-Konfigurationsdateien erstellen.
  3. Lösche das erstellteS3 Bucket mit Terraform.

Terraform-Konfigurationsdateien für S3 Bucket schreiben

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, einen S3 Bucket auf AWS zu erstellen. Diese main.tf wird die Werte der Variablen aus variables.tf und terraform.tfvars lesen.

vim main.tf
provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}

resource "aws_s3_bucket" "this" {
  bucket                               = "${var.bucket_name}"
  force_destroy                        = "${var.force_destroy}"
  region                               = "${var.region}"
  tags                                 = "${merge(var.tags, map("Name", format("%s", var.bucket_name)))}"
}

Here,

  • bucket: The name of the bucket. If omitted, Terraform will assign a random, unique name.
  • force_destroy:Ein boolescher Wert, der angibt, dass alle Objekteaus dem Bucket gelöscht werden sollen, damit der Bucket ohne Fehler zerstört werden kann.
  • regionAWS-Region: Die AWS-Region, in der sich der Bucket befinden soll.
  • tags:Eine Map mit Tags, die dem Bucket zugewiesen werden sollen.

Ändere den Wert von „region“, wenn du den Bucket 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 "region" {
     description = "Region of AWS VPC"
}

variable "bucket_name" {
  description = "(Required) Creates a unique bucket name"
  type        = "string"
  default     = "test-bucket-rahul-delete"
}

variable "force_destroy" {
  description = "(Optional) A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error"
  type        = "string"
  default     = true
}

variable "tags" {
  description = "(Optional) A mapping of tags to assign to the bucket"
  type        = "map"
  default     = {"env": "test"}
}

Sobald du die Datei „variables.tf“ erstellt hast, vergiss nicht, die den Variablen zugewiesenen Werte zu ändern. Du musst die hervorgehobenen Werte ändern, da sie spezifisch für meine Umgebung sind. Die übrigen Variablen kannst du so lassen, wie sie sind.

Erstelle „terraform.tfvars“, die die Definition der Variablen access_key und secret_key aus der obigen Datei sowie die Variable „region“ enthält.

Die folgenden Schlüssel müssen durch die Schlüssel deines IAM-Benutzers ersetzt werden.

vim terraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XFLXF6HOV"
secret_key = "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"

Jetzt solltest du 3 Dateien haben, nämlich variables.tf, terraform.tfvars und main.tf

Ein S3 Bucket mit den Terraform Konfigurationsdateien erstellen

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 ausführen 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

Terraform init

Der zweite Befehl ist „terraform plan“. Dieser Befehl wird verwendet, um die Änderungen zu sehen, die an der Infrastruktur vorgenommen werden.

 terraform plan

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

terraform anwenden

Wenn du den obigen Befehl ausführst, kannst du nach erfolgreichem Abschluss sehen, dass 1 neue Ressource hinzugefügt und 0 zerstört wurde.

Du kannst die AWS S3 Konsole aufrufen, um zu überprüfen, ob das S3 Bucket erstellt wurde oder nicht.

AWS S3

S3 Bucket mit Terraform löschen

Wenn du eine Ressource, die du mit der in der Datei main.tf angegebenen Konfiguration erstellt hast, nicht mehr benötigst, kannst du den Befehl „terraform destroy“ verwenden, um alle diese Ressourcen zu löschen. In diesem Fall wird der S3-Bucket gelöscht, wenn du den folgenden Befehl ausführst.

terraform destroy

Terraform zerstören

Im obigen Screenshot kannst du sehen, dass die Ressource zerstört wurde.

Fazit

In diesem Artikel haben wir die Schritte zur Erstellung eines S3-Buckets mit Terraform kennengelernt. Außerdem haben wir gesehen, wie der erstellte Bucket mit nur einem Befehl gelöscht werden kann.

Das könnte dich auch interessieren …