A global manufacturing company operates a critical enterprise resource planning (ERP) application on-premises. The application uses an Oracle database and several Java-based application servers. The company experiences frequent performance issues, high licensing costs, and challenges with disaster recovery planning for the on-premises infrastructure. They want to migrate this application to AWS, aiming for a fully managed, highly available, and resilient solution with reduced operational overhead and lower licensing costs, while minimizing application code changes. Which combination of AWS services should a Solutions Architect recommend?
- AMigrate the Oracle database to Amazon DynamoDB and the application servers to AWS Lambda.
- BMigrate the Oracle database to Amazon Redshift and the application servers to Amazon EKS.
- CMigrate the Oracle database to Amazon RDS for Oracle and the application servers to Amazon EC2 Auto Scaling groups.
- DMigrate the Oracle database to Amazon Aurora PostgreSQL-Compatible Edition and the application servers to AWS Elastic Beanstalk.
Show answer & explanationAnswer & explanation
Correct answer: D. Migrate the Oracle database to Amazon Aurora PostgreSQL-Compatible Edition and the application servers to AWS Elastic Beanstalk.
Migrating the Oracle database to Amazon Aurora PostgreSQL-Compatible Edition (a re-platforming effort) significantly reduces licensing costs and provides a highly available, resilient, and fully managed database. Deploying Java application servers to AWS Elastic Beanstalk offers a fully managed platform for the application layer, reducing operational overhead, providing auto-scaling, and simplifying deployment, while minimizing code changes compared to serverless refactoring.
Why the other options are wrong
- A. DynamoDB is a NoSQL database, requiring significant re-architecture and code changes from a relational Oracle database. AWS Lambda for Java applications would involve extensive refactoring to a serverless model, which goes against 'minimizing application code changes'.
- B. Redshift is a data warehouse, not a transactional database suitable for an ERP application. EKS (Elastic Kubernetes Service) is for container orchestration, which would still require managing the container images and potentially more operational overhead than Elastic Beanstalk for a traditional Java app, and doesn't address the database licensing cost effectively.
- C. RDS for Oracle still incurs Oracle licensing costs (unless using 'License Included'). While it's managed, the goal is 'lower licensing costs', which Aurora PostgreSQL achieves better. EC2 Auto Scaling is good, but Elastic Beanstalk offers more managed services for the application layer.
Managed Application & Database on AWS
Utilizing AWS fully managed services like Amazon Aurora and AWS Elastic Beanstalk to host applications and databases, reducing operational overhead, improving scalability, and often lowering costs.
- Aurora for fully managed, high-performance relational databases.
- Elastic Beanstalk for managed application deployment and scaling.
- Reduces administrative burden (patching, backups, scaling).
- Can significantly lower licensing costs (e.g., migrating from commercial databases).
Memory trick: Transforming your ERP is like upgrading to a 'Self-Driving' car: Aurora handles the engine, Beanstalk handles the road.