Q: 17
A company is using AWS CodePipeline for the CI/CD of an application to an Amazon EC2 Auto Scaling group. All AWS resources are defined in AWS CloudFormation templates. The application artifacts are stored in an Amazon S3 bucket and deployed to the Auto Scaling group using instance user data scripts. As the application has become more complex, recent resource changes in the CloudFormation templates have caused unplanned downtime. How should a solutions architect improve the CI/CD pipeline to reduce the likelihood that changes in the templates will cause downtime?
Options
Discussion
B is the stronger answer since it brings in CloudFormation change sets for safe previews plus blue/green deployment with CodeDeploy, which really minimizes downtime. Automated testing with CodeBuild helps catch stuff early too. Pretty sure that's what AWS wants here, but let me know if someone thinks otherwise.
C
I think C looks good because it adds in validation steps using the IDE and CLI checks, so errors in CloudFormation could be caught early. Manual test plan before production is pretty common too. The trap is not catching that B's blue/green is more robust, but manual checks seem safer for complex apps.
Does the question specify if manual approval is required before production, or just automation? If manual approval is mandatory, C might fit better, but if not, B makes more sense.
Be respectful. No spam.