A company is migrating a legacy monolithic application to a microservices architecture on AWS. The application currently uses an Oracle database with complex stored procedures. The company wants to minimize changes to the application code during migration. Which database migration strategy should the company use?
Migrating to RDS for Oracle preserves the existing SQL dialect and stored procedures, minimizing code changes while leveraging managed database services.
Why this answer
Option D is correct because the company wants to minimize changes to the application code during migration. By replatforming the Oracle database to Amazon RDS for Oracle, the application can continue to use the same Oracle database engine, stored procedures, and SQL dialect with minimal or no code changes. This approach avoids the need to rewrite complex stored procedures or adapt to a different database engine, which would be required with other migration strategies.
Exam trap
The trap here is that candidates may assume any AWS-managed database service (like Aurora or DynamoDB) is automatically better, overlooking the critical requirement to minimize code changes by keeping the same database engine.
How to eliminate wrong answers
Option A is wrong because migrating to Amazon Aurora with PostgreSQL compatibility would require rewriting complex Oracle-specific stored procedures (e.g., PL/SQL) to PostgreSQL-compatible code (PL/pgSQL), which contradicts the requirement to minimize application code changes. Option B is wrong because storing data in Amazon S3 and using Athena for querying is not suitable for transactional workloads with complex stored procedures; Athena is designed for serverless ad-hoc querying of data lakes, not for OLTP operations with stored procedures. Option C is wrong because refactoring the application to use Amazon DynamoDB would require significant application code changes, including replacing SQL queries and stored procedures with NoSQL API calls, which violates the goal of minimizing changes.