Posted On: May 1, 2020
Amazon Elastic Container Registry (ECR) now supports manifest lists to increase choice of different CPU architectures and operating systems you can use in container applications, for example by adding AWS Graviton ARM instances to existing clusters. Using manifest lists, you can store image variants for different hardware architectures such as x86 and ARM, and operating systems such as Linux and Windows as a single container image in ECR. Clients like docker can then automatically pull the right image variant for each architecture and operating system when starting containers. This helps simplify your build and deploy workflow as you use a single image and tag instead of embedding per-architecture image references throughout your CI/CD scripts.
Container images are often built for specific environments, for example Linux with x86, Linux with ARM and Windows with x86. This lets your application take advantage of platform-specific features or when your application needs a particular operating system to run. Previously, you would have to pull each image and tag variant directly which resulted in per-platform task definitions and node configurations. This added complexity when running containers across a combination of operating systems and architectures and reduced your flexibility in using different CPU architectures in the same application cluster. Now with ECR manifest list support, you can push a single image manifest with references to many image variants and use this one image for compute clusters with different architectures and operating systems. ECR supports manifest lists as specified in the Open Container Initiative (OCI) Image Index and the Docker Image Manifest v2.