カスタム Amazon SageMaker Studio を構築する際の問題をトラブルシューティングしたい。
解決方法
SageMaker イメージは、SageMaker Studio で Jupyter ノートブックを実行するために必要なカーネル、言語パッケージ、およびその他の依存関係を識別するファイルです。これらのイメージは、Jupyter ノートブックを実行できる環境を作成するために使用されます。SageMaker が提供するビルトインイメージがユースケースをサポートしていない場合は、SageMaker Studio で使用するカスタムイメージを持ち込むことができます。
SageMaker Studio で顧客画像を使用すると、エラーが発生することがあります。これらのエラーは、主にコンテナイメージのビルドプロセス中に設定した誤った設定が原因である可能性があります。そのため、カスタムイメージが SageMaker Studio と互換性があることを確認してください。
そのためには、Dockerfile をビルドするときに次の点を確認してください。
- DefaultUID と DefaultGID の値が正確に設定されました。SageMaker Studio は DefaultUID と DefaultGID の特定の組み合わせのみをサポートします。非特権ユーザーの場合、DefaultUID と DefaultGID がそれぞれ 1000 と 100 に設定されていることを確認してください。root ユーザーの値が両方とも 0 に設定されていることを確認してください。
- 'opt/.sagemakerinterna l' と 'opt/ml' ディレクトリは使われません。これらのディレクトリは予約されています。
- 構成ファイル app-image-config-input.json を作成するときは、このファイルの KernelSpec の名前値が関連するイメージの名前値と一致することを確認してください。
Python パッケージをインストールし、権限のないユーザーに範囲を設定する Dockerfile の例:
FROM public.ecr.aws/amazonlinux/amazonlinux:2
ARG NB_USER="sagemaker-user"
ARG NB_UID="1000"
ARG NB_GID="100"
RUN \
yum install --assumeyes python3 shadow-utils && \
useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
yum clean all && \
python3 -m pip install ipykernel && \
python3 -m ipykernel install
USER ${NB_UID}
以下のいずれかが発生した場合、Amazon CloudWatch ログでエラーメッセージを表示できます。
- イメージバージョンの作成が失敗します。
- SageMaker Studio でイメージを起動するとエラーが発生します。
これらのメッセージは、ロググループ /aws/sagemaker/studio とログストリーム $domainID/$userProfileName/KernelGateway/$appName にあります。
**注:**この記事では、AWS ID およびアクセス管理 (IAM) のユーザーまたはロールに AmazonSageMakerFullAccess ポリシーがアタッチされていることを前提としています。
関連情報
SageMaker のカスタムイメージ仕様