GNU/Linux >> Tutoriales Linux >  >> Linux

Cree un depósito S3 en AWS con Terraform

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 de AWS (cree si no tiene una).
  4. 'access_key' &'secret_key' de un usuario de AWS IAM. (Haga clic aquí para aprender a crear un usuario de IAM con 'access_key' y 'secret_key' en AWS)

Lo que haremos

  1. Escribir archivos de configuración de Terraform para S3 Bucket.
  2. Cree un depósito S3 con los archivos de configuración de Terraform.
  3. Elimine el S3 Bucket creado mediante 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 Cubo de S3 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)))}"
}

Here,

  • bucket:  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.
  • region : La región de AWS en la que debe residir este depósito.
  • tags: 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, debería tener 3 archivos, a saber, variables.tf, terraform.tfvars y  main.tf

Cree un S3 Bucket usando 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

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

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

Cuando ejecuta el comando anterior, al completarlo con éxito, puede ver que se agregó 1 nuevo recurso y 0 se destruyó.

Puede ir a la consola de AWS S3 para verificar si el cubo de S3 está creado o no.

Eliminar depósito S3 mediante 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 de 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 depósito que creamos se puede eliminar con un solo comando.


Linux
  1. Cree una nube privada virtual (VPC) en AWS con Terraform

  2. Cree una instancia EC2 en AWS usando Terraform

  3. Cómo crear una instancia RDS en AWS usando Terraform

  4. Cómo crear un rol de IAM en AWS usando Terraform

  5. Cómo crear un usuario de Linux usando Ansible

Cómo crear una cola SQS en AWS

Cómo crear una instancia Amazon AWS EC2 usando Python Boto3

Cómo crear una instancia RDS usando Python Boto3 en AWS

Cómo crear un depósito S3 usando Python Boto3 en AWS

Cómo crear una tabla de DynamoDB en AWS

Cómo administrar el estado de Terraform en un depósito de AWS S3