AWS DynamoDB Tables
Understand DynamoDB table design, primary keys, GSIs, LSIs, TTL, and point-in-time recovery for resilient NoSQL workloads.
AWS DynamoDB Tables turn abstract DynamoDB concepts into a usable data model through key selection, indexes, and recovery settings. For DevOps teams, it matters because they are where NoSQL design decisions become permanent enough to influence cost, latency, and future feature work. Instead of relying on one fragile manual configuration, you can design a repeatable service boundary that stays stable while the workload behind it changes.
Core ideas
The main ideas to understand are a good primary key design starts from how the application reads data, not from how a relational table used to be shaped; Global Secondary Indexes provide alternative query patterns across partitions while Local Secondary Indexes reuse the same partition key with another sort key; TTL can remove expired items automatically, which is useful for sessions, caches, and temporary workflow state; and point-in-time recovery gives you a safety net for accidental writes or deletes without exporting backups manually. These details shape architecture decisions, but they also shape day-to-day operations. When a team chooses defaults without understanding how the service behaves under failure, scale, or security review, the platform often becomes harder to debug than the application itself.
| Feature | Purpose | Caution |
|---|---|---|
| Primary key | Drives main access pattern | Hard to change later |
| GSI | Adds new query path | Consumes extra write capacity |
| TTL | Expires old items | Deletion is asynchronous |
From an operations perspective, the goal is to limit indexes to the access patterns that matter because every extra index increases write cost and operational complexity. The comparison below highlights the choices that usually matter first. It is often better to start with a simpler design and add sophistication only after metrics, incidents, or delivery requirements prove the change is necessary.
Practical commands
aws dynamodb create-table --table-name Sessions --attribute-definitions AttributeName=sessionId,AttributeType=S --key-schema AttributeName=sessionId,KeyType=HASH --billing-mode PAY_PER_REQUEST
aws dynamodb update-continuous-backups --table-name Sessions --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true
Practical CLI checks make the service easier to support in real environments. Use the commands below to inspect the current state and confirm that automation matches intent. Before you promote a change, verify whether the primary key supports the exact read path the application needs before compensating with expensive scans. A safe default is keeping TTL and PITR enabled where data lifecycle or recovery risk matters more than a small extra cost. That discipline makes later troubleshooting, scaling, and security reviews far less painful.
Index types
Which index type can use a different partition key from the base table?
TTL purpose
What is DynamoDB TTL used for?