An enterprise is designing a deployment strategy for a high-throughput financial transaction processing application that uses a proprietary TCP-based protocol. The application runs on Amazon EC2 instances within an Auto Scaling group and is exposed via a Network Load Balancer (NLB) in the `us-east-1` Region.
The company needs to implement a canary deployment strategy for new releases. The strategy must route of the production traffic to the new version (Green) while keeping on the current version (Blue). If the new version meets key performance indicators (KPIs) over a -hour monitoring window, all traffic must be routed to it. If any anomalies are detected, the deployment must support an instantaneous rollback to the Blue version without waiting for DNS records to expire, as client applications are known to ignore DNS Time to Live (TTL) settings and cache IP addresses indefinitely.
Which deployment strategy meets these requirements with the least operational complexity?
- Deploy the new version of the application in a separate Auto Scaling group behind a new NLB. Configure an AWS Global Accelerator accelerator with a single endpoint group in `us-east-1`. Add both the Blue NLB and the Green NLB as endpoints in the endpoint group. Set the endpoint weight for the Blue NLB to and the Green NLB to . After the -hour monitoring window, update the weights to for Blue and for Green. If a rollback is needed, immediately set the Green NLB weight to .Cevap
- BCreate a second target group containing the new EC2 instances. Configure the existing NLB listener to use weighted target group routing, directing of the traffic to the original target group and to the new target group. After the -hour monitoring window, update the listener to route of the traffic to the new target group. If a rollback is needed, revert the listener routing weights.
- CDeploy the new version in a separate Auto Scaling group behind a new NLB. In Amazon Route 53, create two weighted alias records pointing to the DNS names of the Blue and Green NLBs, with weights of and respectively. After the -hour monitoring window, change the weights to and . If a rollback is needed, set the Green NLB weight to .
- DCreate an AWS CodeDeploy deployment group for the EC2 Auto Scaling group. Configure the deployment to use a CodeDeploy blue/green deployment with an NLB. Select the predefined `CodeDeployDefault.OneAtATime` traffic shifting configuration, and configure a custom deployment lifecycle hook to test of the traffic over hours before shifting the remaining traffic.