Erstellung eines S3-Buckets mit Terraform

Bei S3-Buckets handelt es sich um den Cloud-Storage-Dienst von Amazon. In großen Unternehmen ist es nicht ungewöhnlich, dass zahlreiche S3-Buckets für Entwicklung, Tests und andere Dienste eingesetzt werden. Anstatt mehrere S3-Buckets manuell bereitzustellen, können Sie sie mit Terraform innerhalb von wenigen Sekunden implementieren. Nachdem Sie eine Terraform-Datei erstellt haben, können Sie S3-Buckets in Sekundenschnelle implementieren, […]

Erstellung eines S3-Buckets mit Terraform

image_pdfimage_print

Bei S3-Buckets handelt es sich um den Cloud-Storage-Dienst von Amazon. In großen Unternehmen ist es nicht ungewöhnlich, dass zahlreiche S3-Buckets für Entwicklung, Tests und andere Dienste eingesetzt werden.

Anstatt mehrere S3-Buckets manuell bereitzustellen, können Sie sie mit Terraform innerhalb von wenigen Sekunden implementieren. Nachdem Sie eine Terraform-Datei erstellt haben, können Sie S3-Buckets in Sekundenschnelle implementieren, ohne dass Sie jeden einzelnen Bucket konfigurieren müssen.

Wann empfiehlt sich die Verwendung von S3 mit Terraform?

Wenn Sie mehrere S3-Buckets für eine Anwendung implementieren müssen, können Sie diese manuell konfigurieren. Dies dauert jedoch mehrere Minuten, und Sie müssten beim nächsten Mal, wenn Sie AWS-Cloud-Speicher benötigen, denselben Vorgang wiederholen.

Stattdessen können Sie diesen Prozess mit einer Terraform-Vorlage beschleunigen. Eine Terraform-Vorlage enthält Einstellungen für den S3-Bucket und kann dazu verwendet werden, Befehle an die API zu senden, um mehrere S3-Buckets gleichzeitig in wenigen Sekunden zu implementieren, damit Sie die gleichen Schritte nicht manuell wiederholen müssen. Der einzige Schritt, den Sie ausführen müssen, ist die Erstellung der Terraform-Dateien, damit diese die S3-Buckets implementieren.

So erstellen Sie ein S3-Bucket mit Terraform: Ein Beispiel

In diesem Beispiel werden zwei Terraform-Vorlagendateien erstellt. Sie heißen bucket.tf und variables.tf. Diese beiden Dateien enthalten den Namen des S3-Buckets, Konfigurationen, Zugriffsschlüssel für Benutzerprofile, damit der Bucket zugänglich ist, und eine Region zum Speichern des Buckets.

Schritt 1: Erstellen Sie die Datei „bucket.tf“

In der Datei „bucket.tf“ sind der Name, die Region und die Zugriffsschlüssel für den S3-Bucket gespeichert. Verwenden Sie in der Datei „bucket.tf“ den folgenden Code:

provider "aws" {

    access_key = "${var.aws_access_key}"

    secret_key = "${var.aws_secret_key}"

    region = "${var.region}"

}

module "s3" {

    source = "<path-to-S3-folder>"

    bucket_name = "your_bucket_name"       

}

resource "aws_s3_bucket" "temps3" {

    bucket = "${var.bucket_name}" 

    acl = "${var.acl_value}"   

}

Schritt 2: Erstellen Sie die Datei „variables.tf“

Die Datei „variables.tf“ enthält die Variablenverweise, die in der Datei „bucket.tf“ aufgeführt sind. Erstellen Sie eine Terraform-Datei mit folgendem Code:

variable "bucket_name" {}

variable "acl_value" {

    default = "private"

}

variable "aws_access_key" {

default = “<your_access_key>”

}

variable "aws_secret_key" {

default = “<your_secret_key>”

 }

variable "region" {

    default = "region"

}

Schritt 3: Führen Sie die Befehle in Terraform aus

Damit Sie Befehle in Terraform ausführen können, müssen Sie es zunächst initialisieren. Anschließend können Sie die Änderungen in Ihrer Umgebung umsetzen, um den S3-Bucket zu erstellen. Geben Sie die folgenden Befehle in Terraform ein:

terraform init

terraform apply

Erstellung von S3-Bucket-Instances in Terraform

Für die Erstellung von Bucket-Instances werden dieselben Schritte wie oben ausgeführt. Führen Sie diese Schritte aus, um die Datei „bucket.tf“ und die Datei „variables.tf“ zu erstellen und S3-Bucket-Instances zu implementieren.

Schritt 1: Erstellen Sie die Datei „bucket.tf“

In der Datei „bucket.tf“ werden die grundlegenden Konfigurationen für die S3-Bucket-Instance gespeichert. Verwenden Sie in der Datei „bucket.tf“ den folgenden Code:

provider "aws" {

    access_key = "${var.aws_access_key}"

    secret_key = "${var.aws_secret_key}"

    region = "${var.region}"

}

module "s3" {

    source = "<path-to-S3-folder>"

    bucket_name = "your_bucket_name"       

}

resource "aws_s3_bucket" "temps3" {

    bucket = "${var.bucket_name}" 

    acl = "${var.acl_value}"   

}

Schritt 2: Erstellen Sie die Datei „variables.tf“

Die Datei „variables.tf“ enthält die Variablenverweise, die in der Datei „bucket.tf“ aufgeführt sind. Erstellen Sie eine Terraform-Datei mit folgendem Code:

variable "bucket_name" {}

variable "acl_value" {

    default = "private"

}

variable "aws_access_key" {

default = “<your_access_key>”

}

variable "aws_secret_key" {

default = “<your_secret_key>”

 }

variable "region" {

    default = "region"

}

Schritt 3: Führen Sie die Befehle in Terraform aus

Wenn Sie Terraform bereits im vorherigen Abschnitt initialisiert haben, müssen Sie dies nicht erneut tun. Falls nicht, müssen Sie Terraform initialisieren, bevor Sie die Umgebungsänderungen anwenden. Geben Sie die folgenden Befehle in Terraform ein, aber überspringen Sie den ersten Befehl, wenn Sie Terraform bereits initialisiert haben:

terraform init

terraform apply

Fazit

Mit Terraform-Vorlagendateien können Sie denselben Prozess mehrfach wiederholen, anstatt AWS-Cloud-Dienste jedes Mal manuell zu konfigurieren, wenn Sie sie benötigen. Auf diese Weise lässt sich die Bereitstellungsdauer von mehreren Stunden auf wenige Sekunden verkürzen.

Written By: