Comment créer une table DynamoDB sur AWS en utilisant Terraform
Dans cet article, nous allons voir les étapes pour créer une Table DynamoDB à l’aide de Terraform. Nous allons créer une Table DynamoDB avec le modèle de facturation « PAY_PER_REQUEST ». Avant de poursuivre cet article, il est supposé que tu connais le service AWS DynamoDB et que tu en connais les bases, ainsi que Terraform.
Clique icipour en savoir plus sur les arguments et les propriétés de DynamoDB disponibles dans Terraform.
Pré-requis
- Compréhension de base de Terraform.
- Terraform installé sur ton système.
- Compte AWS (crée-le si tu n’en as pas).
- ‘access_key’ & ‘secret_key’ d’un utilisateur AWS IAM avec des autorisations suffisantes pour créer une table DynamoDB. (Clique icipour apprendre à créer un utilisateur IAM avec ‘access_key’ et ‘secret_key’ sur AWS).
Que ferons-nous ?
- Écrire les fichiers de configuration Terraform pour la table DynamoDB.
- Crée une table DynamoDB à l’aide des fichiers de configuration Terraform.
- Supprime la table DynamoDB créée à l’aide de Terraform.
Écrire les fichiers de configuration Terraform pour DynamoDB Table
Crée un répertoire dédié pour écrire et stocker les fichiers Terraform pour créer une table DynamoDB.
Maintenant, crée un nouveau fichier nommé« main.tf » et enregistre le code suivant dans celui-ci. Le même code est également disponible sur mon repo Github. Tu peux même copier le code à partir de là.
Le code suivant créera une ressource dans « region = eu-west-3 ». Change la région selon ton choix.
Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/main.tf
File: main.tf
provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3" } resource "aws_dynamodb_table" "my_first_table" { name = "${var.table_name}" billing_mode = "${var.table_billing_mode}" hash_key = "employee-id" attribute { name = "employee-id" type = "S" } tags = { environment = "${var.environment}" } }
Ici,
- name : (Obligatoire) Le nom de la table que tu crées.
- billing_mode :(Facultatif) Contrôle la façon dont tu es facturé pour la lecture et l’écriture.
- hash_key :(Requis, Forces new resource) L’attribut à utiliser comme clé de hachage (partition) pour la table.
- attribut : (Obligatoire) Liste de définitions d’attributs imbriqués. Uniquement requis pour les attributs hash_key et range_key de la table.
- tags : (Facultatif) Balises à remplir sur la table.
L’étape suivante consiste à charger tes clés d’accès et secrètes AWS dans un fichier nommé« terraform.tfvars« . Tu devrais déjà avoir un utilisateur AWS IAM avec des clés secrètes et d’accès ayant des permissions suffisantes sur DynamoDB. Récupère ces clés et stocke-les dans le fichier.
Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/terraform.tfvars
File: terraform.tfvars
access_key = "<your-aws-access-here>"
secret_key = "<your-aws-secret-here>"
La dernière étape consiste à créer« variables.tf » et à attribuer des valeurs aux variables dans ce fichier. Tu peux modifier les valeurs de table_name, table_billing_mode et la variable d’environnement. Clique icipour te référer à la documentation Terraform afin de vérifier les arguments/propriétés valides disponibles.
Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/variables.tf
File: variables.tf
variable "access_key" { description = "Access key of AWS IAM user" } variable "secret_key" { description = "Secret key of AWS IAM user" } variable "table_name" { description = "Dynamodb table name (space is not allowed)" default = "my-first-test-table" } variable "table_billing_mode" { description = "Controls how you are charged for read and write throughput and how you manage capacity." default = "PAY_PER_REQUEST" } variable "environment" { description = "Name of environment" default = "test" }
Ici,
- nom_table : valeur définie = ma-première-test-table. Tu peux la modifier.
- table_billing_mode : valeur définie = PAY_PER_REQUEST. Tu peux spécifier soit PROVISIONNÉ, soit PAY_PER_REQUEST.
- environment : balise définie valeur = test. Tu peux attribuer n’importe quelle valeur à la clé de balise environment.
Crée une table DynamoDB à l’aide des fichiers de configuration Terraform
Une fois que tu as main.tf, terraform.tfvars et variables.tf, tu es prêt à créer ta table DynamoDB à l’aide de Terraform.
La commande suivante est la première à initialiser un répertoire de travail contenant les fichiers de configuration Terraform.
terraform init
La commande suivante est la suivante pour créer un plan d’exécution. Ici, tu peux prendre connaissance de tous les changements qui auront lieu.
terraform plan
Tu es maintenant prêt à appliquer les changements nécessaires pour atteindre l’état souhaité de la configuration en utilisant la commande suivante. Cela créera une table DynamoDB dans ton compte AWS sous la région spécifiée.
terraform apply
Tu peux maintenant te rendre dans la console AWS et vérifier si la table est créée ou non.
Supprime la table DynamoDB créée à l’aide de Terraform
Lorsque tu n’as plus besoin de la table et que tu veux la supprimer, il n’est pas nécessaire d’aller dans la console AWS et de la supprimer à partir de là. Au lieu de cela, tu peux la supprimer très facilement à l’aide de la commande suivante. La commande suivante supprimera la table après que tu aies confirmé la suppression.
terraform destroy
Conclusion
Dans cet article, nous avons vu les étapes pour créer une table DynamoDB avec le modèle defacturation« PAY_PER_REQUEST« dans la « région =eu-west-3″ en utilisant les clés d’accès et secrètes d’AWS. Nous avons également supprimé la table à l’aide de la commande destroy. Tu peux maintenant étendre la fonctionnalité en utilisant les différentes propriétés disponibles et essayer différents cas d’utilisation.