Databases Service

Choosing an AWS database service

Determine which AWS databases are the best fit for your organization.

Overview of AWS database services

AWS offers a growing number of database options (15+) with diverse data models to support a variety of workloads.

These include relational, key-value, document, in-memory, graph, time series, vector, and wide-column databases that help organizations:

  • Process millions of transactions per second with consistent performance
  • Store and retrieve data with microsecond latency for real-time applications
  • Manage core business processes securely with enterprise-grade reliability
  • Power AI applications with domain-specific knowledge through vector capabilities

Choosing the right database, or multiple databases, requires you to make a series of decisions based on your organizational needs. This page helps you ask the right questions, provides a clear path for implementation, and helps you migrate from your existing database.

Note: This page focuses on databases that are suitable for online transaction processing (OLTP) applications. To store and analyze massive amounts of data quickly and efficiently, a requirement that is typically met by an online analytical processing (OLAP) application, AWS offers Amazon Redshift. Amazon Redshift is a fully managed, cloud-based data warehousing service that handles large-scale analytics workloads.

Key concepts

There are two high-level categories of AWS OLTP databases—relational and non-relational.

Relational

The AWS relational database family includes eight popular engines for Amazon Aurora and Amazon Relational Database Service. The Aurora engines include Amazon Aurora PostgreSQL-Compatible Edition, Amazon Aurora MySQL-Compatible Edition, or Amazon Aurora DSQL. The Amazon RDS engines include PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, and Db2. These databases store data in tabular format with rows and columns, allowing you to link tables to gain deeper insights into interconnected data points.

Non-relational

Non-relational databases use a variety of data models for accessing and managing data. These include key-value, document, caching, in-memory, graph, time series, and wide-column data models. They’re optimized for applications requiring large data volumes, low latency, and flexible data models by relaxing some data consistency restrictions.

Use cases

Solve your most challenging data problems, from scaling to millions of users, to powering AI with your domain-specific data.

Internet-scale applications
Vector databases and vector search for use with generative AI applications

Whatever database service you use will likely contain a wealth of domain-specific data (such as financial records, health records, genomic data, and supply chain information). This data can provide you with a unique and valuable perspective on your business and the broader industry that you work within. For generative AI usage, the domain-specific data you plan to use for semantic context must be encoded as a set of elements, each expressed internally as a vector. This contextually relevant data typically comes from your internal databases, data lakes, or unstructured data or document stores - the data stores that host your domain-specific data or knowledge. These data stores are generically called knowledge bases. Retrieval Augmented Generation (RAG) is the process for retrieving facts from these knowledge bases to ground large language models (LLMs) with up-to-date, accurate, and insightful data. AWS has added vector capabilities to AWS database and search services so you can store vector datasets where your data is, simplify your application architecture, and use tried, tested, and familiar tools. A vector database, or vector data store, simply means a database with vector capabilities. Such a database can also provide additional enhancements to the ways you use your data with generative AI.

Learn more about how AWS has added vector capabilities to AWS database and search services

Real-time applications
Enterprise applications

Compare services

This table highlights the type of data that each database is optimized to handle. Use it to help determine the database that is the best fit for your use case.
Data model When would you use it? What is it optimized for? Related database engines and services
Relational

Use when you're migrating or modernizing an on-premises relational workload, or if your workload has less predictable query patterns.

Optimized for structured data that is stored in tables, rows, and columns. Relational databases support complex queries through joins.

Amazon Aurora

Amazon Relational Database Service

Key-value

Use for workloads such as session stores or shopping carts. Key-value databases can scale to large amounts of data and extremely high throughput of requests, while servicing millions of simultaneous users through distributed processing and storage.

Optimized to provide a serverless, NoSQL, fully managed database with single-digit millisecond performance at any scale.

Amazon DynamoDB

In-memory Use Amazon ElastiCache when you need a caching layer to improve read performance. Use Amazon MemoryDB when you need full data persistence, but still need sub-millisecond read latencies. Optimized to support microsecond reads and sub-millisecond writes. MemoryDB supports microsecond reads and single-digit millisecond writes. ElastiCache is an ephemeral cache, while MemoryDB is an in-memory database.

Amazon ElastiCache

Amazon MemoryDB

Document Use when you want to store JSON-like documents with rich querying abilities across the fields of the documents. Optimized for storing semi-structured data as documents with multilayered attributes.

Amazon DocumentDB (with MongoDB compatibility)

Wide-column Use when you need to migrate your on-premises Apache Cassandra workloads, or when you need to process data at high speeds for applications that require single-digit millisecond latency. Optimized for workloads that require heavy reads/writes and high throughput, coupled with low latency and linear scalability.

Amazon Keyspaces (for Apache Cassandra)

Graph Use when you have to model complex networks of objects, such as social networks, fraud detection, and recommendation engine use cases. Optimized for traversing and evaluating large numbers of relationships, and identifying patterns with minimal latency.

Amazon Neptune

Time series Use when you have a large amount of time series data, potentially from a number of sources, such as Internet of Things (IoT) data, application metrics, and asset tracking. Optimized for storing and querying data that is associated with timestamps and trend lines.

Amazon Timestream

Start building

This section helps you learn more about the database service or services that you've chosen, and how to get started with them.

The database you've chosen might not satisfy all of your requirements perfectly, so it's important to consider your needs and workload requirements carefully.

Prioritize based on the considerations covered in this guide, your own specific requirements, and the requirements for which you have some flexibility. This will help you make effective trade-offs and lead to the best possible outcome for your needs.

Also consider that, usually, you can cover your application requirements with a mix of best-fit databases. By building a solution with multiple database types, you can use the strengths that each type provides.

For example, in an e-commerce use case, you might use Amazon DocumentDB (for product catalogs and user profiles) for the flexibility that is provided by semi-structured data, but then combine it with the low, predictable latency provided by DynamoDB (for when your users are browsing your product catalog). You might also add Aurora for inventory and order processing, where a relational data model and transaction support are needed.

To help you learn more about each of the available AWS database services, we have provided a pathway to explore how each of the services work. The following section provides links to in-depth documentation, hands-on tutorials, and resources to help you get started.

Amazon Aurora

Getting started with Amazon Aurora

This guide includes tutorials and covers more advanced Aurora concepts and procedures, such as the different kinds of endpoints and how to scale Aurora clusters up and down.

Explore the guide

Use Amazon Aurora global databases

Get started using Aurora global databases. This guide outlines the supported engines and AWS Regions availability for Aurora global databases with Aurora MySQL and Aurora PostgreSQL.

Explore the guide

Amazon Relational Database Service

Getting started with Amazon Relational Database Service

Create and connect to a DB instance using Amazon RDS. You learn to create a DB instance that uses DB2, MariaDB, MySQL, Microsoft SQL Server, Oracle, or PostgreSQL.

Explore the guide

Create and connect to a PostgreSQL database

Create an environment to run your PostgreSQL database (this environment is called a DB instance), connect to the database, and delete the DB instance.

Get started with the tutorial

Create a web server and an Amazon RDS DB instance

Learn how to install an Apache web server with PHP and create a MySQL database. The web server runs on an Amazon EC2 instance using Amazon Linux. The MySQL database is a MySQL DB instance.

Get started with the tutorial

Amazon DocumentDB (with MongoDB compatibility)

Getting started with Amazon DocumentDB (with MongoDB compatibility)

We help you get started using Amazon DocumentDB in just four steps. This guide uses AWS CloudShell to connect and query your cluster using the MongoDB shell directly from the AWS Management Console.

Explore the guide

Setting up a document database with Amazon DocumentDB

This tutorial helps you to get started connecting to your Amazon DocumentDB cluster from your AWS CloudShell environment with a MongoDB shell, and then run a few queries.

Get started with the tutorial

Best practices for working with Amazon DocumentDB

Learn best practices for working with Amazon DocumentDB, along with the basic operational guidelines when working with it.

Explore the guide

Assessing MongoDB compatibility

Use the Amazon DocumentDB compatibility tool to help you assess the compatibility of a MongoDB application by using the application's source code or MongoDB server profile logs.

Use the tool

Amazon DynamoDB

What is Amazon DynamoDB?

This guide explains how you can use this fully managed NoSQL database service to offload the administrative burdens of operating and scaling a distributed database (including hardware provisioning, setup and configuration, replication, software patching, and cluster scaling).

Explore the guide

Getting started with DynamoDB and the AWS SDKs

We help you get started with DynamoDB and the AWS SDKs. This guide includes hands-on tutorials that show you how to run code examples in DynamoDB.

Explore the guide

Create and query a NoSQL table with DynamoDB

Use these hands-on tutorials to get started with DynamoDB and the AWS SDKs. You can run the code examples on either the downloadable version of DynamoDB or the DynamoDB web service.

Get started with the tutorials

Create a DynamoDB table

Use the Amazon DocumentDB compatibility tool to help you assess the compatibility of a MongoDB application by using the application's source code or MongoDB server profile logs.

Get started with the tutorial

Amazon ElastiCache

Documentation for ElastiCache

Explore the full set of ElastiCache documentation, including user guides as well as specific AWS CLI and API references.

Explore the guides

Getting started with ElastiCache

Learn how to create, grant access to, connect to, and delete a Valkey (cluster mode disabled) cluster using the ElastiCache console.

Get started with the tutorial

Amazon MemoryDB

Getting started with Amazon MemoryDB

We guide you through the steps to create, grant access to, connect to, and delete a MemoryDB cluster using the MemoryDB console.

Use the guide

Get started with Amazon MemoryDB for Valkey

Get an overview of MemoryDB for Valkey, its benefits, and how you can upgrade your MemoryDB for Redis OSS database to MemoryDB for Valkey database.

Read the blog post

Integrating MemoryDB with Java-based Lambda

We discuss some of the common use cases for the data store, MemoryDB, which is built to provide durability and faster reads and writes.

Read the blog post

Amazon Keyspaces

Getting started with Amazon Keyspaces (for Apache Cassandra)

This guide is for those who are new to Apache Cassandra and Amazon Keyspaces (for Apache Cassandra). It walks you through installing all the programs and drivers that you need to successfully use Amazon Keyspaces.

Explore the guide

Beginner course for using Amazon Keyspaces (for Apache Cassandra)

Learn the benefits, typical use cases, and technical concepts of Amazon Keyspaces. You can try the service through the sample code provided or the interactive tool in the AWS Management Console.

Take the course (requires sign-in)

Amazon Neptune

Getting started with Amazon Neptune

We help you get started using Amazon Neptune, a fully managed graph database service. This guide shows you how to create a Neptune database.

Explore the guide

Using knowledge graphs to build GraphRAG applications with Amazon Bedrock and Amazon Neptune

Build GraphRAG applications using Amazon Bedrock and Amazon Neptune with LlamaIndex framework.

Read the blog post

Amazon Timestream

Getting started with Amazon Timestream

We help you get started with Amazon Timestream. This guide provides instructions for setting up a fully functional sample application.

Explore the guide

Best practices with Amazon Timestream

We explore best practices, including the practices that relate to data modeling, security, configuration, data ingestion, queries, client applications, and supported integrations.

Explore the guide

Accessing Amazon Timestream using the AWS SDKs

Learn how to access Amazon Timestream using the AWS SDKs in the language of your choice: Java, Go, Python, Node.js, or .NET.

Explore the guide

Understanding time-series data and why it matters

Explore the nature of time-series data, its presence across different types of industries and various use cases it enables.

Read the blog post

Resources