If you choose the wrong database for your application, your website could grind to a halt, your users' data could get lost, and your costs could spiral out of control. That is why understanding AWS Core Database Services is essential for passing the CLF-C02 exam and for any real-world cloud role. This chapter will demystify the different database options AWS offers, helping you match the right tool to the right job.
Jump to a section
A busy office with six different filing cabinets, each designed for a specific type of document.
Your friend works in a chaotic office where every document is shoved into a single bulging filing cabinet. Finding a client contract means flipping through recipes, tax forms, and sticky notes. You decide to organise it properly. You buy three different cabinets. One has labelled folders for structured data like employee records and invoices — this is like a relational database where every row has the same columns. Another cabinet is a deep drawer where you toss unstructured notes, photos, and scribbles in any order — this is like a NoSQL database that stores documents with flexible schemas. A third cabinet is a small lockbox sitting on a desk, holding only the most frequently accessed data like active client phone numbers — this is a cache, which provides incredibly fast retrieval. A fourth cabinet is on wheels and rolls between offices, handling data that moves through different steps of a workflow. For company-wide announcements, you use a whiteboard that everyone sees instantly — this is an in-memory data store. Finally, the entire office has a shared database of employee birthdays
The key insight is that you choose the cabinet based on what you are storing and how you need to access it. Using the wrong cabinet makes the office run slowly and messily. IT professionals make exactly these choices in the cloud.
A database is simply a place where you store data in a structured way so that you can find it again later. Think of it as a highly organised digital filing cabinet. Before databases, people stored data in flat files — like a giant spreadsheet with no rules. This made it hard to find information, easy to make mistakes, and almost impossible for multiple people to update the same file without causing chaos. Databases solved this by providing a system to store, retrieve, and manage data efficiently.
AWS offers several different database services because no single type of database is perfect for every job. The main categories you need to know for the CLF-C02 exam are relational databases, NoSQL databases, caching services, and data warehousing.
First, relational databases. These are the traditional and most well-known type. They store data in tables with rows and columns, like a spreadsheet. Each row is a record (e.g., one customer), and each column is a field (e.g., customer name, address, phone number). The key feature is that tables can be linked, or 'related', to each other using keys. For example, a table of customers can be linked to a table of orders. This structure enforces consistency and is great for applications that need strict data accuracy, like banking systems. The language used to talk to a relational database is called SQL (Structured Query Language). AWS's main relational database service is Amazon RDS (Relational Database Service). RDS lets you set up, operate, and scale a relational database in the cloud without managing the underlying hardware. It supports several database engines you can choose from: Amazon Aurora (AWS's own high-performance engine), MySQL, PostgreSQL, MariaDB, Oracle, and Microsoft SQL Server.
Second, NoSQL databases. 'NoSQL' means 'not only SQL'. These databases are designed for specific use cases where relational databases struggle, such as handling huge volumes of rapidly changing data, or storing data that does not have a fixed structure (like user profiles that can have different fields). Instead of tables, NoSQL databases might store data as key-value pairs (like a giant dictionary), documents (like a JSON file), or graphs. AWS's primary NoSQL service is Amazon DynamoDB. DynamoDB is a fully managed, serverless, key-value and document database that delivers single-digit millisecond performance at any scale. It is perfect for applications like gaming leaderboards, shopping carts, and internet-of-things (IoT) data.
Third, caching services. A cache is a temporary, high-speed data store that sits in front of your main database. It stores copies of frequently accessed data so that when an application needs that data again, it can retrieve it from the fast cache instead of querying the slower main database. This dramatically reduces latency and lowers the load on your main database. AWS offers Amazon ElastiCache for this purpose. It supports two popular caching engines: Redis and Memcached.
Fourth, data warehousing. This is a specialised type of database designed for analysing massive amounts of historical data, not for running the day-to-day operations of an application. A data warehouse pulls data from multiple sources (e.g., your relational database, your sales system, your website logs) and organises it for complex queries and reports. AWS's data warehousing service is Amazon Redshift. It uses columnar storage and parallel processing to run complex analytical queries very quickly.
Finally, it is important to understand the concept of 'fully managed'. When AWS says a service is fully managed, it means AWS takes care of all the underlying infrastructure, maintenance, patching, backups, and hardware provisioning. You just use the database. This is a key selling point of cloud databases and a major topic in the exam.
Identify the Data Shape
First, determine whether your data is structured (fixed fields like name, date, amount), semi-structured (like a JSON document with varying fields), or unstructured (like images or videos). This decision points you towards a relational database (structured) or a NoSQL database (flexible).
Analyse Access Patterns
Ask yourself: How will this data be read and written? Is it a high-traffic key-value lookup (e.g., shopping cart)? Use DynamoDB. Does it require complex joins and reports? Use RDS or Redshift. Will the same data be read millions of times per second? Consider adding ElastiCache in front.
Evaluate Consistency and Transaction Requirements
If your application absolutely cannot tolerate any data inconsistency (e.g., a bank transfer), you need a relational database with ACID properties (Atomicity, Consistency, Isolation, Durability) like those offered by RDS. If eventual consistency is acceptable, DynamoDB is a faster and more scalable option.
Choose Your AWS Service
Based on steps 1-3, select the AWS service: Amazon RDS (or Aurora) for relational, Amazon DynamoDB for NoSQL, Amazon ElastiCache for caching, or Amazon Redshift for data warehousing. Remember that you can use multiple services together for different parts of the same application.
Configure for High Availability and Performance
Once you have chosen a service, configure it for your reliability needs. For RDS, decide between Multi-AZ (for high availability) and Read Replicas (for better read performance). For DynamoDB, choose between provisioned capacity (for steady traffic) and on-demand capacity (for unpredictable traffic). These configuration choices are common exam topics.
Imagine you are an IT professional at a company called 'ShopFast', an online retailer. Your boss wants you to redesign the company's application architecture to handle a big holiday sale. You need to choose the right AWS database services for each part of the application.
First, you consider the product catalogue. The catalogue contains millions of items, each with a fixed set of fields: product ID, name, description, price, and category. This data is highly structured and you need to ensure that every product has a price. The product catalogue will be queried by customers browsing the site. This is a textbook use case for a relational database. You choose Amazon RDS running MySQL because it is cost-effective and well-understood by your team. You set up Multi-AZ (Availability Zone) deployment, which means the database is automatically replicated across two different data centres in the same region for high availability. If one data centre fails, the database fails over to the replica without you having to do anything.
Next, you need to handle the shopping cart. When a customer adds an item to their cart, that data needs to be saved so it persists even if they close their browser. The shopping cart data is simple: a user ID and a list of product IDs. It needs to be extremely fast, because every page load checks the cart. This is a perfect job for a NoSQL key-value store. You choose Amazon DynamoDB. It can handle millions of requests per second during the sale without any tuning. You set up 'on-demand' capacity mode, which means you pay per request and the service automatically scales up and down, perfect for a surge in traffic.
Third, you think about the product recommendation engine. This engine analyses past purchases and browsing history. It runs complex analytical queries on terabytes of data. This is not something you want running on your main product catalogue database, as it would slow the site down for customers. You choose Amazon Redshift for this. You set up a data pipeline that regularly copies transaction data from RDS and DynamoDB into Redshift. The data analysts can then run complex SQL queries there without affecting the live site.
Finally, you consider the session data. Every time a user logs in, a temporary session is created. This session data is accessed on almost every page request. Instead of querying DynamoDB or RDS every time, which adds latency, you use Amazon ElastiCache. You store the active user sessions in ElastiCache with Redis. Now, when a user clicks a link, the application looks up their session in the cache. If found, it's lightning fast. If not (cache miss), it queries the main database and then stores the result in the cache for next time.
The entire setup works seamlessly during the sale. By choosing the right database service for each specific job, you kept the website fast, the costs manageable, and the data safe. This is exactly the kind of decision-making the CLF-C02 exam tests.
The CLF-C02 exam devotes a significant portion of the 'Technology' domain to AWS database services. You will not be asked to write SQL queries or configure complex settings. Instead, the exam tests your ability to match a use case to the correct AWS database service. The questions are scenario-based.
You will see a short story describing a business requirement, and you must pick the best database service from a list. The exam loves to create 'trap' answer options by listing services that sound plausible but are wrong. Here are the key topics you must master:
Use-case matching: This is the most common question type. For example: 'A company needs to store employee records in a structured way with strict consistency. Which service should they use?' The correct answer is Amazon RDS. A trap might be DynamoDB, because both can store data, but the phrase 'structured way with strict consistency' points to a relational database.
Differences between RDS and DynamoDB: You must know that RDS is for relational (SQL) data and DynamoDB is for NoSQL (key-value/document) data. A classic trap question describes a workload with unpredictable traffic that needs to scale automatically. The best choice is DynamoDB (especially on-demand capacity), not RDS, because RDS requires you to provision capacity ahead of time.
Differences between RDS and Amazon Aurora: Aurora is a specific relational database engine that is compatible with MySQL and PostgreSQL but offers much higher performance and availability. The exam might ask: 'Which relational database offers the best performance and availability on AWS?' The answer is Amazon Aurora. A trap is to answer 'Amazon RDS', which is the category, not the specific engine.
Differences between caching and main storage: A common scenario describes 'frequently accessed data that needs to be retrieved with the lowest possible latency.' The answer is ElastiCache (a cache), not a database. A trap is to choose DynamoDB because it is fast, but ElastiCache is faster because it is an in-memory cache.
Differences between Amazon Redshift and RDS: Redshift is for data warehousing and analytics on large volumes of historical data. RDS is for transactional (OLTP) workloads for day-to-day operations. A question might describe a company that wants to run complex analytical queries on years of sales data. The answer is Redshift. A trap is RDS, but RDS is not optimised for analytical queries at that scale.
Key concepts to memorise: 'Fully managed' means AWS handles the infrastructure. 'Multi-AZ' means high availability and automatic failover for RDS. 'Read replicas' improve read performance, not write performance. 'DynamoDB Accelerator (DAX)' is an in-memory cache for DynamoDB that makes it even faster. 'On-demand capacity' for DynamoDB means you pay per request and it scales automatically, which is ideal for unpredictable traffic.
The exam will also test your understanding of 'Serverless'. Amazon DynamoDB is serverless. Amazon Aurora Serverless is also a serverless option for relational databases. 'Serverless' means you do not manage or provision servers; AWS runs the service for you and you pay only for the resources you consume.
Amazon RDS is used for relational (SQL) databases needing complex queries and strict data consistency, such as banking systems and ERP software.
Amazon DynamoDB is a NoSQL key-value and document database that delivers single-digit millisecond performance at any scale, ideal for serverless web apps and gaming.
Amazon ElastiCache is an in-memory caching service that reduces latency by storing frequently accessed data from your main database.
Amazon Redshift is a data warehouse optimised for running complex analytical queries on petabytes of historical data, not for day-to-day transactions.
A fully managed database service like RDS means AWS handles hardware provisioning, patching, backups, and failover, so you focus only on your data.
For workloads with unpredictable traffic, choose DynamoDB with on-demand capacity mode or Aurora Serverless, as they automatically scale without manual intervention.
These come up on the exam all the time. Here's how to tell them apart.
Amazon RDS
Stores data in structured tables with rows and columns
Uses SQL for complex queries and joins
Best for transactions requiring strict consistency (ACID)
Amazon DynamoDB
Stores data as key-value pairs or documents (flexible schema)
Uses API calls for simple queries, no joins
Best for high-scale, low-latency applications (eventual consistency)
Amazon RDS (Multi-AZ)
Creates a synchronous standby replica in another AZ
Provides automatic failover for high availability
Does not improve read performance
Amazon RDS (Read Replicas)
Creates asynchronous copies of the database
Used to offload read traffic for better performance
Does not provide automatic failover
Amazon ElastiCache
An in-memory cache, not a persistent data store
Data is temporary and can be lost on failure
Used to reduce latency for frequently accessed data
Amazon DynamoDB
A persistent NoSQL database
Data is durably stored across multiple devices
Used as the primary data store for an application
Amazon RDS (OLTP)
Optimised for many small transactions (read/write)
Uses row-based storage
Used for day-to-day application operations
Amazon Redshift (OLAP)
Optimised for complex analytical queries on large datasets
Uses columnar storage for efficient scanning
Used for business intelligence and reporting
Mistake
Relational databases are always the best choice for any application because they are the most popular.
Correct
Relational databases are excellent for structured data with relationships and strict consistency, but NoSQL databases like DynamoDB are often better for high-traffic, flexible-schema workloads like shopping carts and session management.
Beginners tend to default to the familiar (relational) without understanding that different data shapes and access patterns demand different tools. The exam specifically tests this discrimination.
Mistake
Amazon DynamoDB and Amazon RDS are interchangeable because they both store data.
Correct
DynamoDB is a NoSQL key-value and document database optimised for massive scale and low latency at the cost of complex querying and joins. RDS is a relational database optimised for complex queries, joins, and strict data integrity.
The names 'database' are similar, so learners lump them together. The exam directly tests the distinctions between SQL and NoSQL.
Mistake
ElastiCache is just another type of database that you use instead of RDS or DynamoDB.
Correct
ElastiCache is a cache, not a primary data store. It is used alongside a database to speed up access to frequently requested data. Data in ElastiCache is temporary and can be lost if the cache node fails.
The term 'data store' blurs the line between a persistent database and a volatile cache. Learners fail to understand that a cache complements a database, it does not replace it.
Mistake
Amazon Redshift is just a bigger, faster version of RDS.
Correct
Redshift is a data warehouse designed for online analytical processing (OLAP) on massive datasets. RDS is for online transaction processing (OLTP) for day-to-day operations. They have different storage architectures and are used for different purposes.
Both use SQL, which makes beginners assume they are the same. The exam tests understanding of the OLTP vs. OLAP distinction.
Mistake
Setting up Multi-AZ on RDS will automatically improve the read performance of my queries.
Correct
Multi-AZ provides high availability and automatic failover by maintaining a standby replica in another Availability Zone. You do not use the standby for reads. To improve read performance, you need to create Read Replicas instead.
Learners hear 'replica' and assume it is used for reads. They do not understand the specific purpose of each configuration.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
Amazon RDS is a relational database service that stores data in tables with strict schemas and allows complex SQL queries and joins. Amazon DynamoDB is a NoSQL database that stores data as key-value pairs or documents, offering extreme scale and low latency but with simpler query capabilities.
You use ElastiCache as a cache, not as a primary database. Use it to store copies of frequently accessed data (like user sessions or product recommendations) to reduce latency and offload reads from your main database. Data in ElastiCache is temporary, so you always keep the original copy in your main database.
Amazon Aurora is a relational database engine available within Amazon RDS. It is fully compatible with MySQL and PostgreSQL but offers much higher performance (up to 5x) and availability (up to 99.99%) than standard MySQL or PostgreSQL on RDS. It is designed for enterprise-grade workloads.
Standard Amazon RDS is not serverless because you have to select an instance type and provision storage. However, Amazon Aurora Serverless (a version of Aurora) is serverless, meaning it automatically starts up, scales, and shuts down based on your application's needs, so you only pay for what you use.
Multi-AZ is for high availability: it creates a standby replica in another Availability Zone that automatically takes over if the primary fails. Read Replicas are for improving read performance: they create one or more copies of your database that you can route read traffic to, but they do not provide automatic failover.
DynamoDB is not optimised for complex analytical queries on large historical datasets. For that job, you should use Amazon Redshift, a data warehouse designed to run complex SQL queries on petabytes of data. DynamoDB is best for real-time transactional workloads.
You've just covered AWS Core Database Services — now see how well it sticks with free CLF-C02 practice questions. Full explanations included, no account needed.
Done with this chapter?