Cómo crear una tabla DynamoDB en AWS con Terraform

En este artículo, veremos los pasos para crear una Tabla DynamoDB utilizando Terraform. Crearemos una Tabla DynamoDB con el modelo de facturación «PAY_PER_REQUEST». Antes de continuar con este artículo, se supone que conoces el servicio AWS DynamoDB y sus fundamentos, junto con Terraform.

Haz clic aquípara obtener más información sobre los argumentos y las propiedades de DynamoDB disponibles en Terraform.

Requisitos previos

  1. Conocimiento básico de Terraform.
  2. Terraform instalado en tu sistema.
  3. Cuenta de AWS(Créala si no tienes una).
  4. ‘access_key’ & ‘secret_key’ de un Usuario IAM de AWS con permisos suficientes para crear una tabla DynamoDB. (Haz clic aquípara aprender a crear un usuario IAM con ‘access_key’ & ‘secret_key’ en AWS, )

¿Qué vamos a hacer?

  1. Escribir los archivos de configuración de Terraform para la tabla DynamoDB.
  2. Crear una tabla DynamoDB utilizando los archivos de configuración de Terraform.
  3. Eliminar la tabla DynamoDB creada mediante Terraform.

Escribir los archivos de configuración de Terraform para la Tabla DynamoDB

Crea un directorio dedicado para escribir y almacenar los archivos de Terraform para crear una tabla DynamoDB.

Ahora, crea un nuevo archivo llamado«main.tf» y guarda en él el siguiente código. El mismo código también está disponible en mi repositorio de Github. Puedes copiar el código desde allí.

El siguiente código creará un recurso en «region = eu-west-3». Cambia la región según tu elección.

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}" } }

Aquí,

  • name : (Obligatorio) El nombre de la tabla que estás creando.
  • billing_mode :(Opcional) Controla la forma en que se cobra la lectura y la escritura.
  • clave_hash:(Obligatorio, Fuerza nuevo recurso) El atributo a utilizar como clave hash (de partición) para la tabla.
  • atributo: (Obligatorio) Lista de definiciones de atributos anidados. Sólo se requiere para los atributos hash_key y range_key de la tabla.
  • tags: (Opcional) Etiquetas a rellenar en la tabla.

El siguiente paso es cargar tus claves de acceso y secretas de AWS en un archivo llamado«terraform.tfvars«. Ya deberías tener un usuario IAM de AWS con claves secretas y de acceso que tenga suficientes permisos en DynamoDB. Obtén esas claves y almacénalas en el archivo.

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>"

El último paso es crear«variables.tf» y asignar valores a las variables en él. Puedes cambiar los valores de table_name, table_billing_mode y la variable de entorno. Haz clic aquípara consultar la documentación de Terraform para comprobar los argumentos/propiedades válidos 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"
}

Aquí,

  • nombre_tabla: valor definido = mi-primera-tabla-prueba. Puedes cambiarlo.
  • table_billing_mode: valor definido = PAY_PER_REQUEST. Puedes especificar PROVISIONED o PAY_PER_REQUEST.
  • entorno: valor definido de la etiqueta = prueba. Puedes asignar cualquier valor a la clave de la etiqueta entorno.

Crea una tabla DynamoDB con los archivos de configuración de Terraform

Una vez que tengas main.tf, terraform.tfvars y variables.tf estarás preparado para crear tu tabla DynamoDB con Terraform.

El siguiente es el primer comando para inicializar un directorio de trabajo que contenga los archivos de configuración de Terraform.

terraform init

terraformar init

El siguiente comando es el siguiente para crear un plan de ejecución. Aquí podrás conocer todos los cambios que se producirán.

terraform plan

plan de terraformación

Ahora estás preparado para aplicar los cambios necesarios para alcanzar el estado deseado de la configuración mediante el siguiente comando. Esto creará una Tabla DynamoDB en tu cuenta de AWS bajo la región especificada.

terraform apply

aplicar terraformación

Ahora, puedes ir a la consola de AWS y verificar si la tabla se ha creado o no.

Tabla DynamoDB

Eliminar la Tabla DynamoDB creada mediante Terraform

Cuando ya no necesites la tabla y quieras eliminarla, no hace falta que vayas a la consola de AWS y la elimines desde allí. En su lugar, puedes eliminarla utilizando el siguiente comando de forma muy sencilla. El siguiente comando eliminará la tabla después de que confirmes la eliminación.

terraform destroy

terraform destroy

Conclusión

En este artículo, hemos visto los pasos para crear una tabla DynamoDB con el modelo de facturación «PAY_PER_REQUEST« en la «región =eu-west-3″ utilizando las claves de acceso y secretas deAWS. También hemos eliminado la tabla utilizando el comando destroy. Ahora puedes ampliar la funcionalidad utilizando diferentes propiedades disponibles y probar en diferentes casos de uso.

También te podría gustar...