投稿日: May 1, 2020

Amazon Elastic Container Registry (ECR) は、マニフェストリストのサポートを開始しました。これにより、AWS Graviton ARM インスタンスを既存のクラスターに追加するなど、コンテナアプリケーションで使用できるさまざまな CPU アーキテクチャとオペレーティングシステムの選択肢が増えました。マニフェストリストを使用すると、x86 や ARM などのさまざまなハードウェアアーキテクチャのイメージバリアントや、Linux や Windows などのオペレーティングシステムを ECR の単一のコンテナイメージとして保存できます。Docker のようなクライアントは、コンテナを起動するときに、各アーキテクチャとオペレーティングシステムに適したイメージバリアントを自動的にプルできます。これは、CI/CD スクリプト全体にアーキテクチャごとのイメージ参照を埋め込む代わりに単一のイメージとタグを使用するため、ビルドとデプロイのワークフローの簡素化に役立ちます。

多くの場合、コンテナイメージは、Linux (x86)、Linux (ARM)、Windows (x86) などの特定の環境向けに構築されています。これにより、アプリケーションがプラットフォーム固有の機能を利用できるほか、アプリケーションの実行のために特定のオペレーティングシステムが必要な場合に利用することもできます。以前は、各イメージとタグのバリアントを直接プルする必要があり、プラットフォームごとのタスク定義とノード設定が発生していました。これがあることで、オペレーティングシステムとアーキテクチャの組み合わせ全体でコンテナを実行するときに複雑さが増し、同じアプリケーションクラスターで異なる CPU アーキテクチャを使用する際の柔軟性が低下していました。ECR マニフェストリストのサポートにより、多数のイメージバリアントへの参照を含む単一のイメージマニフェストをプッシュし、この 1 つのイメージを異なるアーキテクチャおよびオペレーティングシステムの計算クラスターに使用できます。ECR は、Open Container Initiative (OCI) Image Index と Docker Image Manifest v2 で指定されているマニフェストリストをサポートしています。

ECR のマニフェストリストのサポートは、すべてのパブリック AWS リージョンと AWS GovCloud (米国) で利用可能です。このブログで詳細を確認し、ドキュメントに従ってマルチアーキテクチャイメージを ECR にプッシュしましょう。