Question 3
Domain 1: SDLC AutomationA company has a stateless web application that is deployed on Amazon EC2 instances. The EC2 instances are in a target group behind an Application Load Balancer (ALB). Amazon Route 53 manages the application domain. The company updates the application UI and develops a beta version of the application. The company wants to test the beta version on 10% of its traffic. Which solution will meet these requirements with the LEAST number of configuration changes?
Correct answer: B
Explanation
Application Load Balancer listener rules support weighted target groups, letting one listener route a percentage of traffic to each target group. By placing the beta on a new target group and assigning weights of "90" and "10," the ALB sends 10% of requests to the beta while keeping the same Route 53 domain and minimizing changes.
Why each option is right or wrong
A. Deploy the beta version to new EC2 instances in a new target group. Associate the new target group with a new ALB. Update the existing Route 53 record to use a weighted routing policy. Add a new Route 53 record that points to the new ALB with the same routing policy. Assign a weight of 90 to the existing record. Assign a weight of 10 to the new record.
Adds a second ALB and Route 53 weighted records, creating unnecessary DNS-level changes.
B. Deploy the beta version to new EC2 instances in a new target group. Associate the new target group with the same ALB listener rule. Assign a weight of 90 to the existing target group. Assign a weight of 10 to the new target group.
Application Load Balancer listener rules support forward actions with weighted target groups, allowing traffic to be split by percentage without changing the Route 53 record or creating a second load balancer. In this case, attaching the beta instances to a new target group and setting weights of 90 and 10 on the same listener rule sends approximately 10% of requests to the beta while preserving the existing domain and requiring only one additional target group and rule update.
C. Refactor the application to implement a feature flag for the beta version by using AWS AppConfig. Use the feature flag to enable the beta version for 10% of the EC2 instances.
Feature flags control code paths, not straightforward request-level traffic splitting between application versions.
D. Containerize and deploy the application on Amazon Elastic Container Service (Amazon ECS). Use AWS CodeDeploy to deploy the beta version by using the CodeDeployDefault.ECSCanary10Percent15Minutes deployment configuration.
Requires replatforming to containers and ECS, far more change than needed for this test.