Cree un depósito S3 en AWS con Terraform

Inicialización de terraformación

En este artículo, le mostraré cómo usar Terraform para crear un depósito S3 en AWS. Antes de continuar, supongo que está familiarizado con el depósito S3; de lo contrario, puede hacer clic aquí para ver los pasos para crear un depósito S3 desde la consola de AWS.

Requisitos previos

  1. Comprensión básica de Terraform.
  2. Terraform instalado en su sistema.
  3. Cuenta AWS (Crear si no tienes uno).
  4. ‘access_key’ y ‘secret_key’ de un usuario de AWS IAM. (Haga clic aqu√≠ para obtener informaci√≥n sobre c√≥mo crear un usuario de IAM con ‘access_key’ y ‘secret_key’ en AWS)

Lo que haremos

  1. Escriba archivos de configuración de Terraform para S3 Bucket.
  2. Cree un S3 Bucket utilizando los archivos de configuración de Terraform.
  3. Elimine el S3 Bucket creado usando Terraform.

Escribir archivos de configuración de Terraform para S3 Bucket

Cree un directorio dedicado donde pueda crear archivos de configuración de terraformación.

Use el siguiente comando para crear un directorio y cambiar su directorio de trabajo actual a él.

mkdir terraform
cd terraform/

Estoy usando ¬ęvim¬Ľ como editor para escribir en archivos, puede usar un editor de su elecci√≥n y copiar y pegar las siguientes configuraciones para crear variables.tf, terraform.tfvars y main.tf

Cree ‘main.tf’ que es responsable de crear un S3 Bucket en AWS. Este main.tf leer√° valores de variables de variables.tf y 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)))}"
}

Aquí,

  • balde: El nombre del cubo. Si se omite, Terraform asignar√° un nombre √ļnico y aleatorio.
  • force_destroy: Un valor booleano que indica que todos los objetos deben eliminarse del dep√≥sito para que el dep√≥sito pueda destruirse sin errores.
  • regi√≥n: la regi√≥n de AWS en la que debe residir este dep√≥sito.
  • etiquetas: Un mapa de etiquetas para asignar al dep√≥sito.

Cambie el valor de ¬ęregi√≥n¬Ľ si desea crear el Cubo en alguna regi√≥n diferente a la que he especificado.

Cree ‘variables.tf’ que contiene la declaraci√≥n y definici√≥n de las variables.

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

Una vez que haya creado ‘variables.tf’, no olvide cambiar los valores asignados a la variable. Debe cambiar los valores resaltados ya que son espec√≠ficos de mi entorno. Puede mantener el resto de variables como est√°n.

Cree ‘terraform.tfvars’ que contiene la definici√≥n de las variables access_key y secret_key definidas en el archivo anterior junto con la variable ¬ęregi√≥n¬Ľ.

Las siguientes claves deben cambiarse con las claves de su usuario de IAM.

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

Ahora, debe tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf

Cree un depósito S3 utilizando los archivos de configuración de Terraform

Antes de ejecutar los siguientes comandos, aseg√ļrese de haber configurado access_key y secret_key v√°lidos.

El primer comando que se utilizar√° es ‘terraform init’. Este comando descarga e instala complementos para proveedores utilizados dentro de la configuraci√≥n. En nuestro caso es AWS.

 terraform init

Inicialización de terraformación

El segundo comando que se utilizar√° es ‘plan de terraformaci√≥n’. Este comando se utiliza para ver los cambios que se producir√°n en la infraestructura.

 terraform plan

 plan de terraformación

El comando ‘terraform apply’ crear√° los recursos en AWS mencionados en el archivo main.tf. Se le pedir√° que proporcione su entrada para crear los recursos.

terraform apply

Aplicar terraformación

Cuando ejecuta el comando anterior, al completarlo con éxito, puede ver que se ha agregado 1 nuevo recurso y 0 se ha destruido.

Puede ir a la consola de AWS S3 para verificar si el S3 Bucket est√° creado o no.

AWS S3

Elimine el cubo S3 usando Terraform

Si ya no necesita un recurso que cre√≥ usando la configuraci√≥n mencionada en el archivo main.tf, puede usar el comando ¬ęterraform destroy¬Ľ para eliminar todos esos recursos. Aqu√≠, el dep√≥sito S3 se eliminar√° al ejecutar el siguiente comando.

terraform destroy

En la captura de pantalla anterior, puede ver que el recurso ha sido destruido.

Conclusión

En este artículo, vimos los pasos para crear un S3 Bucket usando Terraform. También vimos cómo el Cubo que creamos se puede eliminar con un solo comando.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *