Comment créer un compartiment S3 avec Terraform ?

Les compartiments S3 font partie du service de stockage cloud d’Amazon. Il n’est pas rare que les grandes entreprises déploient de nombreux compartiments S3 pour le développement, les tests et d’autres services. Au lieu de créer manuellement plusieurs compartiments S3, vous pouvez utiliser Terraform pour les déployer en quelques secondes. Après avoir créé un fichier Terraform, vous pouvez […]

Comment créer un compartiment S3 avec Terraform

Les compartiments S3 font partie du service de stockage cloud d’Amazon. Il n’est pas rare que les grandes entreprises déploient de nombreux compartiments S3 pour le développement, les tests et d’autres services.

Au lieu de créer manuellement plusieurs compartiments S3, vous pouvez utiliser Terraform pour les déployer en quelques secondes. Après avoir créé un fichier Terraform, vous pouvez continuer à déployer des compartiments S3 en quelques secondes sans avoir à les configurer séparément.

Quand utiliser S3 avec Terraform ?

Si vous devez déployer plusieurs compartiments S3 pour une application, vous pouvez les configurer manuellement, mais cela vous prendra plusieurs minutes et vous devrez répéter les mêmes étapes la prochaine fois que vous aurez besoin du stockage cloud AWS.

Au lieu de cela, vous pouvez utiliser un modèle Terraform pour rationaliser le processus. Un modèle Terraform contient des paramètres relatifs au compartiment S3 et peut être utilisé pour envoyer des commandes à l’API afin de déployer plusieurs compartiments simultanément en quelques secondes, ce qui vous évite de tout recommencer manuellement. Il vous suffit de créer des fichiers Terraform afin qu’ils déploient les compartiments S3.

Création d’un compartiment S3 avec Terraform : exemple

Dans cet exemple, deux fichiers modèles Terraform sont créés : bucket.tf et variables.tf. Ces deux fichiers contiennent des informations relatives au nom du compartiment S3, aux configurations, aux clés des profils d’utilisateurs permettant d’accéder au compartiment et à la région où il sera stocké.

Étape 1 : création du fichier bucket.tf

Le fichier bucket.tf contient le nom, la région et les clés d’accès du compartiment S3. Utilisez le code suivant dans le fichier bucket.tf :

provider "aws" {

    access_key = "${var.aws_access_key}"

    secret_key = "${var.aws_secret_key}"

    region = "${var.region}"

}

module "s3" {

    source = "<path-to-S3-folder>"

    bucket_name = "your_bucket_name"       

}

resource "aws_s3_bucket" "temps3" {

    bucket = "${var.bucket_name}" 

    acl = "${var.acl_value}"   

}

Étape 2 : création du fichier variables.tf

Le fichier variables.tf contient les références des variables figurant dans le fichier bucket.tf. Créez un fichier Terraform avec le code suivant :

variable "bucket_name" {}

variable "acl_value" {

    default = "private"

}

variable "aws_access_key" {

default = “<your_access_key>”

}

variable "aws_secret_key" {

default = “<your_secret_key>”

 }

variable "region" {

    default = "region"

}

Étape 3 : exécution des commandes dans Terraform

Pour exécuter les commandes dans Terraform, vous devez d’abord l’initialiser. Vous pouvez ensuite appliquer les modifications dans votre environnement pour créer le compartiment S3. Entrez les commandes suivantes dans Terraform :

terraform init

terraform apply

Comment créer les instances des compartiments S3 dans Terraform ?

Procédez de la même manière que ci-dessus pour créer des instances des compartiments. Suivez ces étapes pour créer les fichiers bucket.tf et variables.tf et déployer des instances des compartiments S3.

Étape 1 : création du fichier bucket.tf

Le fichier bucket.tf contient les configurations de base pour l’instance de compartiment S3. Utilisez le code suivant dans le fichier bucket.tf :

provider "aws" {

    access_key = "${var.aws_access_key}"

    secret_key = "${var.aws_secret_key}"

    region = "${var.region}"

}

module "s3" {

    source = "<path-to-S3-folder>"

    bucket_name = "your_bucket_name"       

}

resource "aws_s3_bucket" "temps3" {

    bucket = "${var.bucket_name}" 

    acl = "${var.acl_value}"   

}

Étape 2 : création du fichier variables.tf

Le fichier variables.tf contient les références des variables figurant dans le fichier bucket.tf. Créez un fichier Terraform avec le code suivant :

variable "bucket_name" {}

variable "acl_value" {

    default = "private"

}

variable "aws_access_key" {

default = “<your_access_key>”

}

variable "aws_secret_key" {

default = “<your_secret_key>”

 }

variable "region" {

    default = "region"

}

Étape 3 : exécution des commandes dans Terraform

Si vous avez déjà initialisé Terraform lors du processus précédent, vous n’avez pas besoin de le faire à nouveau. Autrement, vous devez initialiser Terraform avant d’appliquer les modifications à l’environnement. Entrez les commandes suivantes dans Terraform, en omettant la première si vous avez déjà procédé à l’initialisation :

terraform init

terraform apply

Conclusion

Les fichiers modèles Terraform peuvent être utilisés pour répéter le même processus plusieurs fois au lieu de configurer manuellement les services cloud AWS chaque fois que vous en avez besoin. Le temps nécessaire au provisioning passe ainsi de plusieurs heures à quelques secondes.