

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

# Amazon SageMaker Studio Classic でカスタム SageMaker イメージをアタッチする場合の前提条件
<a name="studio-byoi-attach"></a>

**重要**  
Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「[SageMaker AI リソースにタグ付けのアクセス許可を付与する](security_iam_id-based-policy-examples.md#grant-tagging-permissions)」を参照してください。  
SageMaker リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md) には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

**重要**  
2023 年 11 月 30 日以降、従来の Amazon SageMaker Studio のエクスペリエンスは Amazon SageMaker Studio Classic と名前が変更されました。以下のセクションは、Studio Classic アプリケーションの使用を前提とした内容です。更新後の Studio エクスペリエンスを使用する場合は、「[Amazon SageMaker Studio](studio-updated.md)」を参照してください。  
Studio Classic は既存のワークロードでも維持されていますが、オンボーディングに利用できなくなりました。既存の Studio Classic アプリケーションのみを停止または削除でき、新しいアプリケーションを作成することはできません。[ワークロードを新しい Studio エクスペリエンスに移行](studio-updated-migrate.md)することをお勧めします。

カスタム SageMaker イメージを使用するには、ドメインまたは共有スペースにイメージのバージョンをアタッチする必要があります。イメージのバージョンをアタッチすると、イメージは SageMaker Studio Classic ランチャーに表示され、**[イメージの選択]** ドロップダウンリストで使用できるようになります。このドロップダウンリストは、アクティビティの起動やノートブックで使用されるイメージの変更に使用します。

ドメイン内のすべてのユーザーがカスタムの SageMaker イメージを使用できるようにするには、ドメインにイメージをアタッチします。共有スペース内のすべてのユーザーがイメージを利用できるようにするには、イメージを共有スペースにアタッチします。単一のユーザーがイメージを使用できるようにするには、そのユーザーのプロファイルにイメージをアタッチします。イメージをアタッチすると、SageMaker AI はデフォルトで最新のイメージバージョンを使用します。特定のイメージバージョンをアタッチすることもできます。バージョンをアタッチすると、ノートブックを起動する際に SageMaker ランチャーまたはイメージセレクターからバージョンを選択できます。

所定の時間にアタッチできるイメージバージョンの数には制限があります。制限に達した場合、別のイメージバージョンをアタッチするには、バージョンをデタッチする必要があります。

以降のセクションでは、SageMaker AI コンソールまたは AWS CLIを使用してカスタム SageMaker イメージをドメインにアタッチする方法を説明します。共有スペースへのカスタムイメージのアタッチは、 AWS CLIからのみ行えます。

## ドメインに SageMaker イメージをアタッチする
<a name="studio-byoi-attach-domain"></a>

### コンソールを使用して SageMaker イメージをアタッチする
<a name="studio-byoi-attach-existing"></a>

このトピックでは、SageMaker AI コントロールパネルを使用して、ドメインに既存のカスタム SageMaker イメージバージョンをアタッチする方法について説明します。また、カスタム SageMaker イメージとイメージバージョンを作成して、そのバージョンをドメインにアタッチすることもできます。イメージおよびイメージバージョンを作成する手順については、「[Amazon SageMaker Studio Classic 用のカスタム SageMaker イメージの前提条件](studio-byoi-create.md)」を参照してください。

**既存のイメージをアタッチするには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

1. **[管理設定]** で、**[ドメイン]** を選択します。

1. **[ドメイン]** ページで、イメージをアタッチするドメインを選択します。

1. **[ドメインの詳細]** ページで、**[環境]** タブを選択します。

1. **[環境]** タブの **[ドメインにアタッチされているカスタム SageMaker Studio Classic イメージ]** で、**[イメージをアタッチ]** を選択します。

1. **[イメージソース]** で、**[既存のイメージ]** を選択します。

1. リストから既存のイメージを 1 つ選択します。

1. リストからイメージバージョンを選択します。

1. [**次へ**] を選択します。

1. **[イメージ名]**、**[イメージ表示名]**、**[説明]** の値を確認します。

1. IAM ロールを選択します。詳細については、「[Amazon SageMaker Studio Classic 用のカスタム SageMaker イメージの前提条件](studio-byoi-create.md)」を参照してください。

1. (オプション) イメージにタグを追加します。

1. EFS マウントパスを指定します。これは、ユーザーの Amazon Elastic File System (EFS) ホームディレクトリにマウントするためのイメージ内のパスです。

1. **[イメージタイプ]** で、**[SageMaker Studio イメージ]** を選択します。

1. **[カーネル名]** にイメージ内の既存のカーネルの名前を入力します。イメージからカーネル情報を取得する方法については、SageMaker Studio Classic カスタムイメージサンプルリポジトリの「[DEVELOPMENT](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md)」を参照してください。詳細については、「[Amazon SageMaker Studio Classic でのカスタム SageMaker イメージの仕様](studio-byoi-specs.md)」の「**Kernel discovery**」セクションと「**User data**」セクションを参照してください。

1. (オプション) **[カーネル表示名]** にカーネルの表示名を入力します。

1. **[カーネルの追加]** を選択します。

1. [**Submit**] を選択してください。

   1. イメージバージョンがドメインにアタッチされるのを待ちます。アタッチが完了すると、そのバージョンは **[カスタムイメージ]** リストで一時的に強調表示されます。

### を使用して SageMaker イメージをアタッチする AWS CLI
<a name="studio-byoi-sdk-attach"></a>

以下のセクションでは、 AWS CLIを使用して新しいドメインを作成したり、既存のドメインを更新したりする際に、カスタム SageMaker イメージをアタッチする方法を説明します。

#### 新しいドメインに SageMaker イメージをアタッチする
<a name="studio-byoi-sdk-attach-new-domain"></a>

次のセクションでは、バージョンをアタッチした新しいドメインを作成する方法を説明します。これらの手順では、ドメインの作成に必要な Amazon Virtual Private Cloud (VPC) 情報と実行ロールを指定する必要があります。ドメインを作成し、カスタム SageMaker イメージをアタッチするには、次の手順に従います。
+ デフォルトの VPC ID とサブネット ID を取得します。
+ イメージを指定するドメインの設定ファイルを作成します。
+ 設定ファイルを使ってドメインを作成します。

**ドメインにカスタム SageMaker イメージを追加するには**

1. デフォルトの VPC ID を取得します。

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

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

   ```
   vpc-xxxxxxxx
   ```

1. 前の手順で取得した VPC ID を使用して、デフォルトのサブネット ID を取得します。

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values={{<vpc-id>}} \
       --query "Subnets[*].SubnetId" --output json
   ```

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

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. `create-domain-input.json` という名前の設定ファイルを作成します。前のステップで取得した VPC ID、サブネット ID、`ImageName`、`AppImageConfigName` を挿入します。`ImageVersionNumber` が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。

   ```
   {
       "DomainName": "domain-with-custom-image",
       "VpcId": "{{<vpc-id>}}",
       "SubnetIds": [
           "{{<subnet-ids>}}"
       ],
       "DefaultUserSettings": {
           "ExecutionRole": "{{<execution-role>}}",
           "KernelGatewayAppSettings": {
               "CustomImages": [
                   {
                       "ImageName": "custom-image",
                       "AppImageConfigName": "custom-image-config"
                   }
               ]
           }
       },
       "AuthMode": "IAM"
   }
   ```

1. アタッチされたカスタム SageMaker イメージを使ってドメインを作成します。

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

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

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx",
       "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..."
   }
   ```

#### 現在のドメインに SageMaker イメージをアタッチする
<a name="studio-byoi-sdk-attach-current-domain"></a>

SageMaker AI ドメインにオンボードしている場合、現在のドメインにカスタムイメージをアタッチできます。SageMaker AI ドメインへのオンボーディングの詳細については、「[Amazon SageMaker AI ドメインの概要](gs-studio-onboard.md)」を参照してください。現在のドメインにカスタムイメージをアタッチする際は、VPC 情報と実行ロールを指定する必要はありません。バージョンのアタッチ後は、ドメイン内のすべてのアプリケーションを削除し、Studio Classic を再度開く必要があります。アプリケーションの削除については、「[Amazon SageMaker AI ドメインを削除する](gs-studio-delete-domain.md)」を参照してください。

現在のドメインに SageMaker イメージを追加するには、次の手順に従います。
+ SageMaker AI コントロールパネルから `DomainID` を取得します。
+ `DomainID` を使ってドメインの `DefaultUserSettings` を取得します。
+ `ImageName` と `AppImageConfig` を `CustomImage` として `DefaultUserSettings` に追加します。
+ ドメインを更新して、カスタムイメージを含めます。

**ドメインにカスタム SageMaker イメージを追加するには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

1. **[管理設定]** で、**[ドメイン]** を選択します。

1. **[ドメイン]** ページで、イメージをアタッチするドメインを選択します。

1. **[ドメインの詳細]** ページで、**[ドメインの設定]** タブを選択します。

1. **[ドメインの設定]** タブの **[全般設定]** で `DomainId` を探します。ID の形式は `d-xxxxxxxxxxxx` です。

1. このドメイン ID を使って、ドメインの説明を取得します。

   ```
   aws sagemaker describe-domain \
       --domain-id {{<d-xxxxxxxxxxxx>}}
   ```

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

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. `default-user-settings.json` という名前のファイルに、レスポンスのデフォルトのユーザー設定セクションを保存します。

1. 前の手順で取得した `ImageName` と `AppImageConfigName` をカスタムイメージとして挿入します。`ImageVersionNumber` が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。

   ```
   {
       "DefaultUserSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. ドメイン ID とデフォルトのユーザー設定ファイルを使って、ドメインを更新します。

   ```
   aws sagemaker update-domain \
       --domain-id {{<d-xxxxxxxxxxxx>}} \
       --cli-input-json file://default-user-settings.json
   ```

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

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## SageMaker イメージを共有スペースにアタッチする
<a name="studio-byoi-attach-shared-space"></a>

共有スペースへの SageMaker イメージのアタッチは、 AWS CLIからのみ行えます。バージョンのアタッチ後は、共有スペース内のすべてのアプリケーションを削除し、Studio Classic を再度開く必要があります。アプリケーションの削除については、「[Amazon SageMaker AI ドメインを削除する](gs-studio-delete-domain.md)」を参照してください。

共有スペースに SageMaker イメージを追加するには、次の手順に従います。
+ SageMaker AI コントロールパネルから `DomainID` を取得します。
+ `DomainID` を使ってドメインの `DefaultSpaceSettings` を取得します。
+ `ImageName` と `AppImageConfig` を `CustomImage` として `DefaultSpaceSettings` に追加します。
+ ドメインを更新して、共有スペースのカスタムイメージを含めます。

**共有スペースにカスタム SageMaker イメージを追加するには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

1. **[管理設定]** で、**[ドメイン]** を選択します。

1. **[ドメイン]** ページで、イメージをアタッチするドメインを選択します。

1. **[ドメインの詳細]** ページで、**[ドメインの設定]** タブを選択します。

1. **[ドメインの設定]** タブの **[全般設定]** で `DomainId` を探します。ID の形式は `d-xxxxxxxxxxxx` です。

1. このドメイン ID を使って、ドメインの説明を取得します。

   ```
   aws sagemaker describe-domain \
       --domain-id {{<d-xxxxxxxxxxxx>}}
   ```

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

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       ...
       "DefaultSpaceSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. `default-space-settings.json` という名前のファイルに、レスポンスのデフォルトのスペース設定セクションを保存します。

1. 前の手順で取得した `ImageName` と `AppImageConfigName` をカスタムイメージとして挿入します。`ImageVersionNumber` が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。

   ```
   {
       "DefaultSpaceSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. ドメイン ID とデフォルトのスペース設定ファイルを使用して、ドメインを更新します。

   ```
   aws sagemaker update-domain \
       --domain-id {{<d-xxxxxxxxxxxx>}} \
       --cli-input-json file://default-space-settings.json
   ```

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

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## アタッチされたイメージを SageMaker AI で表示する
<a name="studio-byoi-sdk-view"></a>

カスタム SageMaker イメージを作成してドメインにアタッチすると、そのイメージはドメインの **[環境]** タブに表示されます。次の AWS CLI コマンドを使用して、 を使用して共有スペースのアタッチされたイメージのみを表示できます。

```
aws sagemaker describe-domain \
    --domain-id {{<d-xxxxxxxxxxxx>}}
```