DynamoDB
💡 Definition
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed, multi-region, multi-active, durable database with built-in security, backup and restore, and in-memory caching.
🔑 Key Concepts
- NoSQL: A non-relational database, meaning it doesn't use tables with fixed schemas like traditional SQL databases.
- Key-Value Store: The primary data model, where data is stored as a collection of key-value pairs.
- Document Database: Also supports document data models.
- Fully Managed: AWS handles all the underlying infrastructure, patching, backups, etc.
- Scalability: Automatically scales to accommodate request capacity and storage size.
⚙️ How it Works
You create tables and specify a primary key. You can then add items (documents) to the tables. DynamoDB automatically distributes your data and traffic over a sufficient number of servers to handle your throughput and storage requirements while maintaining fast performance.
🎯 Use Cases
- Mobile, Web, Gaming Apps: For applications requiring very low latency and high scalability.
- Microservices: As a fast data store for individual services.
- IoT (Internet of Things): Storing and retrieving data from connected devices.
💰 Pricing Model
- On-Demand Capacity: Pay for requests per second for reads and writes, and for data storage.
- Provisioned Capacity: Specify the desired read and write capacity units (RCUs/WCUs) and storage in advance, and pay for that provisioned capacity.
📝 Exam Tips (CLF-C02)
- Remember DynamoDB is a NoSQL database.
- Designed for single-digit millisecond latency at any scale.
- It is a fully managed service.
- Good for applications with unpredictable workloads.