カスタム SageMaker イメージを作成する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム SageMaker イメージを作成する

重要

Amazon SageMaker Studio または Amazon SageMaker Studio Classic が Amazon SageMaker リソースを作成できるようにするカスタムIAMポリシーでは、それらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要です。IAM ポリシーで Studio と Studio Classic がリソースを作成することを許可されているが、タグ付けが許可されていない場合、リソースを作成しようとするとAccessDenied「」エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。

AWS Amazon の マネージドポリシー SageMaker SageMaker リソースを作成するアクセス許可を付与する には、それらのリソースの作成中にタグを追加するアクセス許可が既に含まれています。

重要

2023 年 11 月 30 日現在、以前の Amazon SageMaker Studio エクスペリエンスは Amazon SageMaker Studio Classic と名付けられています。次のセクションは、Studio Classic アプリケーションの使用に固有のものです。更新された Studio エクスペリエンスの使用については、「」を参照してくださいAmazon SageMaker Studio

このトピックでは、 SageMaker コンソールまたは を使用してカスタム SageMaker イメージを作成する方法について説明します AWS CLI。

コンソールからイメージを作成すると、 も初期イメージバージョン SageMaker を作成します。イメージバージョンは、Amazon Elastic Container Registry (ECR) のコンテナイメージを表します。コンテナイメージは、Amazon SageMaker Studio Classic で使用する要件を満たしている必要があります。詳細については、「カスタム SageMaker イメージの仕様」を参照してください。イメージをローカルでテストし、一般的な問題を解決する方法については、SageMaker Studio Classic Custom Image Samples repo を参照してください。

カスタム SageMaker イメージを作成したら、ドメインまたは共有スペースにアタッチして Studio Classic で使用する必要があります。詳細については、「カスタム SageMaker イメージをアタッチする」を参照してください。

コンソールから SageMaker イメージを作成する

次のセクションでは、コンソールから SageMakerカスタム SageMaker イメージを作成する方法を示します。

イメージを作成するには
  1. で Amazon SageMaker コンソールを開きますhttps://console.aws.amazon.com/sagemaker/

  2. 左側のナビゲーションペインで、[管理設定]‭ を選択します。

  3. [管理設定][イメージ] を選択します。

  4. [カスタムイメージ] ページで [イメージの作成] を選択します。

  5. イメージソース には、Amazon のコンテナイメージへのレジストリパスを入力しますECR。パスの形式は次のとおりです。

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

  6. [Next (次へ)] を選択します。

  7. [イメージプロパティ] に次を入力します。

    • イメージ名 – この名前は、現在の AWS リージョンのアカウント内で一意である必要があります。

    • (オプション) 表示名 — Studio Classic ユーザーインターフェイスに表示される名前。入力しない場合は Image name が表示されます。

    • (オプション) 説明 – イメージの説明。

    • IAM role – ロールにはAmazonSageMakerFullAccessポリシーがアタッチされている必要があります。ドロップダウンメニューから次のいずれかのオプションを選択します。

      • 新しいロールの作成 - ノートブックのユーザーがアクセスできる追加の Amazon Simple Storage Service (Amazon S3) バケットを指定します (ある場合)。アクセスを許可するバケットを追加しない場合は [なし] を選択します。

        SageMaker はAmazonSageMakerFullAccess、ポリシーをロールにアタッチします。このロールは、チェックマークの横に表示される S3 バケットにノートブックのユーザーがアクセスすることを許可します。

      • カスタムIAMロールを入力 ARN – IAMロールの Amazon リソースネーム (ARN) を入力します。

      • 既存のロールの使用 - リストから既存のロールの 1 つを選択します。

    • (オプション) イメージタグ - [新しいタグの追加] を選択します。最大 50 個のタグを追加できます。タグは、Studio Classic ユーザーインターフェイス、コンソール SageMaker、または SageMaker Search を使用して検索できますAPI。

  8. [送信] を選択します。

新しいイメージは、[カスタムイメージ] リストで一時的に強調表示されます。イメージが正常に作成されたら、イメージ名を選択してそのプロパティを表示するか、[バージョンの作成] を選択して、別のバージョンを作成します。

別のイメージバージョンを作成するには
  1. イメージと同じ行にある [バージョンを作成] を選択します。

  2. イメージソース には、Amazon ECRコンテナイメージへのレジストリパスを入力します。コンテナイメージは、以前のバージョンのイメージと同じ SageMaker イメージであってはなりません。

から SageMaker イメージを作成する AWS CLI

を使用してコンテナ SageMaker イメージからイメージを作成するには、次のステップを実行します AWS CLI。

  • Image を作成します。

  • ImageVersion を作成します。

  • 設定ファイルを作成します。

  • AppImageConfig を作成します。

SageMaker イメージエンティティを作成するには
  1. SageMaker イメージを作成します。

    aws sagemaker create-image \ --image-name custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    レスポンスは次のようになります。

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image" }
  2. コンテナ SageMaker イメージからイメージバージョンを作成します。

    aws sagemaker create-image-version \ --image-name custom-image \ --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:custom-image

    レスポンスは次のようになります。

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1" }
  3. イメージバージョンが正常に作成されたことを確認します。

    aws sagemaker describe-image-version \ --image-name custom-image \ --version-number 1

    レスポンスは次のようになります。

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1", "ImageVersionStatus": "CREATED" }
    注記

    レスポンスが "ImageVersionStatus": "CREATED_FAILED" である場合、レスポンスにはその失敗の理由も記載されています。失敗の一般的な原因の 1 つは許可の問題です。カスタムイメージの KernelGateway アプリケーションを起動または実行する際に障害が発生した場合は、Amazon CloudWatch ログを確認することもできます。ロググループの名前は /aws/sagemaker/studio です。ログストリームの名前は $domainID/$userProfileName/KernelGateway/$appName です。

  4. app-image-config-input.json という名前の設定ファイルを作成します。のName値は、この に関連付けられているイメージで kernelSpec 使用可能な の名前と一致するKernelSpecs必要がありますAppImageConfig。この値では、大文字と小文字が区別されます。コンテナ内のシェルjupyter-kernelspec listから を実行すると、イメージ kernelSpecs で使用可能な を見つけることができます。 MountPathは、Amazon Elastic File System (Amazon EFS) ホームディレクトリをマウントするためのイメージ内のパスです。Amazon EFSホームディレクトリがマウントされるとパスが上書きされるため、コンテナ内で使用するパスとは異なる必要があります。

    注記

    DefaultUIDDefaultGID の値は、以下の組み合わせのみが許容されます。

    • デフォルト UID: 1000、デフォルト GID: 100

    • デフォルト UID: 0、デフォルト GID: 0

    { "AppImageConfigName": "custom-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "python3", "DisplayName": "Python 3 (ipykernel)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
  5. 前のステップで作成した ファイル AppImageConfig を使用して を作成します。

    aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json

    レスポンスは次のようになります。

    { "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config" }