Module Objective: Distinguish relational and non-relational databases, describe AWS's purpose-built database services, and identify which service fits a given data model and access pattern.

Builds on Module 7 — managed databases are, underneath, another way of putting compute and storage to work together.

Relational vs. Non-Relational Databases

The most fundamental database decision is the data model: how data is structured and queried. AWS offers managed services purpose-built for both major models rather than a single one-size-fits-all database.

ModelStructureBest For
Relational (SQL)Structured tables with fixed schemas, related by keys, queried with SQLTransactional systems needing complex joins and strong consistency, e.g. order management
Non-relational (NoSQL)Flexible schemas — key-value, document, graph, or wide-columnHigh-scale, high-velocity workloads with simpler access patterns, e.g. session state, product catalogs
🔵 Why It Matters AWS's "purpose-built" database philosophy means picking a database is now a design decision made per workload, rather than defaulting to one relational database for everything an organization runs.

Amazon RDS

Amazon Relational Database Service (RDS) is a managed service for relational databases, handling provisioning, patching, backups, and failover so customers don't have to manage the underlying database engine's infrastructure.

FeatureWhat It Does
Supported enginesMySQL, PostgreSQL, MariaDB, Oracle, SQL Server, and Amazon Aurora
Automated backupsTakes daily snapshots and streams transaction logs for point-in-time recovery
Multi-AZ deploymentMaintains a synchronously replicated standby in a different AZ, with automatic failover
Read replicasAsynchronously replicated, read-only copies used to offload read traffic from the primary instance
✅ Tip — Multi-AZ Is for Availability, Read Replicas Are for Scale These two features solve different problems: Multi-AZ protects against a database failure (echoing Module 3's high-availability concepts), while read replicas increase read throughput. Many production databases use both together.

Amazon Aurora

Amazon Aurora is a MySQL- and PostgreSQL-compatible relational database engine, built by AWS specifically for the cloud, offered as one of the engine choices within Amazon RDS.

PropertyDetail
CompatibilityDrop-in compatible with existing MySQL or PostgreSQL applications and tools
Storage architectureStorage automatically scales and is replicated six ways across three AZs
Aurora ServerlessAutomatically starts up, scales capacity, and shuts down based on application demand
🔵 Note Aurora is often positioned as AWS's recommended default for new MySQL/PostgreSQL-compatible workloads on RDS, thanks to its cloud-native storage layer and generally higher throughput versus the standard community engines.

Amazon DynamoDB

Amazon DynamoDB is a fully managed, serverless NoSQL key-value and document database, designed for consistent, single-digit-millisecond performance at any scale.

PropertyDetail
ServerlessNo servers to provision or patch; capacity can scale automatically with demand
Schema flexibilityItems in the same table don't need identical attributes
Billing modesOn-demand (pay per request) or provisioned capacity (pay for reserved throughput)
✅ Tip — DynamoDB Was in the Module 1 Free Tier Example Recall from Module 2 that 25 GB of DynamoDB storage is part of AWS's always-free tier — a reflection of how central DynamoDB is to many serverless, event-driven architectures built with services like AWS Lambda (Module 6).

Caching: Amazon ElastiCache

Amazon ElastiCache is a fully managed, in-memory caching service, supporting the open-source Redis and Memcached engines, used to reduce load on a primary database and speed up read-heavy applications.

EngineDistinguishing Feature
RedisSupports richer data structures, replication, and persistence
MemcachedSimpler, multi-threaded, purely in-memory caching
🔵 Note ElastiCache sits in front of a database rather than replacing one — it caches frequently requested results in memory so the primary database (RDS, Aurora, or DynamoDB) doesn't have to serve every read.

Analytics: Amazon Redshift

Amazon Redshift is a fully managed data warehouse service, optimized for running complex analytical queries across very large volumes of data — a different job than RDS, Aurora, or DynamoDB are built for.

PropertyDetail
Workload typeOnline analytical processing (OLAP) — large, complex queries across historical data
Column-oriented storageStores data by column rather than by row, speeding up aggregate queries across many records
Typical sourceData is often loaded in from operational databases (RDS, DynamoDB) or Amazon S3 for reporting and business intelligence
⚠️ Warning — OLTP vs. OLAP RDS, Aurora, and DynamoDB are built for online transaction processing (OLTP) — many small, fast reads and writes. Redshift is built for OLAP — fewer, much larger analytical queries. Using one in place of the other is a common architecture mistake.

Migrating Databases: AWS Database Migration Service

AWS Database Migration Service (DMS) migrates databases into AWS with minimal downtime, and can also perform ongoing replication between a source and target database.

CapabilityDetail
Homogeneous migrationMigrating between the same database engine, e.g. on-premises MySQL to Amazon RDS for MySQL
Heterogeneous migrationMigrating between different engines, e.g. Oracle to Aurora, typically paired with the AWS Schema Conversion Tool (SCT)
Continuous replicationKeeps a source and target database in sync during a migration to minimize cutover downtime
✅ Tip — Minimal Downtime Is the Headline Feature DMS's core value proposition is that the source database typically stays fully operational during migration, letting a cutover happen with only a brief interruption rather than a lengthy maintenance window.

Choosing the Right Database Service

As with compute and storage, the right database service follows from the workload's data model and access pattern.

NeedLikely Fit
Traditional relational application, existing SQL engineAmazon RDS
High-throughput, cloud-native relational workloadAmazon Aurora
Massive scale, simple access patterns, low-latency reads/writesAmazon DynamoDB
Reduce read load and latency on an existing databaseAmazon ElastiCache
Large-scale historical reporting and business intelligenceAmazon Redshift
Move an existing database into AWS with minimal downtimeAWS Database Migration Service
🔵 Note A single application commonly uses more than one of these together — for example, Aurora for transactional data, ElastiCache in front of it for speed, and Redshift fed from both for analytics and reporting.

Key Terms for Module 8

relational database
A database using structured tables with fixed schemas, related by keys and queried with SQL
non-relational (NoSQL) database
A database using a flexible schema model such as key-value, document, or wide-column
Amazon RDS
AWS's managed service for relational databases, supporting several engines including Aurora
Multi-AZ deployment
An RDS configuration maintaining a synchronously replicated standby database in another AZ for automatic failover
read replica
An asynchronously replicated, read-only copy of a database used to offload read traffic
Amazon Aurora
AWS's cloud-native, MySQL- and PostgreSQL-compatible relational database engine
Amazon DynamoDB
AWS's fully managed, serverless NoSQL key-value and document database
Amazon ElastiCache
A fully managed in-memory caching service supporting Redis and Memcached
Amazon Redshift
AWS's fully managed data warehouse service for large-scale analytical (OLAP) queries
AWS Database Migration Service (DMS)
Migrates databases into AWS with minimal downtime and supports ongoing replication

Review Questions

  1. What is the fundamental difference between a relational and a non-relational database, and what kind of workload favors each?
  2. What is the difference between what Multi-AZ deployment and read replicas each solve for in Amazon RDS?
  3. How does Amazon Aurora relate to Amazon RDS — is it a separate service or an option within RDS?
  4. Why might a high-scale, serverless application favor Amazon DynamoDB over Amazon RDS?
  5. What role does Amazon ElastiCache play relative to a primary database like RDS or DynamoDB?
  6. What is the difference between OLTP and OLAP, and which AWS services are built for each?
  7. What is the headline benefit AWS Database Migration Service provides during a database migration?