GNU/Linux >> Tutoriels Linux >  >> Linux

Créer un compartiment S3 sur AWS à l'aide de Terraform

Dans cet article, je vais vous montrer comment utiliser Terraform pour créer un compartiment S3 sur AWS. Avant de continuer, je suppose que vous connaissez le compartiment S3, sinon vous pouvez cliquer ici pour voir les étapes de création d'un compartiment S3 à partir de la console AWS.

Pré-requis

  1. Compréhension de base de Terraform.
  2. Terraform installé sur votre système.
  3. Compte AWS (créez-le si vous n'en avez pas).
  4. 'access_key' &'secret_key' d'un utilisateur AWS IAM. (Cliquez ici pour apprendre à créer un utilisateur IAM avec 'access_key' &'secret_key' sur AWS, )

Ce que nous allons faire

  1. Écrire des fichiers de configuration Terraform pour le compartiment S3.
  2. Créez un compartiment S3 à l'aide des fichiers de configuration Terraform.
  3. Supprimez le compartiment S3 créé à l'aide de Terraform.

Écrire des fichiers de configuration Terraform pour le compartiment S3

Créez un répertoire dédié où vous pouvez créer des fichiers de configuration terraform.

Utilisez la commande suivante pour créer un répertoire et y modifier votre répertoire de travail actuel.

mkdir terraform
cd terraform/

J'utilise "vim" comme éditeur pour écrire dans des fichiers, vous pouvez utiliser un éditeur de votre choix et copier coller les configurations suivantes pour créer variables.tf, terraform.tfvars et main.tf

Créez 'main.tf' qui est chargé de créer un compartiment S3 sur AWS. Ce main.tf lira les valeurs des variables de variables.tf et 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:  Le nom du compartiment. S'il est omis, Terraform attribuera un nom aléatoire et unique.
  • force_destroy: Un booléen qui indique que tous les objets doivent être supprimés du bucket afin que le bucket puisse être détruit sans erreur.
  • region  : La région AWS dans laquelle ce bucket doit résider.
  • tags: Une carte des balises à attribuer au bucket.

Modifiez la valeur de "région" si vous souhaitez créer le bucket dans une région autre que celle que j'ai spécifiée.

Créez 'variables.tf' qui contient la déclaration et la définition des 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"}
}

Une fois que vous avez créé 'variables.tf', n'oubliez pas de modifier les valeurs attribuées à la variable. Vous devez modifier les valeurs mises en surbrillance car elles sont spécifiques à mon environnement. Vous pouvez conserver les autres variables telles quelles.

Créez 'terraform.tfvars' qui contient la définition des variables access_key et secret_key définies dans le fichier ci-dessus avec la variable "region".

Les clés suivantes doivent être remplacées par les clés de votre utilisateur IAM.

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

Maintenant, vous devriez avoir 3 fichiers, à savoir, variables.tf, terraform.tfvars et main.tf

Créer un compartiment S3 à l'aide des fichiers de configuration Terraform

Avant d'exécuter les commandes suivantes, assurez-vous d'avoir configuré la clé d'accès et la clé secrète valides.

La première commande à utiliser est 'terraform init'. Cette commande télécharge et installe les plug-ins pour les fournisseurs utilisés dans la configuration. Dans notre cas, il s'agit d'AWS.

 terraform init

La seconde commande à utiliser est 'terraform plan'. Cette commande permet de voir les changements qui auront lieu sur l'infrastructure.

 terraform plan

La commande 'terraform apply' créera les ressources sur AWS mentionnées dans le fichier main.tf. Vous serez invité à fournir votre contribution pour créer les ressources.

terraform apply

Lorsque vous exécutez la commande ci-dessus, une fois l'exécution réussie, vous pouvez voir qu'une nouvelle ressource a été ajoutée et qu'aucune n'a été détruite.

Vous pouvez accéder à la console AWS S3 pour vérifier si le compartiment S3 est créé ou non.

Supprimer le compartiment S3 à l'aide de Terraform

Si vous n'avez plus besoin d'une ressource que vous avez créée à l'aide de la configuration mentionnée dans le fichier main.tf, vous pouvez utiliser la commande "terraform destroy" pour supprimer toutes ces ressources. Ici, le bucket S3 sera supprimé lors de l'exécution de la commande suivante.

terraform destroy

Dans la capture d'écran ci-dessus, vous pouvez voir que la ressource a été détruite.

Conclusion

Dans cet article, nous avons vu les étapes pour créer un bucket S3 à l'aide de Terraform. Nous avons également vu comment le bucket que nous avons créé peut être supprimé en une seule commande.


Linux
  1. Créer un cloud privé virtuel (VPC) sur AWS à l'aide de Terraform

  2. Créer une instance EC2 sur AWS à l'aide de Terraform

  3. Comment créer une instance RDS sur AWS à l'aide de Terraform

  4. Comment créer un rôle IAM dans AWS à l'aide de Terraform

  5. Comment créer un utilisateur Linux avec Ansible

Comment créer une file d'attente SQS sur AWS

Comment créer une instance Amazon AWS EC2 à l'aide de Python Boto3

Comment créer une instance RDS à l'aide de Python Boto3 sur AWS

Comment créer un compartiment S3 à l'aide de Python Boto3 sur AWS

Comment créer une table DynamoDB dans AWS

Comment gérer l'état de Terraform dans un compartiment AWS S3