AWS Certified DevOps Engineer – Professional (DOP-C02) — Question 342
A company used a lift and shift strategy to migrate a workload to AWS. The company has an Auto Scaling group of Amazon EC2 instances. Each EC2 instance runs a web application, a database, and a Redis cache.
Users are experiencing large variations in the web application's response times. Requests to the web application go to a single EC2 instance that is under significant load. The company wants to separate the application components to improve availability and performance.
Which solution will meet these requirements?
Answer options
- A. Create a Network Load Balancer and an Auto Scaling group for the web application. Migrate the database to an Amazon Aurora Serverless database. Create an Application Load Balancer and an Auto Scaling group for the Redis cache.
- B. Create an Application Load Balancer and an Auto Scaling group for the web application. Migrate the database to an Amazon Aurora database that has a Multi-AZ deployment. Create a Network Load Balancer and an Auto Scaling group in a single Availability Zone for the Redis cache.
- C. Create a Network Load Balancer and an Auto Scaling group for the web application. Migrate the database to an Amazon Aurora Serverless database. Create an Amazon ElastiCache (Redis OSS) cluster for the cache. Create a target group that has a DNS target type that contains the ElastiCache (Redis OSS) cluster hostname.
- D. Create an Application Load Balancer and an Auto Scaling group for the web application. Migrate the database to an Amazon Aurora database that has a Multi-AZ deployment. Create an Amazon ElastiCache (Redis OSS) cluster for the cache.
Correct answer: D
Explanation
An Application Load Balancer (ALB) is the best choice for routing HTTP/HTTPS web application traffic across an Auto Scaling group. Migrating the database layer to an Amazon Aurora Multi-AZ deployment ensures high availability and performance, while moving the cache to a dedicated Amazon ElastiCache (Redis OSS) cluster offloads caching overhead from the EC2 instances. Other options are incorrect because they use Network Load Balancers for HTTP traffic or propose inefficient architectures for managing Redis.