Maak een S3 Bucket op AWS met Terraform

In dit artikel laat ik je zien hoe je Terraform kunt gebruiken om een S3 emmer op AWS te maken. Alvorens verder te gaan neem ik aan dat je bekend bent met S3 emmer zo niet dan kun je hier klikken om de stappen te zien om een S3 emmer te maken vanuit de AWS console.

Vereisten

  1. Basiskennis van Terraform.
  2. Terraform geïnstalleerd op je systeem.
  3. AWS Account (Maak aan als je er geen hebt).
  4. ‘access_key’ & ‘secret_key’ van een AWS IAM Gebruiker. (Klik hier om te leren hoe je een IAM gebruiker met ‘access_key’ & ‘secret_key’ op AWS kunt maken, )

Wat we zullen doen

  1. Schrijf Terraform configuratiebestanden voor S3 Bucket.
  2. Maak eenS3 Bucket met behulp van de Terraform configuratiebestanden.
  3. Verwijder de gemaakteS3 Bucket met behulp van Terraform.

Schrijf Terraform configuratiebestanden voor S3 Bucket

Maak een speciale map waarin je terraform configuratiebestanden kunt maken.

Gebruik het volgende commando om een directory aan te maken en je huidige werkdirectory er naar te veranderen.

mkdir terraform
cd terraform/

Ik gebruik “vim” als editor om de bestanden in te schrijven, je kunt een editor naar keuze gebruiken en de volgende configuraties kopiëren-plakken om variabelen.tf, terraform.tfvars en main.tf te maken

Maak ‘main.tf’ dat verantwoordelijk is voor het aanmaken van een S3 Bucket op AWS. Deze main.tf zal waarden van variabelen lezen uit variables.tf en terraform.tfvars.

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:Een boolean die aangeeft dat alle objectenuit de emmer verwijderd moeten worden, zodat de emmer zonder fouten vernietigd kan worden.
  • region: De AWS regio waarin deze emmer moet verblijven.
  • tags:Een kaart met tags om aan de emmer toe te kennen.

Verander de waarde van “region” als je de emmer in een andere regio wilt maken dan wat ik heb opgegeven.

Maak ‘variables.tf’ dat de verklaring en definitie van de variabelen bevat.

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

Als je ‘variables.tf’ gemaakt hebt, vergeet dan niet de aan de variabele toegekende waarden te veranderen. Je moet de gemarkeerde waarden veranderen, want die zijn specifiek voor mijn omgeving. De rest van de variabelen kun je laten zoals ze zijn.

Maak ’terraform.tfvars’ dat de definitie bevat van de in het bovenstaande bestand gedefinieerde variabelen access_key en secret_key, samen met de variabele “region”.

De volgende sleutels moet je veranderen met de sleutels van je IAM gebruiker.

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

Nu zou je 3 bestanden moeten hebben, nl. variables.tf, terraform.tfvars en main.tf

Maak een S3 Bucket met de Terraform configuratiebestanden

Voor je de volgende commando’s uitvoert, moet je zeker zijn dat je de geldige access_key en secret_key geconfigureerd hebt.

Het eerste commando dat je moet gebruiken is ’terraform init’. Dit commando downloadt en installeert plugins voor providers die binnen de configuratie gebruikt worden. In ons geval is dat AWS.

 terraform init

Terraform init

Het tweede commando dat gebruikt moet worden is ’terraform plan’. Dit commando wordt gebruikt om de veranderingen te zien die op de infrastructuur zullen plaatsvinden.

 terraform plan

terravormingsplan

Het ’terraform apply’ commando zal de bronnen aanmaken op de AWS die in het main.tf bestand genoemd worden. Je wordt gevraagd je invoer te geven om de middelen aan te maken.

terraform apply

terravorm toepassen

Als je het bovenstaande commando uitvoert, zie je na succesvolle voltooiing dat 1 nieuwe resource is toegevoegd en 0 is vernietigd.

Je kunt naar de AWS S3 console gaan om te controleren of de S3 Bucket is aangemaakt of niet.

AWS S3

S3 Bucket verwijderen met Terraform

Als je een resource die je aanmaakte met de configuratie vermeld in het main.tf bestand niet meer nodig hebt, kun je het “terraform destroy” commando gebruiken om al die resources te verwijderen. Hier wordt de S3 emmer verwijderd bij het uitvoeren van het volgende commando.

terraform destroy

terravormen vernietigen

In de bovenstaande schermafbeelding zie je dat de resource vernietigd is.

Conclusie

In dit artikel zagen we de stappen om een S3 Bucket te maken met Terraform. We zagen ook hoe de door ons gemaakte Bucket met slechts één commando kan worden verwijderd.