CodeBuild マネージドイメージが Amazon Linux 2 かどうかを見分ける方法

CodeBuild マネージドイメージが Amazon Linux 2 かどうかを見分ける方法

2026.06.16

はじめに

製造ビジネステクノロジー部のふじい(大)です。

Amazon Linux 2(以下 AL2)は 2026年6月30日に EOL を迎えます。みなさんもう移行完了していますよね?
私もプロジェクトで使用している Lambda ランタイムを provided.al2 から provided.al2023 に移行しました。

これで移行完了したと思っていたのですが、後日 CodeBuild のプロジェクト設定を見ていたところ、ビルド環境のイメージに amazonlinux2 を含む aws/codebuild/amazonlinux2-x86_64-standard:4.0 が指定されていることに気づきました。

aws/codebuild/amazonlinux2-x86_64-standard:4.0

イメージ名に amazonlinux2 と入っているので「これは AL2 ベースだから移行しないとマズいのでは?」と思ったのですが、調べてみると イメージ名の amazonlinux2 だけでは AL2 かどうかは判別できない ということが分かりました。

今回は CodeBuild マネージドイメージが Amazon Linux 2 かどうかを見分ける方法について紹介します。

結論

amazonlinux2-x86_64-standard:4.0Amazon Linux 2

https://github.com/aws/aws-codebuild-docker-images/blob/master/al/x86_64/standard/4.0/Dockerfile#L12

amazonlinux2-x86_64-standard:5.0 以降は Amazon Linux 2023

https://github.com/aws/aws-codebuild-docker-images/blob/master/al/x86_64/standard/5.0/Dockerfile#L12

イメージ識別子の amazonlinux2 は OS バージョンを表さない

CodeBuild では、ビルド環境のイメージを aws/codebuild/amazonlinux2-x86_64-standard:4.0 のような名前で指定します。これは AWS のドキュメントで「イメージ識別子(image identifier)」と呼ばれているものです。

このイメージ識別子に含まれる amazonlinux2 という文字列だけでは、AL2 かどうかは判別できません。理由は2つあります。

1. 識別子が改称されても旧名はそのまま使える

AWS は 2024年11月22日に、Linux 標準イメージの識別子を amazonlinux2 から amazonlinux へ変更しています(ドキュメント上は alias と表記)。とはいえ旧名 amazonlinux2-… も引き続き使え、新名 amazonlinux-… とまったく同じイメージを指します。

On November 22nd, 2024, the aliases for Linux-based standard runtime images were updated from amazonlinux2 to amazonlinux. No manual update is required as the previous aliases are still valid.

https://docs.aws.amazon.com/codebuild/latest/userguide/ec2-compute-images.html

改称前からのプロジェクトには旧名 amazonlinux2-… が残りがちで、私が見つけたのもこの旧名でした。

2. 同じ系列でもタグでベース OS が変わる

識別子に含まれる amazonlinux2 は OS バージョン(AL2)ではなく、イメージの系列名にすぎません。ベース OS は タグ番号 で決まります。結論のとおり、同じ al/x86_64/standard/ 系列でも 4.0FROMamazonlinux:2(AL2)、5.0amazonlinux:2023(AL2023)です。

つまり amazonlinux2-x86_64-standard:5.0 のように「名前が amazonlinux2 でも中身は AL2023」というケースもあり得ます。amazonlinux2 という名前だけで OS を判断してはいけない、ということですね。

どのイメージがどの OS か

ベース OS はタグ番号とアーキの組み合わせで判定します(aws/codebuild/ 接頭辞は省略)。

イメージ識別子 ベース OS
amazonlinux(2)-x86_64-standard:2.0 / :3.0 / :4.0 Amazon Linux 2
amazonlinux(2)-x86_64-standard:corretto8 / :corretto11 Amazon Linux 2
amazonlinux-x86_64-standard:5.0 / :6.0 Amazon Linux 2023
amazonlinux(2)-aarch64-standard:1.0 / :2.0 Amazon Linux 2
amazonlinux-aarch64-standard:3.0 Amazon Linux 2023

amazonlinux(2) は新旧どちらのエイリアスでも該当します。

注意点はタグ :3.0 で、x86_64 なら AL2、aarch64 なら AL2023 とアーキで逆転します。必ずアーキ込みで見ます。最新の対応表は以下で確認できます。

https://docs.aws.amazon.com/codebuild/latest/userguide/ec2-compute-images.html

CodeBuild の非推奨イメージについて

AL2 ベースのイメージを見つけたら、移行も意識しておきたいところです。CodeBuild には「非推奨イメージ(deprecated image)」という扱いがあり、ドキュメントには次のように書かれています。

You can still use these images, but they won't be cached on the build host and will result in higher provisioning times.

https://docs.aws.amazon.com/codebuild/latest/userguide/deprecated-images.html

非推奨になっても すぐに使えなくなるわけではありません が、ビルドホストにキャッシュされずプロビジョニングが遅くなり、マイナー/パッチ更新も止まる(=セキュリティ的に安全とは言えなくなる)といったデメリットがあります。

実際、AL2 ベースのイメージはすでに一部が非推奨になっています。

イメージ識別子 非推奨日
amazonlinux2-x86_64-standard:2.0 2022年6月30日
amazonlinux2-x86_64-standard:3.0 2023年5月9日
amazonlinux2-aarch64-standard:1.0 2023年3月31日

今回見つけた amazonlinux2-x86_64-standard:4.0(AL2)は執筆時点ではまだ非推奨ではありませんが、AL2 の EOL(2026年6月30日)を考えると、いずれ非推奨になっていくと考えられます。
早めに AL2023 ベース(amazonlinux-x86_64-standard:5.0 など)へ移行しておくと安心です。

まとめ

  • amazonlinux2-x86_64-standard:4.0Amazon Linux 2
  • amazonlinux2-x86_64-standard:5.0 以降は Amazon Linux 2023
  • イメージ識別子(amazonlinux2 / amazonlinux)だけでは OS を判別できない
  • amazonlinux2(旧名)と amazonlinux(新名)は同じイメージを指し、OS はタグで変わる(:4.0=AL2、:5.0 以降=AL2023)
  • ベース OS はタグ番号とアーキ(x86_64 / aarch64)の組み合わせで決まる(例: :3.0 は x86_64 なら AL2、aarch64 なら AL2023)
  • AL2 ベースのイメージは一部すでに非推奨。EOL(2026年6月30日)に向けて早めに AL2023 へ移行を

参考

https://docs.aws.amazon.com/codebuild/latest/userguide/ec2-compute-images.html

https://docs.aws.amazon.com/codebuild/latest/userguide/deprecated-images.html

https://github.com/aws/aws-codebuild-docker-images

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事