Which combination of actions should a DevOps engineer take to implement a more reliable deployment solution?
(Choose two.)
Create a pipeline in AWS CodePipeline that uses the CodeCommit repository as a source provider. Configure pipeline stages that run the CodeBuild project in parallel to build and test the application. In the pipeline, pass the CodeBuild project output artifact to an AWS CodeDeploy action.
Create a pipeline in AWS CodePipeline that uses the CodeCommit repository as a source provider. Create separate pipeline stages that run a CodeBuild project to build and then test the application. In the pipeline, pass the CodeBuild project output artifact to an AWS CodeDeploy action.
Create an AWS CodeDeploy application and a deployment group to deploy the packaged code to the EC2 instances. Configure the ALB for the deployment group.
Create individual Lambda functions that use AWS CodeDeploy instead of Systems Manager to run build, test, and deploy actions.
Create an Amazon S3 bucket. Modify the CodeBuild project to store the packages in the S3 bucket instead of in CodeArtifact. Use deploy actions in CodeDeploy to deploy the artifact to the EC2 instances.
Explanations:
This option suggests running the CodeBuild project in parallel for building and testing, which is good for efficiency, but it does not specify how to handle deployment effectively. It lacks a clear integration with AWS CodeDeploy, which is necessary for managing consistent deployments across multiple EC2 instances.
This option establishes a pipeline in AWS CodePipeline that incorporates building and testing stages before deployment. By passing the output artifact to an AWS CodeDeploy action, it ensures that the latest and tested version of the application is deployed consistently across all EC2 instances, mitigating the risk of defects and inconsistencies.
Creating an AWS CodeDeploy application and deployment group allows for more controlled and consistent deployments to EC2 instances. Configuring the Application Load Balancer (ALB) for the deployment group helps manage traffic during deployments, ensuring that instances are updated correctly without downtime or version inconsistencies.
While using individual Lambda functions for deployment could streamline processes, it does not utilize AWS CodeDeploy effectively. AWS CodeDeploy provides features like rolling updates and deployment tracking, which would not be as efficiently managed through separate Lambda functions. This could lead to deployment inconsistencies.
Storing packages in an S3 bucket instead of CodeArtifact does not enhance the deployment process and does not utilize the capabilities of AWS CodeDeploy. The reliance on S3 would not provide the same integration and version control as CodeArtifact, which is designed for managing artifacts in a deployment pipeline.