Amazon DynamoDB features
Amazon DynamoDB is a serverless NoSQL database service that supports key-value and document data models. Developers can use Amazon DynamoDB to build modern, serverless applications that can start small and scale globally. Amazon DynamoDB scales to support tables of virtually any size with automated horizontal scaling.
Amazon DynamoDB consistently handles more than 10 trillion requests per day. Availability, durability, and fault tolerance are built-in and cannot be turned off, eliminating the need to architect your applications for these capabilities.
Amazon DynamoDB is designed to run high-performance, internet-scale applications that would overburden traditional relational databases. With over ten years of pioneering innovation investment, Amazon DynamoDB offers limitless scalability with consistent single-digit millisecond performance and up to 99.999% availability.
To learn about ongoing new features and capabilities, Amazon DynamoDB "What's New" announcements makes it easy to learn about new launches.
Serverless performance with limitless scalability
Key-value and document data models
Amazon DynamoDB supports both key-value and document data models. As a NoSQL database, Amazon DynamoDB has a flexible schema so each item can have many different attributes. A flexible schema allows you to easily adapt as your business requirements change, without the burden of having to redefine the table schema as you would in relational databases.
Serverless that scales to zero
With Amazon DynamoDB, there are no servers to provision, patch, or manage, and no software to install, maintain, or operate. Amazon DynamoDB does not have versions (major, minor, or patch), there are no maintenance windows, and Amazon DynamoDB provides zero downtime maintenance. Amazon DynamoDB on-demand pricing provides pay-as-you-go pricing, scales to zero, and automatically scales tables to adjust for capacity and maintains performance with zero administration.
Amazon DynamoDB is built for mission-critical workloads, including support for atomicity, consistency, isolation, and durability (ACID) transactions for applications that require complex business logic. Amazon 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.
Now, Amazon DynamoDB supports 100 actions per transaction, improving developer productivity. With support for transactions, developers can extend the scale, performance, and enterprise benefits of Amazon DynamoDB to a broader set of mission-critical workloads.
Active-active replication with global tables
Amazon DynamoDB global tables provides active-active replication of your data across your choice of AWS Regions with 99.999% availability. Global tables are multi-active meaning you can writes and read from any replica, and your globally distributed applications can access data locally in the selected Regions to get single-digit millisecond read and write performance.
Also, global tables automatically scale capacity to accommodate your multi-Region workloads. Global tables improve your application’s multi-Region resiliency and should be considered as part of your organization’s business continuity strategy.
Amazon DynamoDB Streams as part of an event-driven architecture
Amazon DynamoDB Streams is a change data capture capability. Whenever an application creates, updates, or deletes items in a table, Amazon DynamoDB Streams record a time-ordered sequence of every item level changes in near-real time making it ideal for event-driven architecture applications to consume and action the changes. All changes are de-duplicated and stored for 24 hours.
Applications can also access this log and view the data items as they appeared before and after they were modified in near-real time. Amazon DynamoDB Streams ensures that each stream record appears exactly once in the stream and for each modified item, the stream records appear in the same sequence as the actual modifications to the item.
Similar to all other database systems, you start by creating a table which is a collection of items. With Amazon DynamoDB, each item in the table has its own primary key. Many applications can also benefit from having one or more secondary keys to more efficiently search data using other attributes. Amazon DynamoDB offers the option to create both global and local secondary indexes, which lets you query the data in the table using a secondary or alternate key.
Global secondary indexes are also known as sparse indexes. In addition to giving you maximum flexibility on how to access your data, you can provision lower write throughput with excellent performance at a lower cost.
Security and reliability
Amazon DynamoDB helps secure your data with encryption and continuously backs up your data for protection.
Fine grained access control
With Amazon DynamoDB, there are no username or passwords. Amazon DynamoDB uses AWS identity and access management (IAM) to authenticate, create, and access resources. You can specify IAM policies and conditions that allow fine-grained access, restricting read or write access down to specific items and attributes in a table, based on the identity of that user. This enables customers to enforce security policies at the code level.
Encryption at rest
Amazon 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 addition of AWS Database Encryption SDK, you can perform attribute-level encryption to further enforce granular access control on data within your table. Amazon DynamoDB enables you to build security-sensitive applications that meet strict encryption compliance and regulatory requirements.
Encryption keys provide an additional layer of data protection by securing your data from unauthorized access to the underlying storage. You can specify whether Amazon DynamoDB should use an AWS owned key (default encryption type), an AWS managed key, or a customer managed key to encrypt user data. The default encryption using AWS-owned KMS keys is provided at no additional charge.
Point-in-time recovery (PITR) helps protect your Amazon DynamoDB tables from accidental write or delete operations. PITR provides continuous backups of your Amazon DynamoDB table data, and you can restore that table to any point in time up to the second during the preceding 35 days.
PITR does not use provisioned capacity and has no impact on performance or availability of your applications. Enabling PITR or initiating backup and restore operations is as simple as 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 Amazon 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. With AWS Backup integration, you can also copy on-demand backups cross-account and cross-Region, cost allocation tagging for backups, and transitioning backups to cold storage.
Read/write capacity modes
Amazon 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, Amazon 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, Amazon 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 Amazon DynamoDB APIs without changing code.
Standard Infrequent Access (Standard-IA) table class
For data that is infrequently accessed, you can use the Amazon DynamoDB Standard-IA table class which helps reduce your Amazon DynamoDB costs by up to 60%. Standard-IA tables lower storage cost is designed for long-term storage of data that is infrequently accessed, such as application logs, historical gaming data, old social media posts, and more. It has the same availability, durability, and performance as Amazon DynamoDB Standard tables, which is the default and most cost-effective option for most workloads.
Auto scaling for improved cost efficiencies
- If your application traffic grows, Amazon DynamoDB increases throughput to accommodate the load.
- If your application traffic shrinks, Amazon DynamoDB scales down so that you pay less for unused capacity.
Reserved capacity provides you the choice to reserve database capacity for a one-year or three-year term in exchange for a significant discount compared to provisioned capacity for single-Region read and write capacity unites on Amazon DynamoDB Standard table. If your application has predictable reads and writes throughput, you may consider reserved capacity, which can save you up to 54% over standard provisioned capacity rates for one-year term or up to 77% for three-year term.
Amazon DynamoDB offers a generous free tier for anyone seeking a risk-free way to experience Amazon DynamoDB’s capabilities.
Integrations with AWS services
By choosing Amazon DynamoDB, you can benefit from the wide range of integrations with other AWS services such as data protection with AWS Backup.
Microsecond latency with Amazon DynamoDB Accelerator
Amazon DynamoDB Accelerator (DAX) is an Amazon DynamoDB-compatible caching service 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 Amazon DynamoDB tables by up to 10 times—taking the time required for reads from milliseconds to microseconds, even at millions of requests per second. Learn more about DAX capabilities and DAX pricing.
Bulk import/export from Amazon Simple Storage Service (S3)
Bulk import/export from S3 helps you get more value from your data by removing the need to write code to move, transform, and copy your Amazon DynamoDB tables from one application, account, or region to another. Bulk import/export does not use your table’s read or write capacity so you don’t need to plan or provision additional capacity. The bulk import/export process is fully managed by Amazon DynamoDB.
Bulk imports from S3 enables you to import data at any scale, from megabytes to terabytes using supported formats including CSV, Amazon DynamoDB JSON, and Amazon Ion. With bulk imports from S3, customers can save up to 66% versus client-based writes using provisioned capacity.
With bulk exports to S3, you can export data from tables with point-in-time recovery (PITR) enabled for any point-in-time in the last 35 days with a per-second granularity. Once you export data from Amazon DynamoDB to Amazon S3, you can use other AWS services such as Amazon Athena, Amazon SageMaker, and more to analyze your data and extract actionable insights.
Advanced streaming applications with Kinesis Data Streams for Amazon DynamoDB
Amazon Kinesis Data Streams for Amazon DynamoDB captures item-level changes in your Amazon DynamoDB tables to power live dashboards, generate metrics, and deliver data into data lakes. Kinesis Data Streams 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 Amazon DynamoDB data automatically to other AWS services such as Amazon S3, Amazon OpenSearch Service, and Amazon Redshift.
Change tracking with triggers
Amazon DynamoDB integrates with AWS Lambda to provide triggers. Using triggers, you can automatically run a custom function when item-level changes in an Amazon DynamoDB table are detected. With triggers, you can build event-driven applications that react to data modifications in Amazon DynamoDB tables. The Lambda function can perform any actions you specify, such as sending a notification or initiating a workflow.
Monitoring and diagnosing system performance with Amazon Cloudwatch
To easily monitor your database performance, Amazon DynamoDB is integrated with Amazon Cloudwatch which collects and processes raw database performance data. You can use Amazon CloudWatch to create customized views and dashboards of metrics and alarms for your Amazon DynamoDB databases. This monitoring capability is offered by default and is complimentary. You also can create alarms that are automatically sent to you based on metric performance.
Amazon CloudWatch Contributor Insights helps you to quickly identify who or what is impacting your databases and application performance. This capability makes it easy to more quickly isolate, diagnose, and remediate issues during an operational event.
What is Amazon DynamoDB used for?
Amazon DynamoDB is a NoSQL database used to run high-performance applications at any scale. It is unmatched when your application requires high read/write throughput with single-digit performance and limitless scalability across multiple Regions. If your application requires horizontal scaling with ability to scale down to zero, Amazon DynamoDB offers a fully automated and fully managed experience.
What are the advantages of Amazon DynamoDB?
Amazon DynamoDB unique advantages include it is a proven fully managed, scale-to-zero serverless database that provides single-digit millisecond performance and up to 99.999% availability. With its consistent performance at scale, Amazon DynamoDB also offers built-in security, durability, and reliability required for global applications with the most stringent requirements.
With its ease of use and its limitless scalability, Amazon DynamoDB is often chosen for both new modern applications and established internet scale applications seeking consistent fast performance with limitless scalability.
What are the main benefits of using Amazon DynamoDB?
Amazon DynamoDB is a fully managed, serverless, NoSQL database that provides limitless scalability, active-active data replication for multi-Region resiliency, and proven consistent single-digit millisecond response time for the most demanding applications. It is easy to get started with Amazon DynamoDB and it is easy to use.
Is Amazon DynamoDB serverless?
Yes, Amazon DynamoDB is serverless. You don’t have to manage servers, eliminating infrastructure management tasks like capacity provisioning and patching. Also, Amazon DynamoDB does not have versions and upgrades, and offers zero downtime maintenance.
Is Amazon DynamoDB ACID compliant?
Yes, Amazon DynamoDB transactions are ACID compliant across one or more tables within a single AWS account and region. As such, you can use Amazon DynamoDB when building applications that require coordinated inserts, deletes, or updates to multiple items as part of a single logical business operation.
Does Amazon DynamoDB have read replicas?
Amazon DynamoDB automatically scales out to accommodate any amount of read traffic so read replicas, typically a relational database concept, are not required.
Does Amazon DynamoDB scale automatically?
Yes, Amazon DynamoDB automatically scales horizontally with your application’s requirements. Its automated scaling and ability to scale to zero make Amazon DynamoDB ideal for many applications.
How fast is Amazon DynamoDB?
Amazon DynamoDB has single-digit millisecond response times and can consistently deliver this performance for the most demanding application. To illustrate, on 2022 Amazon Prime Day, Amazon DynamoDB reliably handled 105.2 million requests/second across trillions of API calls with single-digit millisecond performance.
How to set up Amazon DynamoDB?
Amazon DynamoDB is built for developers and as it is serverless, it is very easy to setup using our technical documentation.
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.