DynamoDB overview
DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. With DynamoDB, you can offload the administrative burdens of operating and scaling a distributed database. You don't need to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling.
With DynamoDB, you can do the following:
Create database tables that can store and retrieve any amount of data and serve any level of request traffic.
Scale up or scale down your tables' throughput capacity without downtime or performance degradation.
Monitor resource usage and performance metrics using the AWS Management Console.
DynamoDB automatically spreads the data and traffic for your tables over a sufficient number of servers to handle your throughput and storage requirements. It does this while maintaining consistent, fast performance. All your data is stored on SSDs and is automatically replicated across multiple Availability Zones in a Region, providing built-in high availability and data durability.
DynamoDB core components
In DynamoDB, tables, items, and attributes are the core components that you work with. A table is a collection of items, and each item is a collection of attributes. DynamoDB uses primary keys to uniquely identify each item in a table and secondary indexes to provide more querying flexibility.
To learn more, choose each of the three numbered markers.
DynamoDB use cases
DynamoDB is a fully managed service that handles the operations work. You can offload the administrative burdens of operating and scaling distributed databases to AWS.
You might want to consider using DynamoDB in the following circumstances:
You are experiencing scalability problems with other traditional database systems.
You are actively engaged in developing an application or service.
You are working with an OLTP workload.
You care deploying a mission-critical application that must be highly available at all times without manual intervention.
You require a high level of data durability, regardless of your backup-and-restore strategy.
DynamoDB is used in a wide range of workloads because of its simplicity, from low-scale operations to ultrahigh-scale operations.
DynamoDB security
DynamoDB provides a number of security features to consider as you develop and implement your own security policies. They include the following:
DynamoDB provides a highly durable storage infrastructure designed for mission-critical and primary data storage. Data is redundantly stored on multiple devices across multiple facilities in a DynamoDB Region.
All user data stored in DynamoDB is fully encrypted at rest. DynamoDB encryption at rest provides enhanced security by encrypting all your data at rest using encryption keys stored in AWS Key Management Service (AWS KMS).
IAM administrators control who can be authenticated and authorized to use DynamoDB resources. You can use IAM to manage access permissions and implement security policies.
As a managed service, DynamoDB is protected by the AWS global network security procedures.
Choosing the Right Database Service
As we learned in the previous lessons, AWS has a variety of database options for different use cases. The following table provides a quick look at the AWS database portfolio.
AWS Service(s) | Database Type | Use Cases |
**Amazon RDS, Aurora, |
Amazon Redshift | Relational | Traditional applications, ERP, CRM,
ecommerce |
| DynamoDB | Key-value | High-traffic web applications, ecommerce systems, gaming applications |
| Amazon ElastiCache for Memcached, Amazon ElastiCache for Redis | In-memory | Caching, session management, gaming leaderboards, geospatial applications |
| Amazon DocumentDB | Document | Content management, catalogs, user profiles |
| Amazon Keyspaces | Wide column | High-scale industrial applications for equipment maintenance, fleet management, route optimization |
| Neptune | Graph | Fraud detection, social networking, recommendation engines |
| Timestream | Time series | IoT applications, Development Operations (DevOps), industrial telemetry |
| Amazon QLDB** | Ledger | Systems of record, supply chain, registrations, banking transactions |
Breaking up applications and databases
As the industry changes, applications and databases change too. Today, with larger applications, you no longer see just one database supporting them. Instead, applications are broken into smaller services, each with its own purpose-built database supporting it. This shift removes the idea of a one-size-fits-all database and replaces it with a complimentary database strategy. You can give each database the appropriate functionality, performance, and scale the workload requires.