GNU/Linux >> Linux Esercitazione >  >> Linux

Crea un bucket S3 su AWS utilizzando Terraform

In questo articolo, ti mostrerò come utilizzare Terraform per creare un bucket S3 su AWS. Prima di procedere, presumo che tu abbia familiarità con il bucket S3, in caso contrario puoi fare clic qui per vedere i passaggi per creare un bucket S3 dalla console AWS.

Prerequisiti

  1. Comprensione di base di Terraform.
  2. Terraform installato sul tuo sistema.
  3. Account AWS (crea se non ne hai uno).
  4. 'access_key' &'secret_key' di un utente AWS IAM. (Fai clic qui per imparare a creare un utente IAM con 'access_key' &'secret_key' su AWS, )

Cosa faremo

  1. Scrivi i file di configurazione di Terraform per S3 Bucket.
  2. Crea un bucket S3 utilizzando i file di configurazione di Terraform.
  3. Elimina il bucket S3 creato utilizzando Terraform.

Scrivi file di configurazione Terraform per S3 Bucket

Crea una directory dedicata dove puoi creare file di configurazione terraform.

Utilizzare il comando seguente per creare una directory e modificare la directory di lavoro attuale in essa.

mkdir terraform
cd terraform/

Sto usando "vim" come editor per scrivere nei file, puoi usare un editor a tua scelta e copiare e incollare le seguenti configurazioni per creare variabili.tf, terraform.tfvars e main.tf

Crea 'main.tf' che è responsabile della creazione di un bucket S3  su AWS. Questo main.tf leggerà i valori delle variabili da variabili.tf e 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:  Il nome del secchio. Se omesso, Terraform assegnerà un nome univoco e casuale.
  • force_destroy: Un valore booleano che indichi tutti gli oggetti deve essere eliminato dal bucket in modo che il bucket possa essere distrutto senza errori.
  • region : La regione AWS in cui dovrebbe risiedere questo bucket.
  • tags: Una mappa di tag da assegnare al bucket.

Modifica il valore di "regione" se desideri creare il bucket in una regione diversa da quella che ho specificato.

Crea 'variables.tf' che contiene la dichiarazione e la definizione delle variabili.

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

Dopo aver creato 'variables.tf', non dimenticare di modificare i valori assegnati alla variabile. Devi modificare i valori evidenziati poiché sono specifici del mio ambiente. Puoi mantenere le restanti variabili così come sono.

Crea 'terraform.tfvars' che contiene la definizione delle variabili access_key e secret_key definite nel file sopra insieme alla variabile "region".

Le seguenti chiavi devono essere modificate con le chiavi del tuo utente IAM.

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

Ora dovresti avere 3 file, vale a dire, variabili.tf, terraform.tfvars e main.tf

Crea un bucket S3 utilizzando i file di configurazione Terraform

Prima di eseguire i seguenti comandi, assicurati di aver configurato access_key e secret_key validi.

Il primo comando da utilizzare è 'terraform init'. Questo comando scarica e installa i plug-in per i provider utilizzati nella configurazione. Nel nostro caso è AWS.

 terraform init

Il secondo comando da utilizzare è 'terraform plan'. Questo comando viene utilizzato per vedere le modifiche che avverranno sull'infrastruttura.

 terraform plan

Il comando 'terraform apply' creerà le risorse su AWS menzionate nel file main.tf. Ti verrà chiesto di fornire il tuo input per creare le risorse.

terraform apply

Quando esegui il comando precedente, al completamento con successo, puoi vedere che 1 nuova risorsa è stata aggiunta e 0 è stata distrutta.

Puoi accedere alla console AWS S3 per verificare se il bucket S3 è stato creato o meno.

Elimina il bucket S3 utilizzando Terraform

Se non hai più bisogno di una risorsa che hai creato usando la configurazione menzionata nel file main.tf, puoi usare il comando "terraform destroy" per eliminare tutte quelle risorse. Qui, il bucket S3 verrà eliminato dopo l'esecuzione del comando seguente.

terraform destroy

Nello screenshot sopra, puoi vedere che la risorsa è stata distrutta.

Conclusione

In questo articolo, abbiamo visto i passaggi per creare un bucket S3 utilizzando Terraform. Abbiamo anche visto come il Bucket che abbiamo creato può essere eliminato con un solo comando.


Linux
  1. Crea un Virtual Private Cloud (VPC) su AWS utilizzando Terraform

  2. Crea un'istanza EC2 su AWS utilizzando Terraform

  3. Come creare un'istanza RDS su AWS utilizzando Terraform

  4. Come creare un ruolo IAM in AWS utilizzando Terraform

  5. Come creare un utente Linux usando Ansible

Come creare una coda SQS su AWS

Come creare un'istanza Amazon AWS EC2 utilizzando Python Boto3

Come creare un'istanza RDS utilizzando Python Boto3 su AWS

Come creare un bucket S3 utilizzando Python Boto3 su AWS

Come creare una tabella DynamoDB in AWS

Come gestire lo stato di terraform in un bucket AWS S3