A NoSQL database is a nonrelational database that uses data models and scaling approaches other than the traditional relational table model. NoSQL databases commonly include document, graph, columnar, and key-value stores. They are useful when adding nodes and coordinating transactions would limit performance or scalability. section 12.0
Amazon DynamoDB is a fully managed key-value store with document support. It persists objects identified by unique keys, while AWS operates the underlying machines, software, replication, and durability. Applications communicate with it through an API rather than administering database servers directly. section 1.6 section 12.0
Using a managed NoSQL database still requires application and operational decisions:
- Design the application specifically for the chosen NoSQL data model; a legacy MySQL application cannot simply be redirected to DynamoDB. section 12.0
- Use DynamoDB for workloads ranging from a single item to billions of items and from one request per second to tens of thousands of requests per second. section 12.0
- Let AWS handle installation, updates, machines, storage, and routine replication, but restrict data access with IAM and monitor capacity, provision read and write capacity, and create backups. section 12.10
- Track costs when experimenting: the Free Tier includes limited NoSQL storage, and exceeding applicable limits creates charges. section 1.4.1
Web application using DynamoDB
A web application running on a virtual machine can query a NoSQL database through the AWS API while handling HTTP requests. DynamoDB is suited to applications that must absorb massive request volumes or spiky workloads, such as tracking client-side web-application errors. section 1.6 section 12.0
Trace how an HTTP request reaches a web application and how that application uses additional AWS services, including a NoSQL database. section 1.6






