What is Amazon DocumentDB (with MongoDB compatibility)?
Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads. As a document database, Amazon DocumentDB makes it easy to store, query, and index JSON data. Developers can use the same MongoDB application code, drivers, and tools as they do today to run, manage, and scale workloads on Amazon DocumentDB. Enjoy improved performance, scalability, and availability without worrying about managing the underlying infrastructure.
Customers can use AWS Database Migration Service (DMS) to easily migrate their on-premises or Amazon Elastic Compute Cloud (EC2) MongoDB non-relational databases to Amazon DocumentDB with virtually no downtime. There are no upfront investments required to use Amazon DocumentDB, and customers only pay for the capacity they use.
What does "MongoDB-compatible" mean?
“MongoDB compatible” means that Amazon DocumentDB interacts with the Apache 2.0 open source MongoDB 3.6 and 4.0 APIs. As a result, you can use the same MongoDB drivers, applications, and tools with Amazon DocumentDB with little or no changes. While Amazon DocumentDB supports a vast majority of the MongoDB APIs that customers actually use, it does not support every MongoDB API. Our focus has been to deliver the capabilities that customer actually use and need.
Since launch, we have continued to work backwards from customers and have delivered an additional 80+ capabilities, including MongoDB 4.0 compatibility and transactions. To learn more about the supported MongoDB APIs, see the compatibility documentation. To learn more about recent Amazon DocumentDB launches, see “Amazon DocumentDB Announcements” on the Amazon DocumentDB resources page.
How does Amazon DocumentDB work?
As a document database, Amazon DocumentDB interacts with the Apache 2.0 open-source MongoDB 3.6 and 4.0 APIs. As a result, you can use the same MongoDB drivers, applications, and tools with Amazon DocumentDB with little or no changes. Amazon DocumentDB is unique in that the database architecture was designed for the cloud and is built on a distributed, fault-tolerant, and self-healing storage system. DocumentDB gives you the performance, scalability, and availability you need when operating mission-critical MongoDB workloads at scale.
Is Amazon DocumentDB restricted by the MongoDB SSPL license?
No. Amazon DocumentDB does not utilize any MongoDB SSPL code and thus is not restricted by this license. Instead, Amazon DocumentDB interacts with the Apache 2.0 open-source MongoDB 3.6 and 4.0 APIs. We will continue to listen and work backward from our customers to deliver the capabilities that they need. To learn more about the supported MongoDB APIs, see the compatibility documentation. To learn more about recent Amazon DocumentDB launches, see “Amazon DocumentDB Announcements” on the Amazon DocumentDB resources page.
How can I migrate data from an existing MongoDB database to Amazon DocumentDB?
Customers can use AWS Database Migration Service (DMS) to easily migrate their on-premises or Amazon Elastic Compute Cloud (EC2) MongoDB databases to Amazon DocumentDB with virtually no downtime. With DMS, you can migrate from a MongoDB replica set or from a sharded cluster to Amazon DocumentDB. Additionally, you can use most existing tools to migrate data from a MongoDB database to Amazon DocumentDB, including mongodump/mongorestore, mongoexport/mongoimport, and third-party tools that support Change Data Capture via the oplog. For more information, see Migrating to Amazon DocumentDB.
Do I need to change client drivers to use Amazon DocumentDB?
No, Amazon DocumentDB works with a vast majority of MongoDB drivers compatible with MongoDB 3.4+.
Does Amazon DocumentDB support ACID transactions?
Yes. With the launch of support for MongoDB 4.0 compatibility, Amazon DocumentDB supports the ability to perform atomicity, consistency, isolation, durability (ACID) transactions across multiple documents, statements, collections, and databases.
Is Amazon DocumentDB subject to MongoDB's end of life (EOL) schedule?
No, Amazon DocumentDB does not follow the same support lifecycles as MongoDB and MongoDB's EOL schedule does not apply to Amazon DocumentDB.
How do I access my Amazon DocumentDB cluster?
Amazon DocumentDB clusters are deployed within a customer's Amazon VPC (VPC) and can be accessed directly by Amazon Elastic Compute Cloud (EC2) instances or other AWS services that are deployed in the same VPC. Additionally, Amazon DocumentDB can be accessed by Amazon EC2 instances or other AWS services in different VPCs in the same region or other regions via VPC peering. Access to Amazon DocumentDB clusters must be done through the mongo shell or with MongoDB drivers. Amazon DocumentDB requires that you authenticate when connecting to a cluster. For additional options, see Connecting to an Amazon DocumentDB Cluster from Outside an Amazon VPC.
Why are Amazon RDS permissions and resources required to use Amazon DocumentDB?
For certain management features such as instance lifecycle management, encryption-at-rest with Amazon Key Management Service (KMS) keys and security groups management, Amazon DocumentDB leverages operational technology that is shared with Amazon Relational Database Service (RDS) and Amazon Neptune. When using the describe-db-instances and describe-db-clusters AWS CLI APIs, we recommend filtering for Amazon DocumentDB resources using the following parameter: "--filter Name=engine,Values=docdb".
What instances types does Amazon DocumentDB offer?
Please see the Amazon DocumentDB pricing page for current information on available instant types per region.
How do I try Amazon DocumentDB?
To try Amazon DocumentDB, please see the Getting Started guide.
Does Amazon DocumentDB have an SLA?
Yes. For more information, please see Amazon DocumentDB (with MongoDB compatibility) Service Level Agreement.
What type of performance can I expect from Amazon DocumentDB?
When writing to storage, Amazon DocumentDB only persists a write-ahead logs, and does not need to write full buffer page syncs. As a result of this optimization, which does not compromise durability, Amazon DocumentDB writes are typically faster than traditional databases. Amazon DocumentDB clusters can scale out to millions of reads per second with up to 15-read replicas.
How much does Amazon DocumentDB cost?
Please see the Amazon DocumentDB pricing page for current pricing information.
In which AWS regions is Amazon DocumentDB available?
Please see the Amazon DocumentDB pricing page for current information on regions and prices.
Does Amazon DocumentDB have a free tier?
Yes, you can try Amazon DocumentDB for free using the 1-month free trial. If you have not used Amazon DocumentDB before, you’re eligible for a one month free trial. Your organization gets 750 hours per month of t3.medium instance usage, 30 million IOs, 5 GB of storage, and 5 GB of backup storage for free for 30 days. Once your one month free trial expires or your usage exceeds the free allowance, you can shut down your cluster to avoid any charges, or keep it running at our standard on-demand rates. To learn more, refer to the DocumentDB free trial page.
Amazon DocumentDB replicates each chunk of my storage volume six ways across three Availability Zones. Does that mean that my effective storage price will be three or six times what is shown on the pricing page?
No. Amazon DocumentDB’s storage replication feature is included in the price. You are charged based on the size of the data in your cluster and you are not charged separately for the replicated storage.
What are I/Os in Amazon DocumentDB and how are they calculated?
I/Os are input/output operations performed by Amazon DocumentDB against a solid state drive (SSD)-based virtualized storage layer. Every database page read operation counts as one I/O. Amazon DocumentDB issues reads against the storage layer in order to fetch pages not present in the buffer cache. Each page is 8 KB in Amazon DocumentDB.
Amazon DocumentDB was designed to eliminate unnecessary I/O operations in order to reduce costs and to ensure resources are available for serving read/write traffic. Write I/Os are only consumed when pushing write-ahead log records to the storage layer for the purpose of making writes durable. Write I/Os are counted in 4 KB units. For example, a log record that is 1KB will count as one I/O operation. However, concurrent write operations whose write-ahead log is less than 4 KB can be batched together by the Amazon DocumentDB cloud database engine in order to optimize I/O consumption. Unlike traditional database engines Amazon DocumentDB never pushes modified database pages to the storage layer, resulting in further I/O consumption savings.
You can see how many I/Os your Amazon DocumentDB cluster is consuming by going to the AWS Console. To find your I/O consumption, go to the Amazon DocumentDB section of the console, look at your list of clusters, select your Amazon DocumentDB cluster, then look for the “VolumeReadIOPs” and “VolumeWriteIOPs” metrics in the monitoring section.
How does per-second billing work?
Instance pricing is calculated from the time the instance is created to the time the instance is deleted. Instances are billed in one second increments, with a 10 minute minimum charge following a billable status change such as creating, modifying, or deleting an instance.
As an example, if you create an r5.large instance at 1:00:00 PM, modify the instance to an r5.xlarge at 1:30:00 PM and delete the instance at 1:50:00 PM, you will be charged for 1,800 seconds (30 minutes) at r5.large pricing and 1,200 seconds (20 minutes) at r5.xlarge prices. If you create an r5.large instance at 3:00:00 PM and delete it at 3:06:00PM, the 10 minute minimum applies, and you will be charged for 600 seconds (10 minutes) at r5.large pricing.
Hardware, Scaling, and Storage
What are the minimum and maximum storage limits of an Amazon DocumentDB cluster?
The minimum storage is 10 GB. Based on your cluster usage, your Amazon DocumentDB storage will automatically grow, up to 64 TB in 10 GB increments with no impact on performance. There is no need to provision storage in advance.
How does Amazon DocumentDB scale?
Amazon DocumentDB scales in two dimensions: storage and compute. Amazon DocumentDB's storage automatically scales from 10 GB to 64 TB in increments of 10 GB. Amazon DocumentDB's compute capacity can be scaled up by creating larger instances and horizontally (for greater read throughput) by adding additional replica instances (up to 15) to the cluster.
How do I scale the compute resources associated with my Amazon DocumentDB cluster?
You can scale the compute resources allocated to your instance in the AWS Management Console by selecting the desired instance and clicking the “modify” button. Memory and CPU resources are modified by changing your instance class.
When you modify your instance class, your requested changes will be applied during your specified maintenance window. Alternatively, you can use the "Apply Immediately" flag to apply your scaling requests immediately. Both of these options will have an availability impact for a few minutes as the scaling operation is performed. Bear in mind that any other pending system changes will also be applied.
Does Amazon DocumentDB support MongoDB sharding?
No. Amazon DocumentDB's distributed storage architecture is a different approach to scaling than MongoDB sharding.
Backup and Restore
How do I enable backups for my cluster?
Automated backups are always enabled on Amazon DocumentDB clusters. Amazon DocumentDB’s simple database backup capability enables point-in-time recovery for your clusters. You can increase your backup window for point-in-time restores up to 35 days. Backups do not impact database performance.
Can I take cluster snapshots and keep them around as long as I want?
Yes. Manual snapshots can be retained beyond the backup window and there is no performance impact when taking snapshots. Note that restoring data from cluster snapshots requires creating a new cluster.
If my instance fails, what is my recovery path?
Amazon DocumentDB automatically maintains six copies of your data across three Availability Zones (AZs) and will automatically attempt to recover your instance in a healthy AZ with no data loss. In the unlikely event your data is unavailable within Amazon DocumentDB storage, you can restore from a cluster snapshot or perform a point-in-time restore operation to a new cluster. Note that the latest restorable time for a point-in-time restore operation can be up to five minutes in the past.
What happens to my automated backups and cluster snapshots if I delete my cluster?
You can choose to create a final snapshot when deleting your instance. If you do, you can use this snapshot to restore the deleted instance at a later date. Amazon DocumentDB retains this final user-created snapshot along with all other manually created snapshots after the instance is deleted. Only snapshots are retained after the instance is deleted (i.e., automated backups created for point-in-time restore are not kept).
What happens to my automated backups and cluster snapshots if I delete my account?
Deleting your AWS account will delete all automated backups and snapshot backups contained in the account.
Can I share my snapshots with another AWS account?
Yes. Amazon DocumentDB gives you the ability to create snapshots of your cluster, which you can use later to restore a cluster. You can share a snapshot with a different AWS account, and the owner of the recipient account can use your snapshot to restore a cluster that contains your data. You can even choose to make your snapshots public – that is, anybody can restore a cluster containing your (public) data. You can use this feature to share data between your various environments (production, dev/test, staging, etc.) that have different AWS accounts, as well as keep backups of all your data secure in a separate account in case your main AWS account is ever compromised.
Will I be billed for shared snapshots?
There is no charge for sharing snapshots between accounts. However, you may be charged for the snapshots themselves, as well as any clusters that you restore from shared snapshots.
Can I automatically share snapshots?
We do not support sharing automatic cluster snapshots. To share an automatic snapshot, you must manually create a copy of the snapshot, and then share the copy.
Can I share my Amazon DocumentDB snapshots across different regions?
No. Your shared Amazon DocumentDB snapshots will only be accessible by accounts in the same region as the account that shares them.
Can I share an encrypted Amazon DocumentDB snapshot?
Yes. You can share encrypted Amazon DocumentDB snapshots. The recipient of the shared snapshot must have access to the KMS key that was used to encrypt the snapshot.
Can I use Amazon DocumentDB snapshots outside of the service?
No. Amazon DocumentDB snapshots can only be used inside of the service.
What happens to my backups if I delete my cluster?
You can choose to create a final snapshot when deleting your cluster. If you do, you can use this snapshot to restore the deleted cluster at a later date. Amazon DocumentDB retains this final user-created snapshot along with all other manually created snapshots after the cluster is deleted.
High Availability and Replication
How does Amazon DocumentDB improve my cluster’s fault tolerance to disk failures?
Amazon DocumentDB automatically divides your storage volume into 10 GB segments spread across many disks. Each 10 GB chunk of your storage volume is replicated six ways, across three Availability Zones (AZs). Amazon DocumentDB is designed to transparently handle the loss of up to two copies of data without affecting write availability and up to three copies without affecting read availability. Amazon DocumentDB’s storage volume is also self-healing. Data blocks and disks are continuously scanned for errors and repaired automatically.
How does Amazon DocumentDB improve recovery time after a database crash?
Unlike other databases, after a database crash Amazon DocumentDB does not need to replay the redo log from the last database checkpoint (typically five minutes) and confirm that all changes have been applied, before making the database available for operations. This reduces database restart times to less than 60 seconds in most cases. Amazon DocumentDB moves the cache out of the database process and makes it available immediately at restart time. This prevents you from having to throttle access until the cache is repopulated to avoid brownouts.
What kind of replicas does Amazon DocumentDB support?
Amazon DocumentDB supports read replicas, which share the same underlying storage volume as the primary instance. Updates made by the primary instance are visible to all Amazon DocumentDB replicas.
Feature: Amazon DocumentDB read replicas
Number of replicas: Up to 15
Replication Type: Asynchronous (typically milliseconds)
Performance impact on primary: Low
Act as failover target: Yes (no data loss)
Automated failover: Yes
Can I have cross-region replicas with Amazon DocumentDB?
Yes, you can replicate your data across regions using the Global Cluster feature. Global Clusters span across multiple AWS Regions. Global clusters replicate your data to clusters in up to five Regions with little to no impact on performance. Global clusters provide faster recovery from Region-wide outages and enable low-latency global reads. To learn more see our blog post.
Can I prioritize certain replicas as failover targets over others?
Yes. You can assign a promotion priority tier to each instance on your cluster. If the primary instance fails, Amazon DocumentDB will promote the replica with the highest priority to primary. If there are inconsistencies between two or more replicas in the same priority tier, then Amazon DocumentDB will promote the replica that is the same size as the primary instance.
Can I modify priority tiers for instances after they have been created?
You can modify the priority tier for an instance at any time. Simply modifying priority tiers will not trigger a failover.
Can I prevent certain replicas from being promoted to the primary instance?
You can assign lower priority tiers to replicas that you do not want promoted to the primary instance. However, if the higher priority replicas on the cluster are unhealthy or unavailable for some reason, then Amazon DocumentDB will promote the lower priority replica.
How does Amazon DocumentDB assure high availability of my cluster?
Amazon DocumentDB can be deployed in a high-availability configuration by using replica instances in multiple AWS Availability Zones as failover targets. In the event of a primary instance failure, a replica instance is automatically promoted to be the new primary with minimal service interruption.
How can I improve upon the availability of a single Amazon DocumentDB instance?
You can add additional Amazon DocumentDB replicas. Amazon DocumentDB replicas share the same underlying storage as the primary instance. Any Amazon DocumentDB replica can be promoted to become primary without any data loss and therefore can be used for enhancing fault tolerance in the event of a primary instance failure. To increase cluster availability, simply create one to 15 replicas, in multiple AZs, and Amazon DocumentDB will automatically include them in failover primary selection in the event of an instance outage.
What happens during failover and how long does it take?
Failover is automatically handled by Amazon DocumentDB so that your applications can resume database operations as quickly as possible without manual administrative intervention.
- If you have an Amazon DocumentDB replica instance in the same or a different Availability Zone, when failing over, Amazon DocumentDB flips the canonical name record (CNAME) for your instance to point at the healthy replica, which is in turn promoted to become the new primary. Start-to-finish, failover typically completes within 30 seconds.
- If you do not have an Amazon DocumentDB replica instance (i.e. a single instance cluster), Amazon DocumentDB will attempt to create a new instance in the same Availability Zone as the original instance. This replacement of the original instance is done on a best-effort basis and may not succeed, for example, if there is an issue that is broadly affecting the Availability Zone.
Your application should retry database connections in the event of connection loss.
If I have a primary instance and an Amazon DocumentDB replica instance actively taking read traffic and a failover occurs, what happens?
Amazon DocumentDB will automatically detect a problem with your primary instance and begin routing your read/write traffic to an Amazon DocumentDB replica instance. On average, this failover will complete within 30 seconds. In addition, the read traffic that your Amazon DocumentDB replicas instances were serving will be briefly interrupted.
How far behind the primary will my replicas be?
Since Amazon DocumentDB replicas share the same data volume as the primary instance, there is virtually no replication lag. We typically observe lag times in the 10s of milliseconds.
Security and Compliance
Can I use Amazon DocumentDB in Amazon Virtual Private Cloud (Amazon VPC)?
Yes. All Amazon DocumentDB clusters must be created in a VPC. With Amazon VPC, you can define a virtual network topology that closely resembles a traditional network that you might operate in your own datacenter. This gives you complete control over who can access your Amazon DocumentDB clusters.
Does Amazon DocumentDB support role-based access control (RBAC)?
Amazon DocumentDB supports RBAC with built-in roles. RBAC enables you to enforce least privilege as a best practices by restricting the actions that users are authorized to perform. For more information, see Amazon DocumentDB role-based access control.
How do the existing MongoDB authentication modes work with Amazon DocumentDB?
Amazon DocumentDB utilizes VPC’s strict network and authorization boundary. Authentication and authorization for Amazon DocumentDB management APIs is provided by IAM users, roles, and policies. Authentication to an Amazon DocumentDB database are done via standard MongoDB tools and drivers with Salted Challenge Response Authentication Mechanism (SCRAM), the default authentication mechanism for MongoDB.
Does Amazon DocumentDB support encrypting my data-at-rest?
Yes. Amazon DocumentDB allows you to encrypt your clusters using keys you manage through AWS Key Management Service (KMS). On a cluster running with Amazon DocumentDB encryption, data stored at rest in the underlying storage is encrypted, as are its automated backups, snapshots, and replicas in the same cluster. Encryption and decryption are handled seamlessly. For more information about the use of KMS with Amazon DocumentDB, see the Encrypting Amazon DocumentDB Data at Rest.
Can I encrypt an existing unencrypted cluster?
Currently, encrypting an existing unencrypted Amazon DocumentDB cluster is not supported. To use Amazon DocumentDB encryption for an existing unencrypted cluster, create a new cluster with encryption enabled and migrate your data into it.
What compliance certifications does Amazon DocumentDB meet?
Amazon DocumentDB was designed to meet the highest security standards and to make it easy for you to verify our security and meet your own regulatory and compliance obligations. Amazon DocumentDB has been assessed to comply with PCI DSS, ISO 9001, 27001, 27017, and 27018, SOC 1, 2 and 3, and Health Information Trust Alliance (HITRUST) Common Security Framework (CSF) certification, in addition to being HIPAA eligible. AWS compliance reports are available for download in AWS Artifact.
Visit the Amazon DocumentDB (with MongoDB compatibility) pricing page.
Instantly get access to the AWS Free Tier.
Get started building with Amazon DocumentDB (with MongoDB compatibility) in the AWS Console.