What is AWS EC2 Image Builder?
Today we will discuss AWS EC2 image builder, a fully managed AWS service to build, test and manage EC2 and docker images in AWS.
What is AWS image builder?
EC2 Image Builder is a fully managed AWS service that makes it easier to automate the creation, management, and deployment of customized, secure, and up-to-date server images that are pre-installed and pre-configured with software and settings to meet specific IT standards. The images you build are created in your account and you can configure them for operating system patches on an ongoing basis.
Along with a final image, Image Builder creates an image recipe, which is a combination of the source image and components for building and testing. You can use the image recipe with existing source code version control systems and continuous integration/continuous deployment pipelines for repeatable automation.
AWS Image builder supported operating systems:
Image Builder supports the following operating systems:
- Amazon Linux 2
- Windows Server 2019/2016/2012 R2
- Windows Server version 2004, and 20H2
- Red Hat Enterprise Linux (RHEL) 8 and 7
- CentOS 8 and 7
- Ubuntu 20, 18, and 16
- SUSE Linux Enterprise Server (SUSE) 15
Components of AWS Image builder:
An Amazon Machine Image (AMI) is a pre-configured virtual machine image that contains the operating system (OS) and preinstalled software to deploy EC2 instances and is one of the types of images you can create with Image Builder.
An image pipeline provides an automation framework for building secure AMIs and container images on AWS. The Image Builder image pipeline is associated with an image recipe or container recipe that defines the build, validation, and test phases for an image build lifecycle.
A managed image is a resource in Image Builder that consists of an AMI or container image, plus metadata, such as version and platform. The managed image is used by Image Builder pipelines to determine which base image to use for the build.
An Image Builder image recipe is a document that defines the base image and the components that are applied to the base image to produce the desired configuration for the output AMI image.
An Image Builder container recipe is a document that defines the base image and the components that are applied to the base image to produce the desired configuration for the output container image.
The base image is the selected image and operating system used in your image or container recipe document, along with the components. The base image and the component definitions combined produce the desired configuration for the output image.
A component defines the sequence of steps required to either customize an instance prior to image creation (a build component), or to test an instance that was launched from the created image (a test component).
A declarative, plain-text YAML or JSON document that describes the configuration for customization you can apply to your image. The document is used to create a build or test component.
EC2 Image Builder has two runtime stages: build and test. Each runtime stage has one or more phases with configuration defined by the component document.
The following list shows the phases that run during the build and test stages:
- Build phase: An image pipeline begins with the build phase of the build stage when it runs. The base image is downloaded, and the configuration that is specified for the build phase of the component is applied to build and launch an instance.
- Validate phase: After the instance is launched and all of the build phase customizations are applied, the validation phase begins. During the validation phase, Image Builder validates that customizations are applied successfully, based on configuration that is specified for the validate phase of the component. If the instance validation is successful, the instance is turned off, an image is created, and Image Builder continues to the test stage.
- Test phase: The test stage has only one phase – test. During this phase, an instance is launched from the image that was created after the validation phase completed successfully. Image Builder runs test components during this phase to verify that the instance is healthy, and is functioning as expected.
To get more details on AWS EC2 image builder, please refer to the official AWS documentation