
Ultimate access to all questions.
A company is utilizing AWS CodePipeline for continuous integration and continuous deployment (CI/CD) of their application to an Amazon EC2 Auto Scaling group. All AWS resources are defined within AWS CloudFormation templates. The application artifacts are stored in an Amazon S3 bucket and are deployed to the Auto Scaling group using instance user data scripts. As the application's complexity has increased, recent modifications to the CloudFormation templates have resulted in unplanned downtime. What strategy should a solutions architect employ to enhance the CI/CD pipeline and minimize the risk of downtime due to changes in the CloudFormation templates?
A
Modify the deployment scripts to detect and report CloudFormation error conditions during deployments. Develop test plans for a testing team to execute in a non-production environment prior to approving changes for production.
B
Implement automated testing using AWS CodeBuild in a test environment. Utilize CloudFormation change sets to assess changes before deployment. Employ AWS CodeDeploy to leverage blue/green deployment patterns, enabling evaluations and the capability to revert changes if necessary.
C
Utilize plugins for the integrated development environment (IDE) to check the templates for errors, and validate the templates using the AWS CLI. Adjust the deployment code to check for error conditions and generate notifications upon encountering errors. Deploy to a test environment and conduct a manual test plan before approving changes for production.
D
Adopt AWS CodeDeploy and a blue/green deployment pattern with CloudFormation to replace the user data deployment scripts. Have operators log in to running instances and perform a manual test plan to verify that the application is functioning as expected.