翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタム SageMaker AI イメージ仕様
重要
2023 年 11 月 30 日以降、従来の Amazon SageMaker Studio のエクスペリエンスは Amazon SageMaker Studio Classic と名前が変更されました。以下のセクションは、Studio Classic アプリケーションの使用を前提とした内容です。更新後の Studio エクスペリエンスを使用する場合は、「Amazon SageMaker Studio」を参照してください。
SageMaker AI イメージバージョンで表されるコンテナイメージには、次の仕様が適用されます。
- イメージを実行する
-
イメージを KernelGateway アプリとして実行できるよう、
ENTRYPOINT
命令とCMD
命令が上書きされます。イメージのポート 8888 は、KernelGateway ウェブサーバーの実行のために予約されています。
- イメージを停止する
-
DeleteApp
API はdocker stop
コマンドに相当するコマンドを発行します。コンテナ内の他のプロセスは SIGKILL/SIGTERM シグナルを受信しません。 - カーネル検出
-
SageMaker AI は、Jupyter カーネル仕様で定義されているカーネルを認識します
。 イメージを実行する前に、表示するカーネルのリストを指定できます。指定しない場合、python3 と表示されます。DescribeAppImageConfig API を使うと、カーネルのリストを表示できます。
デフォルトで、Conda 環境はカーネル仕様として認識されます。
- ファイルシステム
-
/opt/.sagemakerinternal
ディレクトリと/opt/ml
ディレクトリは予約されています。これらのディレクトリにあるデータは、実行時には表示されない場合があります。 - ユーザーデータ
-
イメージでは、ドメイン内の各ユーザーは共有の Amazon Elastic File System ボリュームにユーザーディレクトリを得ます。現在のユーザーの Amazon EFS ボリュームのディレクトリの場所は設定可能です。デフォルトのディレクトリは
/home/sagemaker-user
です。SageMaker AI は、イメージとホスト間の POSIX UID/GID マッピングを設定します。デフォルトでは、ルートユーザーの UID/GID (0/0) はホストの UID/GID にマッピングされます。
これらの値は CreateAppImageConfig API を使って指定できます。
- GID/UID の制限
-
Amazon SageMaker Studio Classic は、次の
DefaultUID
とDefaultGID
の組み合わせのみをサポートしています。-
DefaultUID: 1000 と DefaultGID: 100 (権限のないユーザーに対応)
-
DefaultUID: 0 と DefaultGID: 0 (ルートアクセスに対応)
-
- メタデータ
-
メタデータファイルは
/opt/ml/metadata/resource-metadata.json
にあります。イメージで定義されている変数には、その他の環境変数は追加されません。詳細については、「アプリのメタデータを取得する」を参照してください。 - GPU
-
GPU インスタンスでは、イメージは
--gpus
オプションを付けて実行されます。イメージには NVIDIA ドライバーを含めず、CUDA ツールキットのみを含めます。詳細については、「NVIDIA ユーザーガイド」を参照してください。 - メトリクスとログ記録
-
KernelGateway プロセスのログは、お客様のアカウントの Amazon CloudWatch に送信されます。ロググループの名前は
/aws/sagemaker/studio
です。ログストリームの名前は$domainID/$userProfileName/KernelGateway/$appName
です。 - イメージのサイズ
-
35 GB の制限があります。イメージのサイズを表示するには、
docker image ls
を実行します。
サンプル Dockerfile
次のサンプル Dockerfile は、Amazon Linux 2 ベースのイメージの作成、サードパーティのパッケージと python3
カーネルのインストール、権限のないユーザーへのスコープの設定を行います。
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}