Creación de Tablas en DynamoDB desde Cero con AWS

Clase 7 de 38Curso de Infraestructura Como Código en AWS

Resumen

¿Cómo crear una tabla en AWS DynamoDB usando un template?

La creación de una tabla en AWS DynamoDB puede parecer un desafío, pero con las herramientas y conocimientos adecuados, se vuelve una tarea manejable y emocionante. A continuación, se presenta una guía básica para crear una tabla desde cero utilizando un template en formato YAML, siguiendo la documentación oficial de AWS.

¿Cómo comenzar con la documentación de AWS y crear un archivo YAML?

Para empezar desde cero, es fundamental dirigirse a la documentación oficial de AWS DynamoDB para obtener un template base que nos dirija en el proceso. Aquí está el paso a paso:

  1. Busca "DynamoDB" en Google y localiza la documentación de AWS para DynamoDB.
  2. Encuentra ejemplos sencillos en formato JSON y YAML. Para este caso, utilizaremos el ejemplo en YAML.
  3. Copia el template completamente vacío proporcionado por AWS a tu editor de texto favorito.
  4. Guarda el archivo con un nombre adecuado, por ejemplo, miDynamoDB.yaml.
AWSTemplateFormatVersion: "2010-09-09"

¿Cuáles son los elementos clave de un template?

Al crear un template, es crucial asegurar que contiene los componentes esenciales, como parámetros y recursos:

  • Versión del formato: Especifica la versión del template de AWS que estás utilizando, p. ej., 2010-09-09.
AWSTemplateFormatVersion: "2010-09-09"
  • Recursos: Es la única propiedad completamente obligatoria, que en este caso será una tabla de DynamoDB.
Resources:
  MyDynamoTable:
    Type: "AWS::DynamoDB::Table"

¿Cómo definir atributos y llaves primarias?

La definición de atributos es crucial, ya que determina la estructura de tu base de datos.

  • Atributo Definición: Aunque no obligatorio, es una buena práctica definirlo. Aquí, se especifica la llave primaria para la base de datos.
AttributeDefinitions:
  - AttributeName: Gender
    AttributeType: S
  • KeySchema: Esta sección especifica cómo se construirá la llave primaria.
KeySchema:
  - AttributeName: Gender
    KeyType: HASH

¿Cómo configurar las lecturas y escrituras pagadas?

Dependiendo de tu carga, puedes configurar DynamoDB para que pague por solicitudes o para tener una capacidad preestablecida.

  • BillingMode: Aquí establecemos cómo se realizarán los cargos, utilizando "PAY_PER_REQUEST" para práctica flexibilidad.
BillingMode: PAY_PER_REQUEST

¿Qué se debe saber sobre la encriptación y el exportado de nombres?

La seguridad es una prioridad, y AWS permite activar la encriptación para los datos en reposo.

  • Encriptación: Active con la configuración SSESpecification.
SSESpecification:
  SSEEnabled: true

Además, puedes exportar valores, como el nombre de la tabla, para su uso posterior en otras partes de tu infraestructura:

  • Outputs: Exporta el nombre de DynamoDB para facilitar su referencia.
Outputs:
  TableName:
    Value: !Ref MyDynamoDBTable
    Export:
      Name: MyDynamoTableName

Con estos pasos, habrás establecido un template básico que puedes desplegar para crear una tabla en DynamoDB con AWS CloudFormation. Recuerda siempre revisar la documentación y mantenerte actualizado sobre las mejores prácticas de AWS para una implementación eficiente. Mantente avanzado en tu aprendizaje revisando más cursos sobre bases de datos en AWS para ampliar tus conocimientos y habilidades.