SAP-C02 practice question 5 of 35

A company plans to migrate a legacy on-premises application to AWS. The application is a Java web application that runs on Apache Tomcat with a…

Full set: 689 questions

Domain Design Solutions for Organizational Complexity

A company plans to migrate a legacy on-premises application to AWS. The application is a Java web application that runs on Apache Tomcat with a PostgreSQL database. The company does not have access to the source code but can deploy the application Java Archive (JAR) files. The application has increased traffic at the end of each month. Which solution will meet these requirements with the LEAST operational overhead?
Answer options
A: Launch Amazon EC2 instances in multiple Availability Zones. Deploy Tomcat and PostgreSQL to all the instances by using Amazon EFS mount points. Use AWS Step Functions to deploy additional EC2 instances to scale for increased traffic.
B: Provision Amazon EKS in an Auto Scaling group across multiple AWS Regions. Deploy Tomcat and PostgreSQL in the container images. Use a Network Load Balancer to scale for increased traffic.
C: Refactor the Java application into Python-based containers. Use AWS Lambda functions for the application logic. Store application data in Amazon DynamoDB global tables. Use AWS Storage Gateway and Lambda concurrency to scale for increased traffic.
D: Use AWS Elastic Beanstalk to deploy the Tomcat servers with auto scaling in multiple Availability Zones. Store application data in an Amazon RDS for PostgreSQL database. Deploy Amazon CloudFront and an Application Load Balancer to scale for increased traffic. Correct answer
Correct Answer:
D. Use AWS Elastic Beanstalk to deploy the Tomcat servers with auto scaling in multiple Availability Zones. Store application data in an Amazon RDS for PostgreSQL database. Deploy Amazon CloudFront and an Application Load Balancer to scale for increased traffic.
Explanation

This solution provides the lowest operational overhead by leveraging AWS managed services. AWS Elastic Beanstalk is a Platform as a Service (PaaS) that automates the deployment, scaling, and management of the Java/Tomcat application directly from the JAR file. It automatically provisions necessary resources, including an Application Load Balancer and an Auto Scaling group across multiple Availability Zones to handle traffic spikes. Amazon RDS for PostgreSQL offloads database administration tasks like patching, backups, and scaling. This combination directly addresses all requirements (Java/Tomcat, PostgreSQL, no source code, scaling) with minimal management effort.

Why Incorrect

A. This manual IaaS approach requires significant operational overhead for configuring EC2 instances, software, and a complex scaling mechanism using Step Functions.
B. Amazon EKS has a higher operational learning curve and management overhead than Elastic Beanstalk. Running a stateful database in a container adds further complexity.
C. This option is invalid because refactoring the application is not possible without access to the source code, a key constraint mentioned in the scenario.

References

1. AWS Elastic Beanstalk Developer Guide: "AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker... You can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring." (Source: AWS Documentation, What is AWS Elastic Beanstalk?)

2. AWS Documentation - Deploying Java applications to Elastic Beanstalk: "For Java web applications, you can deploy source bundles in a web application archive (.war file) or a Java archive (.jar file)." This confirms the ability to deploy the application without source code. (Source: AWS Elastic Beanstalk Developer Guide, Deploying Java applications to Elastic Beanstalk)

3. Amazon RDS User Guide: "Amazon RDS is a managed relational database service... It frees you to focus on your applications by managing time-consuming database administration tasks including backups, software patching, monitoring, scaling and replication." This supports using RDS for PostgreSQL to minimize overhead. (Source: AWS Documentation, What is Amazon RDS?)

4. AWS Whitepaper - An Overview of AWS Cloud for Java Developers: This paper discusses various migration paths, highlighting Elastic Beanstalk as a suitable option for developers who want to deploy and manage applications in the AWS Cloud without worrying about the infrastructure that runs those applications. (Source: AWS Whitepapers & Guides, An Overview of AWS Cloud for Java Developers, Page 10)

Scroll to Top