

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

# Bring your own image (BYOI)
<a name="studio-updated-byoi"></a>

イメージとは、アプリケーションの実行に必要なカーネル、言語パッケージ、その他の依存関係を識別するファイルです。これには、以下が含まれます。
+ プログラミング言語 (Python や R など）
+ カーネル
+ ライブラリとパッケージ
+ その他の必要なソフトウェア

Amazon SageMaker Distribution (`sagemaker-distribution`) は、機械学習、データサイエンス、可視化のための一般的なフレームワークとパッケージを含む Docker イメージのセットです。詳細については、「[SageMaker Studio のイメージサポートポリシー](sagemaker-distribution.md)」を参照してください。

その他の機能が必要な場合は、独自のイメージを取り込むこと (BYOI) ができます。次の場合は、カスタムイメージを作成することをお勧めします。
+ 特定のバージョンのプログラミング言語またはライブラリが必要な場合。
+ カスタムツールまたはパッケージを含める場合。
+ 標準イメージにはない特殊なソフトウェアを使用している場合。

## 主要な用語
<a name="studio-updated-byoi-basics"></a>

次のセクションでは、SageMaker AI で使用するために独自のイメージを取り込む (BYOI) 場合に重要となる用語を定義します。
+ **Dockerfile:** Docker イメージの構築手順を記載したテキストベースのドキュメント。Docker イメージの言語パッケージやその他の依存関係を識別するファイルです。
+ **Docker イメージ:** Dockerfile から構築されたソフトウェアと依存関係のパッケージセット。
+ **SageMaker AI イメージストア:** SageMaker AI 内のカスタムイメージのストレージ。

**Topics**
+ [主要な用語](#studio-updated-byoi-basics)
+ [カスタムイメージの仕様](studio-updated-byoi-specs.md)
+ [独自のイメージを取り込む (BYOI)](studio-updated-byoi-how-to.md)
+ [Studio でカスタムイメージを起動する](studio-updated-byoi-how-to-launch.md)
+ [カスタムイメージの詳細を表示する](studio-updated-byoi-view-images.md)
+ [SOCI でコンテナの起動を高速化する](soci-indexing.md)
+ [カスタムイメージのリソースをデタッチしてクリーンアップする](studio-updated-byoi-how-to-detach-from-domain.md)

# カスタムイメージの仕様
<a name="studio-updated-byoi-specs"></a>

イメージを正常に作成するには、Dockerfile で指定するイメージが以下のセクションの仕様と一致している必要があります。

**Topics**
+ [イメージを実行する](#studio-updated-byoi-specs-run)
+ [ユーザーとファイルシステムの仕様](#studio-updated-byoi-specs-user-and-filesystem)
+ [アプリケーションのヘルスチェックと URL](#studio-updated-byoi-specs-app-healthcheck)
+ [Dockerfile サンプル](#studio-updated-byoi-specs-dockerfile-templates)

## イメージを実行する
<a name="studio-updated-byoi-specs-run"></a>

[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html) を更新することで、以下を設定できます。例については、[コンテナ設定を更新する](studio-updated-byoi-how-to-container-configuration.md)を参照してください。
+ `Entrypoint` – ランタイムでコンテナに渡される `ContainerEntrypoint` と `ContainerArguments` を設定できます。エントリポイントの設定には、`ContainerConfig` の使用をお勧めします。例については、上記のリンクを参照してください。
+ `EnvVariables` – Studio を使用する場合、コンテナに `ContainerEnvironment` カスタム変数を定義できます。必要に応じて、`ContainerConfig` を使用して、環境変数を更新することもできます。例については、上記のリンクを参照してください。

  SageMaker AI 固有の環境変数が優先され、同じ名前の変数は上書きされます。例えば、SageMaker AI は、 AWS サービスと SageMaker AI 機能との適切な統合を確保するために、`AWS_` および `SAGEMAKER_` で始まる環境変数を自動的に提供します。以下は、SageMaker AI 固有の環境変数の例です。
  + `AWS_ACCOUNT_ID`
  + `AWS_REGION`
  + `AWS_DEFAULT_REGION`
  + `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
  + `SAGEMAKER_SPACE_NAME`
  + `SAGEMAKER_APP_TYPE`

## ユーザーとファイルシステムの仕様
<a name="studio-updated-byoi-specs-user-and-filesystem"></a>
+ `WorkingDirectory` – スペースの Amazon EBS ボリュームはパス `/home/sagemaker-user` にマウントされます。マウントパスを変更することはできません。`WORKDIR` 命令を使用して、イメージの作業ディレクトリを `/home/sagemaker-user` 内のフォルダに設定します。
+ `UID` – Docker コンテナのユーザー ID。UID=1000 はサポートされている値です。sudo アクセス権をユーザーに追加できます。ID は再マッピングされ、コンテナで実行されるプロセスに必要以上の権限は付与されません。
+ `GID` – Docker コンテナのグループ ID。GID=100 はサポートされている値です。sudo アクセス権をユーザーに追加できます。ID は再マッピングされ、コンテナで実行されるプロセスに必要以上の権限は付与されません。
+ メタデータディレクトリ – が使用する `/opt/.sagemakerinternal`および `/opt/ml` ディレクトリ AWS。`/opt/ml` のメタデータファイルには、`DomainId` などのリソースに関するメタデータが含まれています。

  次のコマンドを使用してファイルシステムの内容を表示します。

  ```
  cat /opt/ml/metadata/resource-metadata.json
  ```
+ ログディレクトリ – `/var/log/studio` は、アプリケーションとアプリケーションに関連する拡張機能のログディレクトリ用に予約されています。これらフォルダは、イメージ作成時に使用しないことをお勧めします。

## アプリケーションのヘルスチェックと URL
<a name="studio-updated-byoi-specs-app-healthcheck"></a>

ヘルスチェックと URL は、アプリケーションによって異なります。イメージを構築しているアプリケーションに関連付けられている次のリンクを選択します。
+ Code Editor 向け [アプリケーションのヘルスチェックと URL](code-editor-custom-images.md#code-editor-custom-images-app-healthcheck)
+ JupyterLab 向け [アプリケーションのヘルスチェックと URL](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-admin-guide-custom-images-app-healthcheck)

## Dockerfile サンプル
<a name="studio-updated-byoi-specs-dockerfile-templates"></a>

このページの要件と特定のアプリケーションのニーズの両方を満たす Dockerfile サンプルについては、各アプリケーションの セクションにあるサンプル Dockerfile にアクセスしてください。以下のオプションには、Amazon SageMaker Studio アプリケーションが含まれます。
+ Code Editor 向け [Dockerfile サンプル](code-editor-custom-images.md#code-editor-custom-images-dockerfile-templates)
+ JupyterLab 向け [Dockerfile サンプル](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-custom-images-dockerfile-templates)

**注記**  
独自のイメージを SageMaker Unified Studio に取り込む (BYOI) 場合は、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile 仕様](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)」に従う必要があります。  
SageMaker Unified Studio の `Dockerfile` の例については、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile の例](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)」を参照してください。

# 独自のイメージを取り込む (BYOI)
<a name="studio-updated-byoi-how-to"></a>

以降のページでは、独自のカスタムイメージを持ち込む (BYOI) 方法について説明します。続行する前に、次の前提条件を満たしていることを確認してください。

## 前提条件
<a name="studio-updated-byoi-how-to-prerequisites"></a>

Amazon SageMaker AI に独自のイメージを取り込む (BYOI) には、次の前提条件を満たす必要があります。
+ Docker アプリケーションを設定します。詳細については、*Docker ドキュメント*の「[Get started](https://docs.docker.com/get-started/)」(使用を開始する) を参照してください。
+ バージョン 2 のユーザーガイドの[「 の開始方法 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」の手順に従って、最新の をインストール AWS CLI します。 *AWS Command Line Interface *
+ Amazon Elastic Container Registry (Amazon ECR) サービスへのアクセス許可。詳細については、「**Amazon ECR ユーザーガイド」の「[Amazon ECR マネージドポリシー](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html)」を参照してください。
+ [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) ポリシーがアタッチされた AWS Identity and Access Management ロール。

**Topics**
+ [前提条件](#studio-updated-byoi-how-to-prerequisites)
+ [カスタムイメージを作成して Amazon ECR にプッシュする](studio-updated-byoi-how-to-prepare-image.md)
+ [カスタムイメージをドメインにアタッチする](studio-updated-byoi-how-to-attach-to-domain.md)
+ [コンテナ設定を更新する](studio-updated-byoi-how-to-container-configuration.md)

# カスタムイメージを作成して Amazon ECR にプッシュする
<a name="studio-updated-byoi-how-to-prepare-image"></a>

このページでは、ローカル Dockerfile を作成し、コンテナイメージを構築して、Amazon Elastic Container Registry (Amazon ECR) に追加する方法について説明します。

**注記**  
次の例では、タグを指定しないため、`latest` タグがデフォルトで適用されます。タグを指定する場合は、イメージ名の末尾に `:tag` を追加する必要があります。詳細については、*Docker ドキュメント*の「[docker image tag](https://docs.docker.com/reference/cli/docker/image/tag/)」(Docker イメージのタグ) を参照してください。

**Topics**
+ [ローカル Dockerfile を作成してコンテナイメージを構築する](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Docker イメージを Amazon ECR に追加する](#studio-updated-byoi-add-container-image)

## ローカル Dockerfile を作成してコンテナイメージを構築する
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

以下の手順に従って、必要なソフトウェアと依存関係を使用して Dockerfile を作成します。

**Dockerfile を作成するには**

1. まず、以下の AWS CLI コマンドの変数を設定します。

   ```
   LOCAL_IMAGE_NAME=local-image-name
   ```

   `local-image-name` は、ここで定義するローカルデバイス上のコンテナイメージの名前です。

1. 「[カスタムイメージの仕様](studio-updated-byoi-specs.md)」に記載の仕様を満たす、`Dockerfile` という名前のテキストベースのドキュメントを作成します。

   サポートされているアプリケーションの `Dockerfile` 例については、「[Dockerfile サンプル](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)」を参照してください。
**注記**  
独自のイメージを SageMaker Unified Studio に取り込む (BYOI) 場合は、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile 仕様](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)」に従う必要があります。  
SageMaker Unified Studio の `Dockerfile` の例については、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile の例](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)」を参照してください。

1. `Dockerfile` と同じディレクトリで、以下のコマンドを使用して Docker イメージを構築します。ピリオド (`.`) は、`Dockerfile` が build コマンドのコンテキスト内にあることを指定します。

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   build が完了したら、以下のコマンドを使用して、コンテナイメージ情報を一覧表示できます。

   ```
   docker images
   ```

1. (オプション) 以下のコマンドを使用すると、イメージをテストできます。

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   出力では、サーバーが `http://127.0.0.1:8888/...` などの URL で実行されていることが示されます。この URL をブラウザにコピーして、イメージをテストできます。

   これが機能しない場合は、docker run コマンドに `-p port:port` を含める必要がある場合があります。このオプションは、コンテナで公開されているポートをホストシステム上のポートにマッピングします。Docker の実行の詳細については、*Docker ドキュメント*の「[Running containers](https://docs.docker.com/engine/containers/run/)」(コンテナ) を参照してください。

   サーバーが動作していることを確認したら、サーバーを停止し、すべてのカーネルをシャットダウンしてから続行できます。この手順は出力で確認できます。

## Docker イメージを Amazon ECR に追加する
<a name="studio-updated-byoi-add-container-image"></a>

Amazon ECR に コンテナイメージを追加するには、次の手順を実行します。
+ Amazon ECR リポジトリを作成します。
+ デフォルトのレジストリにログインします。
+ Amazon ECR リポジトリにイメージをプッシュします

**注記**  
Amazon ECR リポジトリは、イメージをアタッチするドメイン AWS リージョン と同じ にある必要があります。

**コンテナイメージを構築して Amazon ECR にプッシュするには**

1. まず、以下の AWS CLI コマンドの変数を設定します。

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` は、使用するアカウント ID です。これは、 AWS コンソールページの右上にあります。例えば、[SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker) などに表示されます。
   + `aws-region` は、Amazon SageMaker AI ドメイン AWS リージョン の です。これは、 AWS コンソールページの右上にあります。
   + `ecr-repository-name` は、ここで定義する Amazon Elastic Container Registry リポジトリの名前です。Amazon ECR リポジトリを表示するには、「[Amazon ECR コンソール](https://console.aws.amazon.com/ecr)」を参照してください。

1. Amazon ECR にログインし、Docker にサインインします。

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   認証が正常に完了すると、ログイン成功メッセージが表示されます。
**重要**  
エラーが発生した場合は、 AWS CLIの最新バージョンをインストールするか、アップグレードする必要がある可能性があります。詳細については、「*AWS Command Line Interface ユーザーガイド*」の「[Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

1. リポジトリにプッシュするには、Amazon ECR と互換性がある形式でイメージにタグを付けます。

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1.  AWS CLIコマンドを使って、Amazon ECR リポジトリを作成します。Amazon ECR コンソールを使用してリポジトリを作成するには、「[イメージを保存用の Amazon ECR プライベートリポジトリの作成](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)」を参照してください。

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. Amazon ECR リポジトリにイメージをプッシュします。Docker イメージにタグを付けることもできます。

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

イメージが Amazon ECR リポジトリに正常に追加されると、[Amazon ECR コンソール](https://console.aws.amazon.com/ecr)で表示できます。

# カスタムイメージをドメインにアタッチする
<a name="studio-updated-byoi-how-to-attach-to-domain"></a>

このページでは、カスタムイメージをドメインにアタッチする方法について説明します。Amazon SageMaker AI コンソールを使用してドメインに移動し、**イメージをアタッチ**するプロセスを開始するには、次の手順に従います。

次の手順では、 ドメインと同じ の Amazon ECR リポジトリにイメージをプッシュしていることを前提 AWS リージョン としています。まだプッシュしていない場合は、「[カスタムイメージを作成して Amazon ECR にプッシュする](studio-updated-byoi-how-to-prepare-image.md)」を参照してください。

イメージをアタッチする場合は、次の 2 つのオプションがあります。
+ **新しいイメージ**をアタッチする: このオプションでは、SageMaker AI イメージストアでイメージとイメージバージョンが作成され、ドメインにアタッチされます。
**注記**  
BYOI プロセスを続行する場合は、「[カスタムイメージを作成して Amazon ECR にプッシュする](studio-updated-byoi-how-to-prepare-image.md)」に記載の**新しいイメージ**オプションを使用します。
+ **既存のイメージ**をアタッチする: 使用するカスタムイメージを SageMaker AI イメージストアで既に作成している場合は、このオプションを使用します。このオプションでは、既存のカスタムイメージがドメインにアタッチされます。SageMaker AI イメージストアでカスタムイメージを表示するには、「[カスタムイメージの詳細を表示する (コンソール)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)」を参照してください。

------
#### [ New image ]

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

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

1. **[管理者設定]** セクションが展開されていない場合は、展開します。

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

1. **[ドメイン]** のリストから、イメージをアタッチするドメインを選択します。
**注記**  
SageMaker Unified Studio プロジェクトにイメージをアタッチし、使用するドメインを明確にする必要がある場合は、[「プロジェクトに関連付けられた SageMaker AI ドメインの詳細を表示する](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)」を参照してください。

1. **[環境]** タブを開きます。

1. **[パーソナル Studio アプリ用のカスタムイメージ]** セクションで、**[イメージをアタッチ]** をクリックします。

1. **[イメージソース]** で、**[新しいイメージ]** をクリックします。

1. Amazon ECR イメージの URI を追加します。形式は次のとおりです。

   ```
   account-id.dkr.ecr.aws-region.amazonaws.com/repository-name:tag
   ```

   1. Amazon ECR イメージ URI を取得するには、[[Amazon ECR プライベートリポジトリ]](https://console.aws.amazon.com/ecr/private-registry/repositories) ページに移動します。

   1. リポジトリ名のリンクをクリックします。

   1. Choose the icon that イメージバージョン (**イメージのタグ**) に対応する **[URI をコピー]** アイコンをクリックします。

1. 残りの手順に従って、カスタムイメージをアタッチします。
**注記**  
`Dockerfile` と一致するアプリケーションタイプを使用していることを確認します。詳細については、「[Dockerfile サンプル](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)」を参照してください。

イメージがドメインに正常にアタッチされると、**[環境]** タブでイメージを表示できます。

------
#### [ Existing image ]

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

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

1. **[管理者設定]** セクションが展開されていない場合は、展開します。

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

1. **[ドメイン]** のリストから、イメージをアタッチするドメインを選択します。
**注記**  
SageMaker Unified Studio プロジェクトにイメージをアタッチし、使用するドメインを明確にする必要がある場合は、[「プロジェクトに関連付けられた SageMaker AI ドメインの詳細を表示する](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)」を参照してください。

1. **[環境]** タブを開きます。

1. **[パーソナル Studio アプリ用のカスタムイメージ]** セクションで、**[イメージをアタッチ]** をクリックします。

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

1. SageMaker AI イメージストアから既存のイメージとイメージバージョンを選択します。

   イメージバージョンを表示できない場合は、イメージバージョンを作成する必要がある場合があります。詳細については、「[カスタムイメージの詳細を表示する (コンソール)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)」を参照してください。

1. 残りの手順に従って、カスタムイメージをアタッチします。
**注記**  
`Dockerfile` と一致するアプリケーションタイプを使用していることを確認します。詳細については、「[Dockerfile サンプル](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)」を参照してください。

イメージがドメインに正常にアタッチされると、**[環境]** タブでイメージを表示できます。

------

イメージがドメインに正常にアタッチされると、ドメインユーザーはアプリケーション用のイメージを選択できます。詳細については、「[Studio でカスタムイメージを起動する](studio-updated-byoi-how-to-launch.md)」を参照してください。

**注記**  
SageMaker Unified Studio プロジェクトにカスタムイメージをアタッチした場合は、SageMaker Unified Studio 内からアプリケーションを起動する必要があります。詳細については、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[カスタムイメージを起動する](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html)」を参照してください。

# コンテナ設定を更新する
<a name="studio-updated-byoi-how-to-container-configuration"></a>

カスタム Docker イメージを機械学習ワークフローに取り込むことができます。これらのイメージをカスタマイズする際に重要なのは、コンテナの設定、つまり [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html) の設定です。次のページでは、`ContainerConfig` を設定する方法の例を示します。

エントリポイントとは、コンテナの起動時に実行されるコマンドまたはスクリプトです。カスタムエントリポイントを使用すると、アプリケーションを起動する前に、環境の設定、サービスの初期化、または必要な設定を行うことができます。

この例では、 AWS CLIを使用して、JupyterLab アプリケーション用のカスタムエントリポイントを設定する方法について説明します。この例では、カスタムイメージとドメインが既に作成されていることを前提としています。手順については、「[カスタムイメージをドメインにアタッチする](studio-updated-byoi-how-to-attach-to-domain.md)」を参照してください。

1. まず、以下の AWS CLI コマンドの変数を設定します。

   ```
   APP_IMAGE_CONFIG_NAME=app-image-config-name
   ENTRYPOINT_FILE=entrypoint-file-name
   ENV_KEY=environment-key
   ENV_VALUE=environment-value
   REGION=aws-region
   DOMAIN_ID=domain-id
   IMAGE_NAME=custom-image-name
   IMAGE_VERSION=custom-image-version
   ```
   + `app-image-config-name` は、アプリケーションイメージの設定の名前です。
   + `entrypoint-file-name` は、コンテナのエントリポイントスクリプトの名前です。例えば、`entrypoint.sh`。
   + `environment-key` は、環境変数の名前です。
   + `environment-value` は、環境変数に割り当てられた値の名前です。
   + `aws-region` は、Amazon SageMaker AI ドメイン AWS リージョン の です。これは、 AWS コンソールページの右上にあります。
   + `domain-id` は、ドメイン ID です。ドメインを表示するには、「[ドメインを表示する](domain-view.md)」を参照してください。
   + `custom-image-name` は、カスタムイメージの名前です。カスタムイメージの詳細を表示するには、「[カスタムイメージの詳細を表示する (コンソール)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)」を参照してください。

     「[カスタムイメージをドメインにアタッチする](studio-updated-byoi-how-to-attach-to-domain.md)」の手順に従った場合、そのプロセスで使用したのと同じイメージ名を使用することをお勧めします。
   + `custom-image-version` は、カスタムイメージのバージョン番号です。これは、イメージのバージョンを表す整数である必要があります。カスタムイメージの詳細を表示するには、「[カスタムイメージの詳細を表示する (コンソール)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)」を参照してください。

1. イメージ設定を作成するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html) API を使用します。

   ```
   aws sagemaker create-app-image-config \
       --region ${REGION} \
       --app-image-config-name "${APP_IMAGE_CONFIG_NAME}" \
       --jupyter-lab-app-image-config "ContainerConfig = {
           ContainerEntrypoint = "${ENTRYPOINT_FILE}", 
           ContainerEnvironmentVariables = {
               "${ENV_KEY}"="${ENV_VALUE}"
           }
       }"
   ```

1. ドメインのデフォルト設定を更新するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) API を使用します。これにより、カスタムイメージとアプリケーションイメージ設定がアタッチされます。

   ```
   aws sagemaker update-domain \
       --region ${REGION} \
       --domain-id "${DOMAIN_ID}" \
       --default-user-settings "{
           \"JupyterLabAppSettings\": {
               \"CustomImages\": [
                   {
                       \"ImageName\": \"${IMAGE_NAME}\",
                       \"ImageVersionNumber\": ${IMAGE_VERSION},
                       \"AppImageConfigName\": \"${APP_IMAGE_CONFIG_NAME}\"
                   }
               ]
           }
       }"
   ```

# Studio でカスタムイメージを起動する
<a name="studio-updated-byoi-how-to-launch"></a>

Amazon SageMaker AI ドメインにカスタムイメージをアタッチすると、そのイメージをドメイン内のユーザーが使用できるようになります。次の手順に従って、カスタムイメージでアプリケーションを起動します。

**注記**  
SageMaker Unified Studio プロジェクトにカスタムイメージをアタッチした場合は、SageMaker Unified Studio 内からアプリケーションを起動する必要があります。詳細については、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[カスタムイメージを起動する](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html)」を参照してください。

1. Amazon SageMaker Studio を起動します。手順については、「[Amazon SageMaker Studio を起動する](studio-updated-launch.md)」を参照してください。

1. まだ行っていない場合は、**[アプリケーション]** セクションを展開します。

1. **[アプリケーション]** セクションからアプリケーションを選択します。利用可能なアプリケーションが表示されない場合は、アプリケーションが非表示に設定されている可能性があります。この場合は、管理者に連絡してください。

1. スペースを作成するには、[**\$1 *アプリケーション*スペースの作成**] をクリックし、スペース作成の指示に従います。

   既存のスペースを選択するには、開く対象のスペースのリンク名をクリックします。

   

1. **[イメージ]** で、使用するイメージを選択します。

   **[イメージ]** ドロップダウンが使用できない場合は、スペースを停止する必要がある場合があります。停止するには、**[スペースを停止]** をクリックします。

1. スペースの設定を確認し、**[スペースを実行]** をクリックします。

# カスタムイメージの詳細を表示する
<a name="studio-updated-byoi-view-images"></a>

次のページでは、SageMaker AI イメージストアでカスタムイメージの詳細を表示する方法について説明します。

## カスタムイメージの詳細を表示する (コンソール)
<a name="studio-updated-byoi-view-images-console"></a>

SageMaker AI コンソールを使用してカスタムイメージを表示する方法について説明します。このセクションでは、イメージの詳細を表示し、編集します。

**カスタムイメージを表示する (コンソール)**

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

1. **[管理者設定]** セクションを展開します。

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

1. **[カスタムイメージ]** のリストから、イメージ名のハイパーリンクをクリックします。

## カスタムイメージの詳細を表示する (AWS CLI)
<a name="studio-updated-byoi-view-images-cli"></a>

次のセクションでは、 AWS CLIを使用してカスタムイメージを表示する方法の例を示します。

```
aws sagemaker list-images \
       --region aws-region
```

# SOCI でコンテナの起動を高速化する
<a name="soci-indexing"></a>

SOCI (Seekable Open Container Initiative) インデックス作成により、 [Amazon SageMaker Studio](studio-updated.md)または [Amazon SageMaker Unified Studio ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)でのカスタムコンテナイメージの遅延ロードが可能になります。SOCI は、カスタム[Bring your own image (BYOI)](studio-updated-byoi.md)コンテナの起動時間を約 30～70% 大幅に短縮します。レイテンシーの改善は、イメージのサイズ、ホスティングインスタンスの可用性、その他のアプリケーションの依存関係によって異なります。SOCI は、必要なコンポーネントのみでコンテナを起動できるインデックスを作成し、必要に応じて追加のファイルをオンデマンドで取得します。

SOCI は、カスタムイメージの反復機械学習 (ML) 開発ワークフローを中断するコンテナの起動時間の遅延に対処します。ML ワークロードが複雑になるにつれて、コンテナイメージが大きくなり、開発サイクルを妨げるスタートアップの遅延が発生しています。

**Topics**
+ [主な利点](#soci-indexing-key-benefits)
+ [SOCI インデックス作成の仕組み](#soci-indexing-how-works)
+ [アーキテクチャのコンポーネント](#soci-indexing-architecture-components)
+ [サポートされているツール](#soci-indexing-supported-tools)
+ [SOCI インデックス作成のアクセス許可](soci-indexing-setup.md)
+ [nerdctl と SOCI CLI を使用して SOCI インデックスを作成する例](soci-indexing-example-create-indexes.md)
+ [SOCI インデックス付きイメージを Studio と統合する例](soci-indexing-example-integrate-studio.md)

## 主な利点
<a name="soci-indexing-key-benefits"></a>
+ **イテレーションサイクルの高速化**: イメージタイプとインスタンスタイプに応じて、コンテナの起動を減らす
+ **ユニバーサル最適化**: Studio のすべてのカスタム BYOI コンテナにパフォーマンス上の利点を拡張する

## SOCI インデックス作成の仕組み
<a name="soci-indexing-how-works"></a>

SOCI は、コンテナイメージの内部ファイル構造をマッピングする特殊なメタデータインデックスを作成します。このインデックスにより、イメージ全体をダウンロードせずに個々のファイルにアクセスできます。SOCI インデックスは、OCI (Open Container Initiative) 準拠のアーティファクトとして [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) に保存され、元のコンテナイメージにリンクされ、イメージダイジェストと署名の有効性が保持されます。

Studio でコンテナを起動すると、システムは SOCI インデックスを使用して、起動に必要な必須ファイルのみを識別してダウンロードします。アプリケーションが必要とする追加のコンポーネントは並行して取得されます。

## アーキテクチャのコンポーネント
<a name="soci-indexing-architecture-components"></a>
+ **元のコンテナイメージ**: Amazon ECR に保存されているベースコンテナ
+ **SOCI インデックスアーティファクト**: イメージのファイル構造のメタデータマッピング
+ **OCI イメージインデックスマニフェスト**: 元のイメージと SOCI インデックスをリンクします
+ **Finch コンテナランタイム**: Studio との遅延ロード統合を有効にします

## サポートされているツール
<a name="soci-indexing-supported-tools"></a>


| ツール | 統合 | 
| --- | --- | 
| ノード | コンテナ化されたセットアップが必要 | 
| Finch CLI | ネイティブ SOCI サポート | 
| Docker \$1 SOCI CLI | 追加のツールが必要 | 

**Topics**
+ [主な利点](#soci-indexing-key-benefits)
+ [SOCI インデックス作成の仕組み](#soci-indexing-how-works)
+ [アーキテクチャのコンポーネント](#soci-indexing-architecture-components)
+ [サポートされているツール](#soci-indexing-supported-tools)
+ [SOCI インデックス作成のアクセス許可](soci-indexing-setup.md)
+ [nerdctl と SOCI CLI を使用して SOCI インデックスを作成する例](soci-indexing-example-create-indexes.md)
+ [SOCI インデックス付きイメージを Studio と統合する例](soci-indexing-example-integrate-studio.md)

# SOCI インデックス作成のアクセス許可
<a name="soci-indexing-setup"></a>

[Amazon SageMaker Studio](studio-updated.md) または Amazon [Amazon SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)ECR に保存します。

**Topics**
+ [前提条件](#soci-indexing-setup-prerequisites)
+ [必要な IAM 許可](#soci-indexing-setup-iam-permissions)

## 前提条件
<a name="soci-indexing-setup-prerequisites"></a>
+ AWS アカウント を管理するアクセス許可を持つ [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html) (IAM) ロールを持つ
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ コンテナイメージを保存するための [Amazon ECR プライベートリポジトリ](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) 
+ 適切な認証情報で設定された [AWS CLI v2.0\$1](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 
+ 次のコンテナツール:
  + 必須: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + オプション:
    + [ノード](https://github.com/containerd/nerdctl)
    + [finch](https://github.com/runfinch/finch)

## 必要な IAM 許可
<a name="soci-indexing-setup-iam-permissions"></a>

IAM ロールには、以下のアクセス許可が必要です。
+ SageMaker AI リソース (ドメイン、イメージ、アプリ設定) を作成および管理します。
  + [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS 管理ポリシーを使用できます。アクセス許可の詳細については、「」を参照してください[AWS マネージドポリシー: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)。
+ [Amazon ECR プライベートリポジトリにイメージをプッシュするための IAM アクセス許可](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)。

# nerdctl と SOCI CLI を使用して SOCI インデックスを作成する例
<a name="soci-indexing-example-create-indexes"></a>

次のページでは、nerdctl と SOCI CLI を使用して SOCI インデックスを作成する方法の例を示します。

**SOCI インデックスの作成の例**

1. まず、以下の AWS CLI コマンドの変数を設定します。変数を設定する例を次に示します。

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   REPOSITORY_NAME="repository-name"
   ORIGINAL_IMAGE_TAG="original-image-tag"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   変数定義:
   + `ACCOUNT_ID` は AWS アカウント ID です
   + `REGION` は Amazon ECR プライベートレジストリ AWS リージョン の です。
   + `REPOSITORY_NAME` は Amazon ECR プライベートレジストリの名前です
   + `ORIGINAL_IMAGE_TAG` は元のイメージのタグです
   + `SOCI_IMAGE_TAG` は SOCI インデックス付きイメージのタグです

1. 必要なツールをインストールします。

   ```
   # Install SOCI CLI, containerd, and nerdctl
   sudo yum install soci-snapshotter
   sudo yum install containerd jq  
   sudo systemctl start soci-snapshotter
   sudo systemctl restart containerd
   sudo yum install nerdctl
   ```

1. レジストリ変数を設定します。

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. リージョンをエクスポートし、Amazon ECR に認証します。

   ```
   export AWS_REGION=$REGION
   REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION)
   echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
   ```

1. 元のコンテナイメージをプルします。

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. SOCI インデックスを作成します。

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. SOCI インデックス付きイメージをプッシュします。

   ```
   sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

このプロセスでは、ECR リポジトリ内の元のコンテナイメージに 2 つのアーティファクトを作成します。
+ SOCI インデックス - 遅延ロードを有効にするメタデータ
+ Image Index マニフェスト - OCI 準拠マニフェスト

# SOCI インデックス付きイメージを Studio と統合する例
<a name="soci-indexing-example-integrate-studio"></a>

元のコンテナイメージタグではなく、Studio で SOCI インデックス付きイメージを使用するには、SOCI インデックス付きイメージタグを参照する必要があります。SOCI 変換プロセス中に指定したタグを使用します (例: `SOCI_IMAGE_TAG`の [nerdctl と SOCI CLI を使用して SOCI インデックスを作成する例](soci-indexing-example-create-indexes.md))。

**SOCI インデックス付きイメージの統合の例**

1. まず、以下の AWS CLI コマンドの変数を設定します。変数を設定する例を次に示します。

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   IMAGE_NAME="sagemaker-image-name"
   IMAGE_CONFIG_NAME="sagemaker-image-config-name"
   ROLE_ARN="your-role-arn"
   DOMAIN_ID="domain-id"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   変数定義:
   + `ACCOUNT_ID` は AWS アカウント ID です
   + `REGION` は Amazon ECR プライベートレジストリ AWS リージョン の です。
   + `IMAGE_NAME` は SageMaker イメージの名前です
   + `IMAGE_CONFIG_NAME` は SageMaker イメージ設定の名前です。
   + `ROLE_ARN` は、[必要な IAM アクセス許可に記載されているアクセス許可を持つ実行ロールの ARN ](soci-indexing-setup.md#soci-indexing-setup-iam-permissions)です。
   + `DOMAIN_ID` は[ドメイン ID](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html) です
**注記**  
SageMaker Unified Studio プロジェクトにイメージをアタッチし、使用するドメインを明確にする必要がある場合は、[「プロジェクトに関連付けられた SageMaker AI ドメインの詳細を表示する](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)」を参照してください。
   + `SOCI_IMAGE_TAG` は SOCI インデックス付きイメージのタグです

1. リージョンをエクスポートします。

   ```
   export AWS_REGION=$REGION
   ```

1. SageMaker イメージを作成します。

   ```
   aws sagemaker create-image \
       --image-name "$IMAGE_NAME" \
       --role-arn "$ROLE_ARN"
   ```

1. SOCI インデックス URI を使用して SageMaker イメージバージョンを作成します。

   ```
   IMAGE_INDEX_URI="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$SOCI_IMAGE_TAG"
   
   aws sagemaker create-image-version \
       --image-name "$IMAGE_NAME" \
       --base-image "$IMAGE_INDEX_URI"
   ```

1. アプリケーションイメージ設定を作成し、Amazon SageMaker AI ドメインを更新して、アプリケーションのカスタムイメージを含めます。これは、Code-OSS、Visual Studio Code - Open Source (Code Editor)、JupyterLab アプリケーションに基づいて、Code Editor で実行できます。以下のアプリケーションオプションを選択して、ステップを表示します。

------
#### [ Code Editor ]

   Code Editor のアプリケーションイメージ設定を作成します。

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --code-editor-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Amazon SageMaker AI ドメインを更新して、コードエディタのカスタムイメージを含めます。

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "CodeEditorAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------
#### [ JupyterLab ]

   JupyterLab のアプリケーションイメージ設定を作成します。

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --jupyter-lab-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Amazon SageMaker AI ドメインを更新して、JupyterLab のカスタムイメージを含めます。

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "JupyterLabAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------

1. ドメインを更新してカスタムイメージを含めたら、カスタムイメージを使用して Studio でアプリケーションを作成できます。カスタムイメージを使用し[Studio でカスタムイメージを起動する](studio-updated-byoi-how-to-launch.md)ていることを確認する場合。

# カスタムイメージのリソースをデタッチしてクリーンアップする
<a name="studio-updated-byoi-how-to-detach-from-domain"></a>

次のページでは、Amazon SageMaker AI コンソールまたは AWS Command Line Interface () を使用してカスタムイメージをデタッチし、関連リソースをクリーンアップする方法について説明しますAWS CLI。

**重要**  
SageMaker AI イメージストアからイメージを削除する前に、まずドメインからカスタムイメージをデタッチする必要があります。デタッチしないと、ドメイン情報の表示時やドメインへの新しいカスタムイメージのアタッチ時にエラーが発生する可能性があります。  
カスタムイメージのロード中でエラーが発生した場合は、「[カスタムイメージのロードに失敗しました](studio-updated-troubleshooting.md#studio-updated-troubleshooting-custom-image)」を参照してください。

## カスタムイメージをデタッチして削除する (コンソール）
<a name="studio-updated-byoi-how-to-detach-from-domain-console"></a>

コンソールを使用して、カスタムイメージを SageMaker AI からデタッチし、カスタムイメージのリソースをクリーンアップする方法について説明します。

**カスタムイメージをドメインからデタッチする**

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

1. **[管理者設定]** セクションを展開します。

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

1. **[ドメイン]** リストで、ドメインを選択します。

1. **[環境]** タブを開きます。

1. **[パーソナル Studio アプリ用のカスタムイメージ]** の場合は、デタッチするイメージのチェックボックスをオンにします。

1. **[デタッチ]** を選択します。

1. デタッチする指示に従ってください。

**カスタムイメージを削除する**

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

1. **[管理者設定]** セクションが展開されていない場合は、展開します。

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

1. **[イメージ]** のリストから、削除するイメージを選択します。

1. **[削除]** を選択します。

1. 指示に従って、SageMaker AI からイメージとイメージのすべてのバージョンを削除します。

**Amazon ECR リポジトリからカスタムイメージとリポジトリを削除する**
**重要**  
これにより、このリポジトリ内のコンテナイメージとアーティファクトもすべて削除されます。

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

1. まだ展開されていない場合は、左側のナビゲーションペインを展開します。

1. **[プライベートレジストリ]** で、**[リポジトリ]** をクリックします。

1. 削除するリポジトリを選択します。

1. **[削除]** を選択します。

1. 削除する指示に従ってください。

## カスタムイメージをデタッチして削除する (AWS CLI）
<a name="studio-updated-byoi-how-to-detach-from-domain-cli"></a>

次のセクションでは、 AWS CLIを使用してカスタムイメージをデタッチする方法の例を示します。

1. まず、以下の AWS CLI コマンドの変数を設定します。

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   APP_IMAGE_CONFIG=app-image-config
   SAGEMAKER_IMAGE_NAME=custom-image-name
   ```
   + `aws-region` は、Amazon SageMaker AI ドメイン AWS リージョン の です。これは、任意の AWS コンソールページの右上にあります。
   + `app-image-config` は、アプリケーションイメージの設定の名前です。次の AWS CLI コマンドを使用して、 のアプリケーションイメージ設定を一覧表示します AWS リージョン。

     ```
     aws sagemaker list-app-image-configs \
            --region ${REGION}
     ```
   + `custom-image-name` は、カスタムイメージ名です。次の AWS CLI コマンドを使用して、 内のイメージを一覧表示します AWS リージョン。

     ```
     aws sagemaker list-images \
            --region ${REGION}
     ```

1. これらの手順を使用して、イメージとイメージバージョンをドメインからデタッチするには、ドメイン設定の JSON ファイルを作成または更新する必要があります。
**注記**  
「[カスタムイメージをドメインにアタッチする](studio-updated-byoi-how-to-attach-to-domain.md)」の手順に従った場合、`update-domain.json` という名前のファイルを使用してドメインを更新した可能性があります。  
そのファイルがない場合は、代わりに新しい JSON ファイルを作成できます。

   ドメインの更新に使用する `update-domain.json` という名前のファイルを作成します。

1. カスタムイメージを削除するには、`CustomImages` を空白のままにして、例えば `"CustomImages": []` とする必要があります。Code Editor または JupyterLab の設定ファイルの例を表示するには、次のいずれかを選択します。

------
#### [ Code Editor: update domain configuration file example ]

   [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html) を使用した Code Editor の設定ファイルの例。

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "CodeEditorAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------
#### [ JupyterLab: update domain configuration file example ]

   [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html) を使用した JupyterLab の設定ファイルの例。

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "JupyterLabAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------

   `domain-id` は、イメージがアタッチされているドメイン ID です。ドメインの一覧を表示するには、以下のコマンドを使用します。

   ```
   aws sagemaker list-domains \
         --region ${REGION}
   ```

1. ファイルを保存します。

1. [更新ドメイン設定ファイル を使用して update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI を呼び出します`update-domain.json`。
**注記**  
カスタムイメージを更新する前に、ドメイン内のすべての**アプリケーション**を削除する必要があります。ユーザープロファイルや共有スペースは、削除する必要は**ありません**。アプリケーションを削除する手順については、次のいずれかのオプションを選択します。  
SageMaker AI コンソールを使用する場合は、「[ドメイン内の SageMaker AI リソースをシャットダウンする](sm-console-domain-resources-shut-down.md)」を参照してください。
を使用する場合は AWS CLI、 のステップ 1～3 を使用します[Amazon SageMaker AI ドメインを削除する (AWS CLI)](gs-studio-delete-domain.md#gs-studio-delete-domain-cli)。

   ```
   aws sagemaker update-domain \
       --cli-input-json file://update-domain.json \
       --region ${REGION}
   ```

1. アプリケーションイメージ構成を削除します。

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name ${APP_IMAGE_CONFIG}
   ```

1. カスタムイメージを削除します。これにより、すべてのイメージバージョンも削除されます。Amazon ECR コンテナイメージとイメージバージョンは削除されません。これを行うには、以下のオプションの手順を使用します。

   ```
   aws sagemaker delete-image \
       --image-name ${SAGEMAKER_IMAGE_NAME}
   ```

1. (オプション) Amazon ECR リソースを削除します。次のリストは、以下の手順の Amazon ECR リソース情報を取得するための AWS CLI コマンドを示しています。

   1. 以下の AWS CLI コマンドの変数を設定します。

      ```
      ECR_REPO_NAME=ecr-repository-name
      ```

      `ecr-repository-name` は、Amazon Elastic Container Registry リポジトリの名前です。

      リポジトリの詳細を一覧表示するには、以下のコマンドを使用します。

      ```
      aws ecr describe-repositories \
              --region ${REGION}
      ```

   1. Amazon ECR からレポジトリを削除する 
**重要**  
これにより、このリポジトリ内のコンテナイメージとアーティファクトもすべて削除されます。

      ```
      aws ecr delete-repository \
            --repository-name ${ECR_REPO_NAME} \
            --force \
            --region ${REGION}
      ```