SAP-C02 Practice Question: Accelerate Workload Migration and Modernization
A company is modernizing a legacy monolithic application by decomposing it into microservices. The application currently uses a single relational database. The company wants to migrate to a microservices architecture on AWS and needs to choose appropriate data storage strategies. The company requires that each microservice has its own database to ensure loose coupling and independent scaling. Which two strategies should the company use to achieve this? (Choose two.)
⚠ Common exam trap
The trap here is assuming that separate schemas on a shared database instance provide sufficient isolation; they do not, as the instance remains a shared resource.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Use Amazon Aurora Serverless v2 for each microservice that requires a relational database, with separate clusters per service.
To achieve a database per microservice, each service should have its own dedicated database that matches its data model. Amazon DynamoDB is suitable for key-value and document workloads, while Amazon Aurora Serverless v2 works for relational workloads. Both allow independent scaling and isolation. Using a shared database or non-database services like S3 or ElastiCache does not meet the requirement for loose coupling and independent scaling.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Use Amazon Aurora Serverless v2 for each microservice that requires a relational database, with separate clusters per service.
Why this is correct
Amazon Aurora Serverless v2 automatically scales capacity based on demand and supports relational workloads. Deploying a separate Aurora cluster for each microservice provides database isolation and independent scaling. This aligns with the microservices pattern and allows each service to evolve its schema independently. Aurora Serverless v2 is cost-effective for variable workloads and supports PostgreSQL and MySQL compatibility.
- ✗
Use Amazon S3 for all microservices to store structured data as JSON objects.
Why it's wrong here
Amazon S3 is an object storage service, not a database. While it can store JSON objects, it lacks query capabilities, transactions, and indexing needed for most microservices. Using S3 for structured data would require custom application logic for querying and updating, which is inefficient and error-prone. It does not provide the database features required for microservices.
- ✓
Use Amazon DynamoDB for each microservice that requires a key-value store, with separate tables per service.
Why this is correct
Amazon DynamoDB is a fully managed NoSQL database that supports key-value and document data models. By creating separate tables for each microservice, you achieve data isolation and independent scaling. DynamoDB's on-demand capacity mode handles varying workloads, and its global tables can provide multi-Region replication if needed. This aligns with the microservices principle of database per service.
- ✗
Use a single Amazon RDS for PostgreSQL instance with separate schemas for each microservice.
Why it's wrong here
Using a single RDS instance with separate schemas still couples the microservices at the database level. They share the same instance, which can become a single point of failure and a scaling bottleneck. Changes to the schema or instance configuration can impact multiple services. This approach does not provide the loose coupling and independent scaling required by microservices.
- ✗
Use Amazon ElastiCache for Redis as the primary database for all microservices.
Why it's wrong here
Amazon ElastiCache for Redis is an in-memory caching service, not a durable primary database. While it can be used for caching or session storage, it is not designed for persistent data storage with high durability. Using it as the primary database risks data loss on failure and does not provide the transactional guarantees needed for most microservices.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
This SAP-C02 question is part of Courseiva's 984-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This SAP-C02 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SAP-C02 exam.