LazyStack

DynamoDB Introduction

"Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. You can use Amazon DynamoDB to create a database table that can store and retrieve any amount of data, and serve any level of request traffic. Amazon DynamoDB automatically spreads the data and traffic for the table over a sufficient number of servers to handle the request capacity specified by the customer and the amount of data stored, while maintaining consistent and fast performance." AWS DynamoDB

DynamoDB offers a few key advantages over other AWS database offerings:

  • Encryption at rest - very important for security sensitive stacks.
  • No need for a Virtual Private Cloud (VPC) to be fully secure.
  • Available in the Free-Tier.

DynamoDB is a very fast and very scalable NoSQL database. Here are some of its defining features and limitations:

  • Primary Key is comprised of a Partition Key (PK) and optional Sort Key (SK).
  • Up to five optional secondary indices.
  • Up to 20 Global Secondary indices.
  • Optional ACID transaction support.
  • Data is encrypted at rest.
  • AWS recommends that each application use a single DynamoDB table. This seems strange at first because we are used to equating entities to tables where each table has a column for each entity attribute. Instead, in DynamoDB we treat each "table" as a separate database.

    Defining Entities using PK and SK Conventions