DynamoDB
Amazon DynamoDB
AWS NoSQL database that requires no server management.
In one sentence
AWS NoSQL database that requires no server management.
Overview
A serverless NoSQL database. Provides fast reads and writes based on key design, and scales easily with growth in capacity and access.
Common use cases
- Storing inquiry data
- Storing user settings
- App data with clear access patterns
CLF-C02 exam points
- Managed NoSQL database
- On-demand billing is available
- Design centered on the partition key
SAA-C03 exam points
- Design tables based on access patterns
- Avoid heavy use of Scan and rely on Query
- Use DAX and GSIs after understanding their purpose
Practical Use
Amazon DynamoDB is a fully managed NoSQL database service provided by AWS. AWS handles server provisioning, OS patching, and cluster management, allowing developers to focus on table design and application code. **The core of the design is access-pattern-driven**. DynamoDB identifies data using a partition key (PK) and an optional sort key (SK). Items with the same partition key are stored in the same partition, making Query operations over sort key ranges fast. Table design proceeds in the order of "first enumerate the access patterns, then express those patterns through the key structure". You do not take the RDB approach of normalizing first and then JOINing. **The use of Query versus Scan** is an important optimization point. Query specifies the partition key and uses an index, so it is fast and low-cost. Scan sequentially scans the entire table, becoming slower and more expensive as data volume grows. Avoid frequent Scan operations in production environments; the standard design pattern is to create a GSI (Global Secondary Index) and resolve the problem with a Query. **There are two capacity modes**. On-demand mode automatically scales according to access volume and does not charge for unused capacity. Provisioned mode requires you to specify RCU (Read Capacity Units) and WCU (Write Capacity Units) in advance, often combined with Auto Scaling. **DynamoDB Streams** is an event stream feature that captures changes to the table (INSERT / MODIFY / REMOVE) in real time. By integrating with Lambda, you can implement event-driven processing such as replication, notifications, and aggregation. **Access control via IAM** is granted at the action level (`PutItem` / `GetItem` / `Query` / `Scan`, etc.) rather than at the table level. Following the principle of least privilege, assign an IAM role to a Lambda function that allows only the necessary operations. SAA-C03 asks about the design of GSI / LSI (Local Secondary Index), in-memory caching with DAX (DynamoDB Accelerator), DynamoDB Streams + Lambda integration patterns, and the criteria for choosing between DynamoDB and RDS.
Official Documentation
Cost notes
- On-demand suits small workloads and fluctuating access
- Heavy use of Scan can drive up cost as data grows
Security notes
- Use IAM to allow only required operations such as PutItem
- When storing personal data, pay attention to logging output and access permissions
Related services
Related comparison articles
Related architecture diagrams
Tags
Last updated: 2026-06-01
Previous term
AWS Cost Explorer
Next term
Amazon Elastic Block Store