Cómo habilitar el versiones en el cubo S3 usando Terraform

Cómo habilitar el versiones en el cubo S3 usando Terraform
La infraestructura como código o IAC es un nuevo enfoque en el que la codificación se utiliza para configurar una infraestructura. Esto significa que en lugar de configurar manualmente máquinas virtuales, redes y otros componentes de una red, escribimos un código que describe la infraestructura y simplemente ejecuta ese código para obtener el estado deseado. Terraform ha surgido como una herramienta excepcional que utiliza el enfoque IAC.

Al igual que muchas otras tareas, Terraform se puede usar para crear y administrar un cubo AWS S3. Versiones significa mantener varias versiones, o simplemente puede llamarlos variantes de un archivo. Los versiones en AWS S3 se pueden usar para mantener y restaurar diferentes variantes del objeto almacenado dentro de él. Esto tiene muchos beneficios. Por ejemplo, podemos restaurar los elementos eliminados accidentalmente.

¿Qué cubriremos??

En esta guía, veremos cómo habilitar el versiones en un cubo S3 usando Terraform. Estamos trabajando en el Ubuntu 20.04 Sistema para este tutorial. Empecemos ahora.

Que necesitarás?

  1. Conceptos básicos de Terraform
  2. Acceso a Internet
  3. Terraform instalado en su sistema. Compruebe ejecutando la versión Terraform.

Creando un cubo AWS S3 usando Terraform

Ahora que hemos visto un poco sobre Terraform y, con suerte, lo habría instalado en nuestra máquina local, podemos continuar nuestra tarea de trabajar con S3. Como se mencionó anteriormente, Terraform utiliza varios archivos de configuración para aprovisionar los recursos, y cada uno de estos archivos debe residir en su respectiva carpeta/directorio de trabajo. Creemos un directorio para este propósito.

Paso 1. Comience creando una carpeta que contenga todos los archivos de configuración y luego cambie su directorio de terminal a lo siguiente:

$ mkdir linuxhint-teraform && cd linuxhint-terraform

Paso 2. Permítanos crear nuestro primer archivo de configuración, "Variables.tf ", que contendrá la información sobre nuestra región de AWS y el tipo de instancia que queremos usar:

$ nano variables.TF

Ahora, coloque el siguiente texto dentro y guarde el archivo:

variable "aws_region"
descripción = "La región de AWS para crear el cubo S3 en."
predeterminado = "us-east-1"

variable "bucket_name"
descripción = "Un nombre único para el balde"
predeterminado = "tecofers-4"

"Tecofers-4" es el nombre de nuestro cubo, y puedes usar tu propio nombre aquí.

Paso 3. Hacer una "principal.tf " archivo que contendrá la definición de nuestra infraestructura.

$ nano principal.TF

Ahora, coloque la siguiente configuración dentro:

Terraform
requerido_providers
AWS =
fuente = "Hashicorp/AWS"
versión = "~> 3.27 "


requerido_version = "> = 0.14.9 "

Proveedor "AWS"
región = var.AWS_region
shared_credentials_file = "/home/your_user_name/.AWS/Credenciales "
perfil = "perfil1"

recurso "aws_s3_bucket" "bucket1"
cubo = var.bucket_name
etiquetas =
Nombre = "Ejemplos3bucket"


Recurso "AWS_S3_BUCKET_ACL" "BUCKET1"
cubo = var.bucket_name
acl = "privado"

recurso "AWS_S3_BUCKET_VERSIONING" "bucket_versioning"
cubo = var.bucket_name
versioning_configuration
status = "habilitado"

Cambiar el "Su nombre de usuario" al nombre de usuario de su sistema. Veamos los parámetros utilizados en los archivos anteriores:

balde: Es un parámetro opcional cuando se especifica crea un nuevo cubo. Si este argumento no está presente, el Terraform le dará al balde un nombre aleatorio y único. El nombre del cubo debe estar en minúsculas, con la longitud que no exceda de 63 caracteres.

Shared_credentials_file: Es la ruta del archivo que contiene las credenciales de los usuarios de AWS.

Perfil: Especifica el perfil del usuario para crear el cubo S3.

El recurso "AWS_S3_Bucket" y "AWS_S3_BUCKET_ACL" Proporciona un cubo y un recurso de ACL (configuración de ACL) para el cubo. El "ACL" El argumento es opcional y proporciona un conjunto de subvenciones predefinidas diseñadas por Amazon.

Del mismo modo, el recurso "AWS_S3_BUCKET_VERSIONing" Proporciona un recurso para el control de versiones en un cubo S3. El bloque de Versioning_Configuration definido en este bloque contiene la configuración requerida para este propósito. El argumento de estado es obligatorio y puede contener un valor único entre: habilitado, deshabilitado y suspendido.

Inicializando el directorio de Terraform

Para descargar e instalar el proveedor, definimos en nuestra configuración y otros archivos. Necesitamos inicializar el directorio que contiene este archivo:

$ Terraform init

Construyendo la infraestructura

Ahora que hemos preparado nuestros archivos de configuración, podemos aplicar los cambios utilizando el siguiente comando:

$ Terraform se aplica

Ingresar "Sí" en la terminal cuando se le solicita. Cuando el Terraform termina su trabajo, aparece el siguiente mensaje:

Verificar el procedimiento

Ahora, verifiquemos si se crea el cubo S3 deseado. Dirígete a la consola S3 y verifica los cubos disponibles:

Dado que nuestro cubo se creó con éxito, ahora podemos cargar archivos y crear nuevas carpetas aquí.

Elimine los recursos que creó cuando no los necesita. Esto lo salvará de cargos no deseados en AWS:

$ Terraform Destro

Conclusión

En esta guía, hemos aprendido acerca de habilitar el versgo en un cubo S3 usando Terraform. Creamos un cubo y aplicamos versiones. Hay tantas cosas que podemos hacer usando Terraform para simplificar nuestra implementación de infraestructura.