TL;DR
Purpose-Built Databases Overview
- AWS offers a range of purpose-built databases to support diverse data models and application needs, moving away from the one-size-fits-all approach of relational databases
- Purpose-built databases allow developers to choose the best database for specific problems, enabling the building of highly scalable, distributed applications
Key AWS Database Services
- Amazon DynamoDB: A fully managed NoSQL database for high-scale and serverless applications
- Amazon ElastiCache: A fully managed, in-memory caching solution supporting Redis and Memcached
- Amazon DocumentDB: A fully managed document database with MongoDB compatibility
- Amazon Neptune: A fully managed graph database for highly connected data
- Amazon Timestream: A serverless time series database for IoT and operational applications
- Amazon QLDB: A ledger database providing a verifiable history of data changes
Database Selection Guide
- AWS provides a variety of database options tailored to specific use cases, from relational databases for traditional applications to specialized databases for graph data, time series, and ledger applications
I. Purpose-built databases for all application needs
We covered Amazon RDS and relational databases in the previous lesson, and for a long time, relational databases were the default option. They were widely used in nearly all applications. A relational database is like a multi-tool. It can do many things, but it is not perfectly suited to any one particular task. It might not always be the best choice for your business needs.
The one-size-fits-all approach of using a relational database for everything no longer works. Over the past few decades, there has been a shift in the database landscape, and this shift has led to the rise of purpose-built databases. Developers can consider the needs of their application and choose a database that will fit those needs.
AWS offers a broad and deep portfolio of purpose-built databases that support diverse data models. Customers can use them to build data-driven, highly scalable, distributed applications. You can pick the best database to solve a specific problem and break away from restrictive commercial databases. You can focus on building applications that meet the needs of your organization.
1. Amazon DynamoDB
DynamoDB is a fully managed NoSQL database that provides fast, consistent performance at any scale. It has a flexible billing model, tight integration with infrastructure as code (IaC), and a hands-off operational model. DynamoDB has become the database of choice for two categories of applications: high-scale applications and serverless applications. Although DynamoDB is the database of choice for high-scale and serverless applications, it can work for nearly all online transaction processing (OLTP) application workloads. We will explore DynamoDB more in the next lesson.
2. Amazon ElastiCache
ElastiCache is a fully managed, in-memory caching solution. It provides support for two open-source, in-memory cache engines: Redis and Memcached. You aren’t responsible for instance failovers, backups and restores, or software upgrades.
3. Amazon MemoryDB for Redis
MemoryDB is a Redis-compatible, durable, in-memory database service that delivers ultra-fast performance. With MemoryDB, you can achieve microsecond read latency, single-digit millisecond write latency, high throughput, and Multi-AZ durability for modern applications, like those built with microservices architectures. You can use MemoryDB as a fully managed, primary database to build high-performance applications. You do not need to separately manage a cache, durable database, or the required underlying infrastructure.
4. Amazon DocumentDB (with MongoDB compatibility)
Amazon DocumentDB is a fully managed document database from AWS. A document database is a type of NoSQL database you can use to store and query rich documents in your application. These types of databases work well for the following use cases: content management systems, profile management, and web and mobile applications. Amazon DocumentDB has API compatibility with MongoDB. This means you can use popular open-source libraries to interact with Amazon DocumentDB, or you can migrate existing databases to Amazon DocumentDB with minimal hassle.
5. Amazon Keyspaces (for Apache Cassandra)
Amazon Keyspaces is a scalable, highly available, and managed Apache Cassandra compatible database service. Apache Cassandra is a popular option for high-scale applications that need top-tier performance. Amazon Keyspaces is a good option for high-volume applications with straightforward access patterns. With Amazon Keyspaces, you can run your Cassandra workloads on AWS using the same Cassandra Query Language (CQL) code, Apache 2.0 licensed drivers, and tools that you use today.
6. Amazon Neptune
Neptune is a fully managed graph database offered by AWS. A graph database is a good choice for highly connected data with a rich variety of relationships. Companies often use graph databases for recommendation engines, fraud detection, and knowledge graphs.
7. Amazon Timestream
Timestream is a fast, scalable, and serverless time series database service for Internet of Things (IoT) and operational applications. It makes it easy to store and analyze trillions of events per day up to 1,000 times faster and for as little as one-tenth of the cost of relational databases. Time series data is a sequence of data points recorded over a time interval. It is used for measuring events that change over time, such as stock prices over time or temperature measurements over time.
8. Amazon Quantum Ledger Database (Amazon QLDB)
With traditional databases, you can overwrite or delete data, so developers use techniques, such as audit tables and audit trails to help track data lineage. These approaches can be difficult to scale and put the burden of ensuring that all data is recorded on the application developer. Amazon QLDB is a purpose-built ledger database that provides a complete and cryptographically verifiable history of all changes made to your application data.
II. Choosing the Right AWS 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 |