Which solution will meet these requirements with the MOST operational efficiency?
Set the deployment configuration in CodeDeploy to LambdaAllAtOnce. Configure automatic rollbacks on the deployment group. Create an Amazon CloudWatch alarm that detects HTTP Bad Gateway errors on API Gateway. Configure the deployment group to roll back when the number of alarms meets the alarm threshold.
Set the deployment configuration in CodeDeploy to LambdaCanary10Percent10Minutes. Configure automatic rollbacks on the deployment group. Create an Amazon CloudWatch alarm that detects HTTP Bad Gateway errors on API Gateway. Configure the deployment group to roll back when the number of alarms meets the alarm threshold.
Set the deployment configuration in CodeDeploy to LambdaAllAtOnce. Configure manual rollbacks on the deployment group. Create an Amazon Simple Notification Service (Amazon SNS) topic to send notifications every time a deployment fails. Configure the SNS topic to invoke a new Lambda function that stops the current deployment and starts the most recent successful deployment.
Set the deployment configuration in CodeDeploy to LambdaCanary10Percent10Minutes. Configure manual rollbacks on the deployment group. Create a metric filter on an Amazon CloudWatch log group for API Gateway to monitor HTTP Bad Gateway errors. Configure the metric filter to invoke a new Lambda function that stops the current deployment and starts the most recent successful deployment.
Explanations:
Setting the deployment configuration toLambdaAllAtOncedeploys the entire application at once, which can cause significant impact if errors occur, affecting all customers immediately. Although it includes automatic rollbacks based on CloudWatch alarms, the immediate deployment strategy is not optimal for minimizing customer impact.
TheLambdaCanary10Percent10Minutesconfiguration allows for a gradual deployment of changes, affecting only a small percentage of users initially. If HTTP Bad Gateway errors are detected, the automatic rollback feature will revert to the last stable version efficiently, minimizing customer impact.
UsingLambdaAllAtOnceagain risks affecting all customers at once. Manual rollbacks mean intervention is required after a failure, which can lead to delays in reverting to a stable version. This option lacks the efficiency needed for rapid recovery.
Although it uses theLambdaCanary10Percent10Minutesdeployment strategy, which is beneficial for reducing customer impact, manual rollbacks require intervention and may introduce delays. The option also involves additional complexity with metric filters and Lambda functions, making it less operationally efficient than automatic rollbacks.