Amazon DynamoDB is a NoSQL database that supports key-value and document data models. Developers can use DynamoDB to build modern, serverless applications that can start small and scale globally to support petabytes of data and tens of millions of read and write requests per second. DynamoDB is designed to run high-performance, internet-scale applications that would overburden traditional relational databases.
- Create data schemas and tables in DynamoDB using sample data model templates and datasets available in NoSQL Workbench.
- NoSQL Workbench now bundles with DynamoDB Local to help you set up a local DynamoDB design and development environment to get started faster.
- Import data from Amazon S3 directly into a new DynamoDB table without writing any code or managing additional infrastructure.
- AWS Glue supports DynamoDB as a source to combine and replicate data continuously across multiple databases in near real-time.
- Use PartiQL, a SQL-compatible query language, to query, insert, update, and delete table data in DynamoDB.
- Use Amazon Kinesis Data Streams to capture item-level changes in your DynamoDB tables.
- Restore DynamoDB tables even faster.
- AWS Pricing Calculator now supports DynamoDB.
- Export data from DynamoDB to Amazon Simple Storage Service (Amazon S3) and use other AWS services such as Amazon Athena to analyze your data and extract actionable insights.
Performance at scale
DynamoDB is a key-value and document database that supports tables of virtually any size with horizontal scaling. DynamoDB scales to more than 10 trillion requests per day and with tables that have more than ten million read and write requests per second and petabytes of data storage.
Key-value and document data models
DynamoDB supports both key-value and document data models. This enables DynamoDB to have a flexible schema, so each row can have any number of columns at any point in time. This allows you to easily adapt the tables as your business requirements change, without having to redefine the table schema as you would in relational databases.
Microsecond latency with DynamoDB Accelerator
DynamoDB Accelerator (DAX) is an in-memory cache that delivers fast read performance for your tables at scale by enabling you to use a fully managed in-memory cache. Using DAX, you can improve the read performance of your DynamoDB tables by up to 10 times—taking the time required for reads from milliseconds to microseconds, even at millions of requests per second.
Automated global replication with global tables
DynamoDB global tables replicate your data automatically across your choice of AWS Regions and automatically scale capacity to accommodate your workloads. With global tables, your globally distributed applications can access data locally in the selected Regions to get single-digit millisecond read and write performance.
Advanced streaming applications with Kinesis Data Streams for DynamoDB
Amazon Kinesis Data Streams for DynamoDB captures item-level changes in your DynamoDB tables as a Kinesis data stream. This feature enables you to build advanced streaming applications such as real-time log aggregation, real-time business analytics, and IoT data capture. Through Kinesis Data Streams, you also can use Amazon Kinesis Data Firehose to deliver DynamoDB data automatically to other AWS services.
With DynamoDB, there are no servers to provision, patch, or manage, and no software to install, maintain, or operate. DynamoDB automatically scales tables to adjust for capacity and maintains performance with zero administration. Availability and fault tolerance are built in, eliminating the need to architect your applications for these capabilities.
Read/write capacity modes
DynamoDB provides capacity modes for each table: on-demand and provisioned. For workloads that are less predictable for which you are unsure whether you'll have high utilization, on-demand capacity mode takes care of managing capacity for you, and you pay only for what you consume. Tables using provisioned capacity mode require you to set read and write capacity. Provisioned capacity mode is more cost effective when you’re confident you’ll have decent utilization of the provisioned capacity you specify.
For tables using on-demand capacity mode, DynamoDB instantly accommodates your workloads as they ramp up or down to any previously reached traffic level. If a workload’s traffic level hits a new peak, DynamoDB adapts rapidly to accommodate the workload. You can use on-demand capacity mode for both new and existing tables, and you can continue using the existing DynamoDB APIs without changing code.
For tables using provisioned capacity, DynamoDB delivers automatic scaling of throughput and storage based on your previously set capacity by monitoring the performance usage of your application. If your application traffic grows, DynamoDB increases throughput to accommodate the load. If your application traffic shrinks, DynamoDB scales down so that you pay less for unused capacity.
Change tracking with triggers
DynamoDB integrates with AWS Lambda to provide triggers. Using triggers, you can automatically run a custom function when item-level changes in a DynamoDB table are detected. With triggers, you can build applications that react to data modifications in DynamoDB tables. The Lambda function can perform any actions you specify, such as sending a notification or initiating a workflow.
DynamoDB is built for mission-critical workloads, including support for atomicity, consistency, isolation, and durability (ACID) transactions for a broad set of applications that require complex business logic. DynamoDB helps secure your data with encryption and continuously backs up your data for protection, with guaranteed reliability through a service level agreement.
DynamoDB provides native, server-side support for transactions, simplifying the developer experience of making coordinated, all-or-nothing changes to multiple items both within and across tables. With support for transactions, developers can extend the scale, performance, and enterprise benefits of DynamoDB to a broader set of mission-critical workloads.
Encryption at rest
DynamoDB encrypts all customer data at rest by default. Encryption at rest enhances the security of your data by using encryption keys stored in AWS Key Management Service (AWS KMS). With encryption at rest, you can build security-sensitive applications that meet strict encryption compliance and regulatory requirements. The default encryption using AWS-owned KMS keys is provided at no additional charge.
Point-in-time recovery (PITR) helps protect your DynamoDB tables from accidental write or delete operations. PITR provides continuous backups of your DynamoDB table data, and you can restore that table to any point in time up to the second during the preceding 35 days. You can enable PITR or initiate backup and restore operations with a single click in the AWS Management Console or a single API call.
On-demand backup and restore
On-demand backup and restore allows you to create full backups of your DynamoDB tables’ data for data archiving, which can help you meet your corporate and governmental regulatory requirements. You can back up tables from a few megabytes to hundreds of terabytes of data and not affect performance or availability to your production applications.
Explore pricing options for Amazon DynamoDB.
Instantly get access to the AWS Free Tier.
Get started building with Amazon DynamoDB on the AWS Management Console.