結論
m1 macからのbuiildだったためアーキテクチャの差異が原因。
m1 macでのdocker build時は--platform=amd64
を指定する。
詳細
SageMaker Studioのカスタムイメージを使うためにdocker build→docker pushまで実行してSageMaker Studioの立ち上げるも、カスタムイメージをを指定すると正常起動せず最終的にエラーになる。
CloudWatchで該当のappのログを見ても出力されているのはexec /opt/.sagemakerinternal/conda/kgw_variant: exec format error.
というエラーのみでパッと見よくわからない。
最終的に辿り着いたのが以下のissueです。
m1 macでビルドした際にarm64のイメージが優先して取得されます。SageMaker StudioはEFSボリュームが今回だとKernelGatewayにマウントされる際にアーキテクチャが合わずにKernelの起動に失敗したという感じでしょうか。(推測が入っているので正しいかはわかりません)
なのでm1 macであればplatform
オプションをamd64
に指定することで解決するということです。
運用するときはGitHub ActionsやCircleCIなどを使うと思うのでアーキテクチャの違いに悩まされることは無いと思いますが、調査の時はローカルでの作業がメインになるので気をつけましょう。
余談ですが、調査しているときに同じDockerfileを使っているのにSageMaker Studioで起動するイメージと起動しないイメージがあり、更に謎が深まっていました。理由はローカルからbuildした時とGitHu Codespacesでbuildした時の違いでした。