You are required to improve the current deployment process by making it easier to deploy and reduce the time it takes.
You need to create a continuous integration (CI) pipeline that can build AMI's.
Your development team will deploy builds less than 5 times a week.
Which of the below is the best to get this done?
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - D.
Since the number of builds is just a few times a week, there are many open source systems such as Jenkins which can be used as CI-based systems.
Jenkins can be used as an extensible automation server, and Jenkins can be used as a simple CI server or turned into the continuous delivery hub for any project.
For more information on the Jenkins CI tool, please refer to the below link:
https://jenkins.io/Option A is incorrect because since you just have less than 5 deployments per week, having a dedicated EC2 instance is not cost-efficient.
Option B is incorrect because having a separate system such as Opswork for such a low number of deployments is not required.
Option C is incorrect because the CreateSnapshot API call does not create AMI but creates an EBS snapshot.
To improve the deployment process and reduce the deployment time, we need to create a continuous integration (CI) pipeline that can build AMIs. Based on the requirements mentioned, we need a solution that is simple, easy to deploy, and efficient for building AMIs.
Option A: Use a dedicated EC2 instance with an EBS Volume. Download and configure the code and then create an AMI. This option involves setting up a dedicated EC2 instance with an EBS volume, downloading and configuring the code on the instance, and then creating an AMI. This option requires manual intervention for each deployment, which is not optimal for a CI pipeline.
Option B: Use OpsWorks to launch an EBS-backed instance, use a recipe to bootstrap the instance, and then have the CI system use the CreateImage API call to create an AMI. This option involves using AWS OpsWorks to launch an EBS-backed instance and bootstrap it with the required code using a recipe. The CI system can then use the CreateImage API call to create an AMI. This option is more automated than Option A and provides an efficient way to build AMIs.
Option C: Upload the code and dependencies to Amazon S3, launch an instance, download the package from Amazon S3, and then create the AMI with the CreateSnapshot API call. This option involves uploading the code and dependencies to Amazon S3, launching an instance, downloading the package from Amazon S3, and creating an AMI using the CreateSnapshot API call. This option is not optimal for a CI pipeline as it requires manual intervention and is not as automated as Option B.
Option D: Have the CI system launch a new instance, bootstrap the code and dependencies on the instance, and create an AMI using the CreateImage API call. Terminate the instance after the build. This option involves the CI system launching a new instance, bootstrapping the code and dependencies on the instance, and creating an AMI using the CreateImage API call. Once the build is complete, the instance is terminated. This option is the most automated and efficient of all the options and is ideal for a CI pipeline.
Based on the requirements mentioned, Option D is the best choice as it is the most automated and efficient of all the options and is ideal for a CI pipeline.