AWS SAM CLIのビルドイメージが2023/12/01以降Docker Hubで提供されなくなります

2023.09.19

初めに

これまでDocker HubおよびAmazon ECRの両方で提供されていたAWS SAM CLIのビルドで利用されているイメージのDocker Hubでの提供が2023/12/01をもって終了する旨がアナウンスされました。

今後は独自処理のために標準イメージ+αの対応が必要な場合等はAmazon ECR上から取得する必要があります。

対応が必要なケース

以下の場合は対応を行う必要があります。

  • AWS SAM CLIのバージョンがv1.22.0未満
    • 標準でのビルドがDocker Hubを参照しているため、AWS SAM CLI自体のバージョンアップが必要
  • Dockerfile等や各種dockerコマンドにてDocker Hub上のビルドイメージを指定している
    • 指定をAmazon ECR側に切り替える対応が必要

なおv1.22.0以降のバージョンについては--use-containerで特別指定を行わない標準のビルドではAmazon ECR上からイメージを取得するため特に影響はありません。

 % docker images
REPOSITORY                                          TAG                 IMAGE ID       CREATED         SIZE
public.ecr.aws/lambda/python                        3.11-rapid-arm64    1c14e8d22f4c   13 days ago     794MB
public.ecr.aws/lambda/nodejs                        18-rapid-arm64      c31dd1c46bde   2 weeks ago     682MB
public.ecr.aws/lambda/python                        3.9-rapid-x86_64    1269126ee880   2 weeks ago     622MB
public.ecr.aws/lambda/python                        3.9-rapid-arm64     10ea72386bf7   2 weeks ago     653MB
...

ちなみに--use-containerのオプションいつから提供されていたのか改めて確認したところv1.23.0のようです。タイミング的に標準で利用するコンテナレジストリのAmazon ECRへの切り替えはこれに先駆けた対応でしょうか?

対象となる具体的なイメージについては先に記載したGithubのissueリンク上に記載されているためそちらをご参照ください。

そもそも最近追加されたランタイムは既に提供されていない

記載されているイメージのランタイムのバージョンがやけに古いなと思って確認してみましたが、そもそも最近追加されたランタイムのイメージはすでにDocker Hubでの提供がないようです。

具体的にDocker Hub側で提供されなくなった時期の境界は確認していませんが2021/8/17にサポートされたPython 3.9が存在し、2022/05/10にサポートされたnodejs16.xのイメージがDocker Hub上に存在しないのでここ2年前後のリリースでしょうか。

既にリリースされているものについては現在もメンテナンスが続いてる関係でAmazon ECR側と合わせてダブルメンテナンス状態となっているので、今回の対応はこの解消を行いAmazon ECR一本化という形になりそうです。

終わりに

先日AWS SAM CLI自体のPython 3.7のサポート終了に引き続きの告知となりました。

サポート終了告知が続くなあと思ったのですが、よくよく考えると2023/11~2023/12にかけてAWS Lambdaのマネージドランタイムの古いバージョンのサポート終了ラッシュ(6つほど)、2023/12/31には無印のAmazon Linux自体のサポート終了があるのでこの辺りで後方互換周りの整理を行いたい意図もあるのでしょうか?

こうなるとここ数ヶ月はまだ何かしら動きがありそうな気がしますので注視していきたいところではあります。