

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

# カスタム SageMaker イメージをアタッチする
イメージをアタッチする

**重要**  
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) には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

このガイドでは、Amazon SageMakerコンソールまたは AWS Command Line Interface () を使用して Amazon SageMaker AI ドメインにカスタム RStudio イメージをアタッチする方法を示しますAWS CLI。

カスタム SageMaker イメージを使うには、カスタム RStudio イメージをドメインにアタッチする必要があります。イメージバージョンをアタッチすると RStudio Launcher に表示され、**[イメージを選択]** ドロップダウンリストに表示されます。ドロップダウンを使用して RStudio が使用するイメージを変更します。

アタッチできるイメージのバージョン数には制限があります。制限に達した場合、まずバージョンを切り離し、別のバージョンのイメージを添付できるようにする必要があります。

**Topics**
+ [

## コンソールを使ってドメインにイメージバージョンをアタッチする
](#rstudio-byoi-attach-console)
+ [

## を使用して既存のイメージバージョンをドメインにアタッチする AWS CLI
](#rstudio-byoi-attach-cli)

## コンソールを使ってドメインにイメージバージョンをアタッチする


SageMaker AI コンソールのコントロール パネルを使用して、カスタム SageMaker イメージ バージョンをドメインにアタッチできます。また、カスタム SageMaker イメージとイメージバージョンを作成し、そのバージョンをドメインにアタッチできます。

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

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

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

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

1. 目的のドメインを選択します。

1. **[環境]** を選択します。

1. **[ドメインにアタッチされた Custom SageMaker Studio Classic イメージ]** で、**[イメージをアタッチ]** を選択します。

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

   **[既存のイメージ]** を選択した場合は、Amazon SageMaker イメージストアからイメージを選択します。

   **[新しいイメージ]** を選択した場合は、Docker イメージの Amazon ECR レジストリパスを指定します。パスはドメインと同じ AWS リージョン にある必要があります。Amazon ECR リポジトリがドメインと同じアカウントに配置されているか、SageMaker AI のクロスアカウントアクセス許可が有効になっている必要があります。

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

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

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

1. **[イメージ名]**、**[イメージ表示名]**、**[説明]** に値を入力します。

1. IAM ロールを選択します。詳細については、「[カスタム RStudio イメージを作成する](rstudio-byoi-create.md)」を参照してください。

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

1. (オプション) **[新しいタグを追加]** を選択して設定タグを追加します。

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

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

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

## を使用して既存のイメージバージョンをドメインにアタッチする AWS CLI


 AWS CLIを使用してイメージバージョンをドメインにアタッチする方法は、2 つあります。1 つ目の方法では、バージョンがアタッチされた新しいドメインを作成します。この方法は簡単ですが、ドメインの作成に必要な Amazon Virtual Private Cloud (Amazon VPC) の情報と実行ロールを指定する必要があります。

既にメインにオンボードしている場合は、2 つ目の方法を使って、現在のドメインにイメージバージョンをアタッチできます。この場合、Amazon VPC 情報と実行ロールの指定は必要ありません。バージョンのアタッチ後は、ドメイン内のすべてのアプリケーションを削除し、RStudio を再起動する必要があります。

### 新しいドメインに SageMaker イメージをアタッチする


この方法を実行するには、[AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) ポリシーがアタッチされた実行ロールを指定する必要があります。

ドメインを作成し、カスタム 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` が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。実行ロールは「[前提条件を満たす](rstudio-byoi-prerequisites.md)」の要件を満たす必要があります。

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

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

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

   レスポンス:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id",
       "Url": "https://domain-id.studio.region.sagemaker.aws/..."
   }
   ```

### 既存のドメインに SageMaker イメージをアタッチする


この方法では、ドメインに既にオンボーディングしていることを前提としています。詳細については、「[Amazon SageMaker AI ドメインの概要](gs-studio-onboard.md)」を参照してください。

**注記**  
新しいイメージバージョンでドメインを更新するには、ドメイン内のすべてのアプリケーションを削除する必要があります。アプリケーションの削除の詳細については、「[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. **[全般設定]** で、**[ドメイン ID]** を検索します。ID の形式は `d-xxxxxxxxxxxx` です。

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

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

   レスポンス:

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

1. `update-domain-input.json` という名前のファイルに、レスポンスの `DefaultUserSettings` セクションを保存します。

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

   ```
   {
       "DefaultUserSettings": {
           "RSessionAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "rstudio-custom-image",
                    "AppImageConfigName": "rstudio-custom-config"
                 }
              ]
           }
       }
   }
   ```

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

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   レスポンス:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id"
   }
   ```

1. `RStudioServerPro` アプリケーションを削除します。RStudio Launcher UI に最新の変更を反映させるには、`RStudioServerPro` ドメイン共有アプリケーションを再起動する必要があります。

   ```
   aws sagemaker delete-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

1. 新しい `RStudioServerPro` アプリケーションを作成します。このアプリケーションは、 AWS CLIを使用して作成する必要があります。

   ```
   aws sagemaker create-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```