SaveMyCert
Log in
5 of 5 free questions left today·for unlimited practice
Cloud Technology and Services

AWS Database Services for CLF-C02: RDS, Aurora, DynamoDB, ElastiCache, DMS

14 min readCLF-C02 · Cloud Technology and ServicesUpdated

AWS database services appear on nearly every CLF-C02 exam form, and the questions follow a predictable pattern: read a description of the data and the workload, then name the service that fits. To answer them you need a clear mental map of three database families — relational (Amazon RDS and Amazon Aurora), NoSQL (Amazon DynamoDB), and in-memory (Amazon ElastiCache) — plus the two migration tools, AWS DMS and AWS SCT. You also need to explain when running a database yourself on Amazon EC2 beats letting AWS manage it, and when it does not. This lesson covers the full Task 3.4 scope: the self-managed versus managed trade-off, each service's data model and trigger phrases, an RDS versus DynamoDB head-to-head, and how DMS and SCT pair up for same-engine and cross-engine migrations. By the end, you will match any exam scenario to the right database in seconds.

What you’ll learn
  • Decide when to run a database on EC2 (self-managed) versus using an AWS managed database service
  • Identify Amazon RDS and Amazon Aurora as relational database services and describe Multi-AZ, read replicas, and Aurora's distinguishing features
  • Identify Amazon DynamoDB as a serverless NoSQL key-value and document database and recognize its trigger phrases
  • Identify memory-based database services — Amazon ElastiCache for Redis and Memcached, and Amazon MemoryDB — and their caching and low-latency use cases
  • Pair AWS DMS and AWS SCT correctly for homogeneous and heterogeneous database migrations
  • Match exam scenarios to the correct database family based on data shape, scale, and latency requirements

Databases on EC2 vs AWS managed databases

Every database question in CLF-C02 sits on one foundational choice: run the database engine yourself on an Amazon EC2 instance, or hand the operational work to an AWS managed service. Both are legitimate — the exam wants you to know why you would pick each.

Installing a database on EC2 is the self-managed path. You get full control: any engine, any version, any configuration flag, and operating-system access. Some organizations need this — a legacy engine that AWS does not offer as a managed service, a version pinned by a vendor's support contract, or custom OS-level agents and tuning. The cost of that control is that you are the database administrator. You provision the instance, install and patch the engine, patch the OS, configure backups, design high availability and failover, and scale capacity yourself. AWS manages nothing above the hypervisor; under the shared responsibility model, everything from the guest OS up is yours.

A managed database service such as Amazon RDS inverts that. AWS handles provisioning, engine patching, automated backups, and high-availability options for you, and you interact with the database endpoint rather than a server. You give up OS access and are limited to the engines and versions the service supports.

Use this trade-off list to answer exam items:

  • Database on EC2: full control, any engine or version, OS access, custom configuration — but you patch, back up, secure, and scale it yourself.
  • AWS managed database: AWS provisions, patches, backs up, and offers built-in high availability — less operational burden, less low-level control.

If a question says the team wants to reduce operational overhead or stop patching database servers, the answer is a managed service. If it says the team needs OS-level access or an unsupported engine version, the answer is EC2.

Amazon RDS: managed relational databases

Amazon RDS (Relational Database Service) is the managed home for relational databases on AWS. A relational database stores data in structured tables with rows and columns, enforces a fixed schema, supports SQL queries, joins across tables, and transactions. It is the natural fit for workloads like order systems, financial records, ERP, and any application where data relationships and consistency matter.

RDS runs familiar engines you may already use on-premises: MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, and Oracle (RDS also offers Db2). Because the engines are standard, existing applications usually connect without code changes — you point them at an RDS endpoint instead of a server you maintain. AWS handles instance provisioning, engine patching, automated backups with point-in-time recovery, and storage scaling options, which is exactly the operational work you would otherwise do on EC2.

Two RDS features appear on the exam at recognition level, and it pays to keep them straight:

  • Multi-AZ deployment is for high availability. RDS keeps a standby copy of the database in a different Availability Zone and fails over to it automatically if the primary has a problem. The standby does not serve application traffic — it exists for resilience.
  • Read replicas are for read scaling. RDS copies data to one or more replicas that your application can query for read-heavy traffic, taking load off the primary. Replicas can also be placed in other Regions.

Memorize the pairing: Multi-AZ = availability, read replicas = read performance. CLF-C02 loves to swap those two in the answer choices. If the scenario mentions structured data, SQL, transactions, or an existing MySQL/PostgreSQL/SQL Server/Oracle application that the team no longer wants to administer, the answer is Amazon RDS.

Amazon Aurora: the cloud-native relational engine

Amazon Aurora is a relational database engine that AWS built specifically for the cloud, offered within the RDS family. It is compatible with MySQL and PostgreSQL — applications written for either engine can typically use Aurora without modification — but it is not simply hosted MySQL or PostgreSQL. AWS re-architected the storage layer to get cloud-scale performance and durability.

Three facts cover what CLF-C02 expects you to know:

  • Higher performance: AWS positions Aurora as delivering several times the throughput of standard MySQL and PostgreSQL on equivalent hardware. When a question asks for the highest-performing managed relational option compatible with MySQL or PostgreSQL, Aurora is the answer.
  • Distributed, fault-tolerant storage: Aurora automatically replicates data across three Availability Zones in a Region, keeping multiple copies of your data. Durability and availability are built into the storage layer rather than bolted on.
  • Aurora Serverless: an on-demand configuration that automatically scales database capacity up and down based on load — you do not choose an instance size. It suits variable, intermittent, or unpredictable workloads, such as a development database used a few hours a day or an application with sharp traffic spikes.

How do you tell an Aurora question from a plain RDS question? Plain RDS is the answer when the scenario names an engine Aurora does not speak — SQL Server, Oracle, MariaDB — or simply asks for a managed relational database. Aurora is the answer when the scenario stresses MySQL or PostgreSQL compatibility plus superior performance, storage replicated across multiple Availability Zones, or a relational database that scales capacity automatically (Aurora Serverless). Aurora is still relational: tables, SQL, joins, and transactions all apply.

Amazon DynamoDB: serverless NoSQL at any scale

Amazon DynamoDB is AWS's fully managed, serverless NoSQL database. NoSQL databases drop the rigid table schema of relational systems in favor of a flexible schema: DynamoDB stores items as key-value pairs and documents, and different items in the same table can carry different attributes. You retrieve data primarily by its key rather than by joining tables with SQL, which lets the database scale horizontally to enormous sizes without slowing down.

DynamoDB's headline promise — and the exam's favorite phrase — is single-digit millisecond latency at any scale. Whether a table holds a thousand items or billions, and whether it serves ten requests a second or millions, read and write latency stays consistently low. That property makes DynamoDB the go-to for gaming leaderboards and player state, shopping carts, user profiles and session data, IoT telemetry, and mobile or web backends with unpredictable, spiky traffic.

Serverless is the second pillar: there are no database instances to choose, provision, patch, or scale. You create a table, and AWS handles all the infrastructure invisibly. Capacity can scale automatically with demand, and you pay for the throughput and storage you use. Contrast that with RDS and Aurora (outside Aurora Serverless), where you still pick and manage instance classes even though AWS operates them.

Lock in the trigger phrases. When a question says "key-value", "flexible schema", "serverless database", "millisecond latency at any scale", or "massive scale with consistent performance", the answer is DynamoDB. When it says SQL, joins, or complex transactions across related tables, DynamoDB is the distractor and a relational service is the answer. DynamoDB is a database, not a cache — sub-millisecond and microsecond latency requirements point to the in-memory services covered next.

RDS vs DynamoDB: the head-to-head you must know

The single most common Task 3.4 discrimination is Amazon RDS versus Amazon DynamoDB. Both are managed databases; the difference is the data model and the operational model. Run through this head-to-head until it is automatic:

  • Data model: RDS is relational — structured tables, fixed schema, rows and columns. DynamoDB is NoSQL — key-value and document items with a flexible schema.
  • Query style: RDS speaks full SQL with joins across tables and multi-row transactions. DynamoDB is accessed primarily by key lookups through its API.
  • Scaling: RDS scales up (bigger instances) and scales reads with replicas. DynamoDB scales out horizontally and automatically to virtually any request volume.
  • Infrastructure: RDS still exposes instances you size and choose. DynamoDB is serverless — no instances exist for you to manage at all.
  • Latency profile: DynamoDB guarantees consistent single-digit millisecond performance at any scale; RDS performance depends on instance size and workload.
  • Typical workloads: RDS — e-commerce orders, financial and inventory systems, existing SQL applications being lifted to AWS. DynamoDB — leaderboards, session stores, carts, user profiles, IoT event data.

A realistic exam scenario: a startup is launching a mobile game that must store millions of player scores with consistent millisecond reads during global traffic spikes, and the team wants zero servers to manage. Every clause — flexible player data, massive scale, millisecond latency, serverless — points to DynamoDB. Change the scenario to an accounting application that joins customer, invoice, and payment tables with SQL transactions, and the answer flips to RDS. Read the data shape first; the service follows.

Memory-based databases: ElastiCache and MemoryDB

The third database family holds data in memory (RAM) instead of on disk, trading durability guarantees for extreme speed. Reads served from memory take microseconds to sub-milliseconds — faster than even DynamoDB — which is why the exam ties this family to the words caching and lowest possible latency.

Amazon ElastiCache is the managed in-memory service you must know. It runs two popular open-source engines: Redis and Memcached. AWS handles the provisioning, patching, and node management, just as RDS does for relational engines. ElastiCache's classic role is as a cache in front of another database: your application checks the cache first, and only queries the slower disk-based database (RDS, for example) on a cache miss. That offloads read traffic, cuts latency dramatically, and can reduce database cost. Beyond caching, common uses include session stores for web applications, real-time leaderboards, and other workloads needing microsecond-to-sub-millisecond reads.

Amazon MemoryDB is the one-liner to recognize: a Redis-compatible, durable, in-memory database designed to serve as a primary database — in-memory speed with data persisted durably across multiple Availability Zones — whereas ElastiCache is positioned for caching alongside another data store.

One adjacent purpose-built service occasionally appears as an answer choice and only needs one-line recognition: Amazon Neptune is AWS's managed graph database for highly connected data such as social networks, recommendations, and fraud detection. Knowing what Neptune is stops it from working as a distractor.

Exam triggers for this section: "improve read performance of an existing database", "cache frequently accessed data", "session store", and "microsecond latency" all point to ElastiCache. "Redis-compatible durable primary database" points to MemoryDB. "Relationships between highly connected data" points to Neptune.

Database migration: AWS DMS and AWS SCT

Task 3.4 explicitly names two migration tools, and the exam tests whether you know which does what — and when you need both.

AWS Database Migration Service (AWS DMS) moves the data. It migrates databases to AWS (and between databases) while the source database stays fully operational — applications keep reading and writing during the migration, so downtime is minimal. DMS can also run continuous replication, keeping a target in sync with a source after the initial load. It supports two migration shapes:

  • Homogeneous migration: same engine on both sides — for example, on-premises MySQL to RDS for MySQL, or Oracle to Oracle. The schemas already match, so DMS alone is sufficient.
  • Heterogeneous migration: different engines — for example, Oracle to Aurora PostgreSQL, or SQL Server to RDS for MySQL. The table definitions, data types, stored procedures, and other database code differ between engines, so the schema must be converted first.

That conversion is the job of the AWS Schema Conversion Tool (AWS SCT). SCT converts the schema and database code — tables, views, stored procedures, functions — from the source engine's format into the target engine's format, and reports which objects it can convert automatically versus which need manual work. SCT does not move your data; DMS does not convert your schema.

The pairing rule to memorize: DMS moves the data; SCT converts the schema. Same engine = DMS alone. Different engines = SCT first, then DMS. A typical exam item: a company wants to migrate its on-premises Oracle database to Aurora PostgreSQL with minimal downtime — which tools does it need? Different engines means SCT converts the schema, and DMS migrates the data while the Oracle source keeps running. Both tools, one answer choice.

Choosing the right database: comparison and exam strategy

Pull the families together. On the exam, you identify the database from the data shape, the scale and latency needs, and the trigger words in the scenario:

ServiceType / data modelTypical use casesTrigger words
Amazon RDSRelational — structured tables, fixed schema, SQLE-commerce orders, financial systems, existing MySQL/PostgreSQL/SQL Server/Oracle apps"SQL", "joins", "transactions", "managed relational", "stop patching database servers"
Amazon AuroraRelational — MySQL/PostgreSQL-compatible, cloud-native storageHigh-performance relational apps, variable workloads (Aurora Serverless)"MySQL/PostgreSQL compatible", "highest performance", "storage across three AZs", "auto-scaling capacity"
Amazon DynamoDBNoSQL — key-value and document, flexible schema, serverlessGaming state, session data, carts, user profiles, IoT, massive-scale web/mobile backends"key-value", "serverless database", "single-digit millisecond at any scale", "flexible schema"
Amazon ElastiCacheIn-memory — managed Redis or MemcachedCaching in front of a database, session stores, real-time leaderboards"cache", "microsecond/sub-millisecond reads", "offload reads", "Redis or Memcached"

Work scenarios in this order. First, classify the data: structured tables with relationships means relational; key-value items at huge scale means DynamoDB; a speed layer for existing data means in-memory. Second, check the operational ask: "no servers to manage" leans DynamoDB or Aurora Serverless; "full control and OS access" leans EC2-hosted. Third, scan for a migration angle: moving data means DMS, converting between engines adds SCT.

Finally, keep one-line recognition ready for the rest of the portfolio: MemoryDB (durable Redis-compatible primary) and Neptune (graph). CLF-C02 will not make you configure any of these — it only asks you to identify the right one, and the trigger words in the table do exactly that.

Tip. CLF-C02 tests this topic almost entirely through matching: a scenario describes the data shape or requirement — structured tables with SQL joins, key-value items at massive scale with millisecond latency, or microsecond cached reads — and you pick relational (RDS/Aurora), NoSQL (DynamoDB), or in-memory (ElastiCache). Expect at least one RDS-versus-DynamoDB discrimination and one trade-off item on self-managed databases on EC2 (full control, you do the patching) versus managed services (AWS handles operations). Migration items hinge on the DMS/SCT pairing: DMS moves data with the source live, SCT converts schemas, and cross-engine migrations need both.

Key takeaways
  • Database on EC2 = full control (any engine/version, OS access) but you patch, back up, and scale it; managed services shift that work to AWS.
  • Amazon RDS = managed relational service for MySQL, PostgreSQL, MariaDB, SQL Server, and Oracle; Multi-AZ is for availability, read replicas are for read scaling.
  • Amazon Aurora = MySQL/PostgreSQL-compatible RDS engine with higher performance and storage replicated across three AZs; Aurora Serverless auto-scales capacity.
  • Amazon DynamoDB = serverless NoSQL key-value/document database with single-digit millisecond latency at any scale — no instances to manage.
  • "SQL, joins, transactions" = RDS/Aurora; "key-value, flexible schema, any scale" = DynamoDB.
  • Amazon ElastiCache = managed Redis/Memcached for caching and session stores; MemoryDB = Redis-compatible durable primary database.
  • AWS DMS moves the data with the source still live; AWS SCT converts schema and code between different engines.
  • Same-engine migration = DMS alone; cross-engine (heterogeneous) migration = SCT first, then DMS.

Frequently asked questions

What is the difference between RDS and DynamoDB?

Amazon RDS is a managed relational database service: data lives in structured tables with a fixed schema, and you query it with SQL, including joins and transactions. It runs engines like MySQL, PostgreSQL, MariaDB, SQL Server, and Oracle on instances you size. Amazon DynamoDB is a serverless NoSQL database: items are stored as key-value pairs or documents with a flexible schema, there are no instances to manage, and it delivers single-digit millisecond latency at any scale. Choose RDS for structured, relational data and existing SQL applications; choose DynamoDB for massive-scale, key-based workloads like session data, gaming state, and IoT.

What is Amazon Aurora and how is it different from RDS?

Amazon Aurora is a relational database engine that AWS built for the cloud, offered within the RDS family. It is compatible with MySQL and PostgreSQL, so applications written for those engines usually work unchanged, but AWS redesigned the storage layer: data is automatically replicated across three Availability Zones, and Aurora delivers several times the throughput of standard MySQL or PostgreSQL. Aurora Serverless adds automatic capacity scaling for variable workloads. Standard RDS is the answer when you need engines Aurora does not support — SQL Server, Oracle, or MariaDB — or a straightforward managed relational database.

When should you run a database on EC2 instead of using RDS?

Run a database on EC2 when you need full control: a database engine or version that RDS does not offer, operating-system access, custom OS-level agents, or configuration options a managed service restricts. The trade-off is that you become the administrator — you install, patch, back up, secure, and scale the database yourself. Choose RDS when reducing operational overhead matters more than low-level control, because AWS handles provisioning, patching, automated backups, and high-availability options like Multi-AZ for you.

What is Amazon ElastiCache used for?

Amazon ElastiCache is AWS's managed in-memory data store, running the open-source Redis and Memcached engines. Because data is held in memory, reads take microseconds to sub-milliseconds. Its most common role is caching: it sits in front of a slower disk-based database such as RDS, serving frequently accessed data so the database handles fewer reads, which improves application latency and can lower cost. It is also widely used for web session stores and real-time leaderboards. For a Redis-compatible in-memory database used as a durable primary data store, AWS offers Amazon MemoryDB instead.

What is the difference between AWS DMS and AWS SCT?

AWS Database Migration Service (DMS) moves the data: it migrates and continuously replicates databases to AWS while the source database stays fully operational, minimizing downtime. AWS Schema Conversion Tool (SCT) converts the schema and database code — tables, stored procedures, functions — from one engine's format to another's. For a homogeneous migration between the same engine, such as MySQL to RDS for MySQL, DMS alone is enough. For a heterogeneous migration between different engines, such as Oracle to Aurora PostgreSQL, you run SCT first to convert the schema, then DMS to migrate the data.

Is DynamoDB serverless?

Yes. Amazon DynamoDB is fully serverless: there are no database instances or servers for you to provision, patch, resize, or manage. You create a table and AWS runs all the underlying infrastructure invisibly, scaling capacity with demand and charging for the throughput and storage you actually use. This distinguishes it from Amazon RDS, where you still select and manage instance classes even though AWS operates them. Within the relational family, Aurora Serverless offers a comparable no-instance-management experience by automatically scaling database capacity up and down with load.

Test yourself on this topic
Practice questions with full explanations.
Practice now

Sign up free to mark lessons complete, bookmark topics and track your exam readiness.