📖 What is DynamoDB?
DynamoDB is a fully managed NoSQL database service offering high performance at any scale. It supports key-value and document data models, providing predictable latency with automatic scaling. Data is stored in tables, items, and attributes, utilizing primary keys for efficient access.
"Capacity mode (provisioned or on-demand) significantly impacts cost and performance. Understand read/write capacity units (RCUs/WCUs) and how they relate to throughput. Global Secondary Indexes (GSIs) allow querying on attributes other than the primary key."
📚 Certification: AWS Certified Solutions Architect - Associate (SAA-C03)
🔑 What are the Key Concepts of DynamoDB?
- ▸ DynamoDB utilizes a NoSQL data model, meaning it doesn't require fixed schemas, offering flexibility for evolving data structures.
- ▸ Provisioned capacity mode requires upfront capacity planning with RCUs/WCUs, while on-demand automatically scales and bills per request.
- ▸ Primary keys uniquely identify each item in a table and are crucial for efficient data retrieval; understand partition and sort keys.
- ▸ Global Secondary Indexes (GSIs) enable querying data using attributes other than the primary key, improving query flexibility and performance.
- ▸ DynamoDB Auto Scaling adjusts provisioned capacity dynamically based on actual usage, optimizing cost and maintaining performance.
🎯 How does DynamoDB appear on the SAA-C03 Exam?
You may be asked to select DynamoDB as the best database solution for a high-traffic application requiring single-digit millisecond latency and automatic scaling, such as a gaming leaderboard.
A scenario might describe a need to query data based on an attribute *other* than the primary key – identify the use of Global Secondary Indexes to fulfill this requirement.
Expect questions about choosing between provisioned and on-demand capacity modes based on predictable vs. unpredictable workload patterns and cost considerations.
❓ Frequently Asked Questions
When should I use DynamoDB over RDS?
Choose DynamoDB for applications needing extreme scalability, low latency, and flexible schemas. RDS is better for complex relational data and ACID transactions.
How do I optimize DynamoDB costs?
Utilize Auto Scaling, choose the appropriate capacity mode (on-demand for unpredictable workloads), and design efficient queries to minimize consumed RCUs/WCUs.
What are the limitations of DynamoDB's query capabilities?
DynamoDB queries are most efficient when using the partition key. Queries without the partition key require scanning, which is less efficient and can be costly.