

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 기존 보유 이미지 사용(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에서 사용할 자체 이미지를 가져오기 위한 주요 용어를 정의합니다.
+ **Dockerfile:** Docker 이미지 구축 지침이 포함된 텍스트 기반 문서입니다. 이 문서는 Docker 이미지의 언어 패키지 및 기타 종속성을 식별합니다.
+ **Docker 이미지:** Dockerfile에서 구축된 소프트웨어 및 종속성의 패키지 세트입니다.
+ **SageMaker AI 이미지 저장소:** 사용자 지정 이미지를 위한 SageMaker AI의 내의 스토리지입니다.

**Topics**
+ [핵심 용어](#studio-updated-byoi-basics)
+ [사용자 지정 이미지 사양](studio-updated-byoi-specs.md)
+ [자체 이미지를 가져오는 방법](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 액세스를 추가할 수 있습니다. IDs는 컨테이너에서 실행되는 프로세스가 필요한 것보다 더 많은 권한을 갖지 못하도록 다시 매핑됩니다.
+ `GID` – Docker 컨테이너의 그룹 ID입니다. GID=100은 지원되는 값입니다. 사용자에게 sudo 액세스를 추가할 수 있습니다. IDs는 컨테이너에서 실행되는 프로세스가 필요한 것보다 더 많은 권한을 갖지 못하도록 다시 매핑됩니다.
+ 메타데이터 디렉터리 -에서 사용하는 `/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에 가져오는 경우 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile specifications](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)을 따라야 합니다.  
SageMaker Unified Studio의 `Dockerfile` 예시는 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile example](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)에서 확인할 수 있습니다.

# 자체 이미지를 가져오는 방법
<a name="studio-updated-byoi-how-to"></a>

아래 페이지에서는 사용자 지정 이미지를 가져오는 방법에 대한 지침을 제공합니다. 계속하기 전에 다음 사전 조건이 충족되었는지 확인하세요.

## 사전 조건
<a name="studio-updated-byoi-how-to-prerequisites"></a>

자체 이미지를 Amazon SageMaker AI에 가져오려면 다음 사전 조건을 충족해야 합니다.
+ Docker 애플리케이션을 설정합니다. 자세한 내용은 *Docker 설명서*의 [Get started](https://docs.docker.com/get-started/)를 참조하세요.
+ *AWS Command Line Interface 버전 2 사용 설명서*의 [시작하기 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 단계에 AWS CLI 따라 최신를 설치합니다.
+ Amazon Elastic Container Registry(Amazon ECR) 서비스에 액세스할 수 있는 권한입니다. 자세한 내용은 *Amazon ECR 사용 설명서*에서 [Amazon ECR Managed Policies](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/)를 참조하세요.

**Topics**
+ [Dockerfile 생성 및 컨테이너 이미지 구축](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Amazon ECR에 Docker 이미지 추가](#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에 가져오는 경우 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile specifications](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)을 따라야 합니다.  
SageMaker Unified Studio의 `Dockerfile` 예시는 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile example](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)에서 확인할 수 있습니다.

1. `Dockerfile`이 있는 디렉터리에서 다음 명령을 사용하여 Docker 이미지를 구축합니다. 마침표(`.`)는 `Dockerfile`이 구축 명령의 컨텍스트에 있어야 함을 지정합니다.

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

   구축이 완료되면 다음 명령을 사용하여 컨테이너 이미지 정보를 나열할 수 있습니다.

   ```
   docker images
   ```

1. (선택 사항) 다음 명령을 사용하여 이미지를 테스트할 수 있습니다.

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

   출력에서 서버가 `http://127.0.0.1:8888/...`과 같은 URL에서 실행되고 있음을 확인할 수 있습니다. URL을 브라우저에 복사하여 이미지를 테스트할 수 있습니다.

   이렇게 해서 테스트되지 않으면 docker run 명령에 `-p port:port`를 포함해야 할 수 있습니다. 이 옵션은 컨테이너에 있는 노출된 포트를 호스트 시스템에 있는 포트에 매핑합니다. docker run에 대한 자세한 내용은 *Docker 설명서*의 [Running containers](https://docs.docker.com/engine/containers/run/)를 참조하세요.

   서버가 작동하는지 확인한 후 계속하기 전에 서버를 중지하고 모든 커널을 종료할 수 있습니다. 지침은 출력에서 볼 수 있습니다.

## Amazon ECR에 Docker 이미지 추가
<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 사용자 가이드*에서 [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 콘솔을 사용하여 리포지토리를 생성하려면 [Creating an Amazon ECR private repository to store images](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 콘솔을 사용하여 도메인으로 이동하고 **이미지 연결** 프로세스를 시작합니다.

다음 지침에서는 도메인 AWS 리전 과 동일한의 Amazon ECR 리포지토리에 이미지를 푸시했다고 가정합니다. 아직 이 작업을 수행하지 않았다면 [사용자 지정 이미지를 생성하고 Amazon ECR로 푸시](studio-updated-byoi-how-to-prepare-image.md) 섹션을 참조하세요.

이미지를 연결할 때는 두 가지 옵션이 있습니다.
+ **새 이미지** 연결: 이 옵션은 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. 이미지 버전(**이미지 태그**)에 해당하는 **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 사용 설명서*의 [Launch your custom image](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 사용 설명서*의 [Launch your custom image](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는 사용자 지정 [기존 보유 이미지 사용(BYOI)](studio-updated-byoi.md) 컨테이너의 시작 시간을 약 30\$170% 크게 줄입니다. 지연 시간 개선은 이미지 크기, 호스팅 인스턴스 가용성 및 기타 애플리케이션 종속성에 따라 달라집니다. 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 인덱스는 [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)에 OCI(Open Container Initiative) 준수 아티팩트로 저장되고 원본 컨테이너 이미지에 연결되어 이미지 다이제스트와 서명 유효성을 유지합니다.

Studio에서 컨테이너를 시작하면 시스템은 SOCI 인덱스를 사용하여 시작에 필요한 필수 파일만 식별하고 다운로드합니다. 추가 구성 요소는 애플리케이션에 필요하므로 병렬로 가져옵니다.

## 아키텍처 구성 요소
<a name="soci-indexing-architecture-components"></a>
+ **원본 컨테이너 이미지**: Amazon ECR에 저장된 기본 컨테이너
+ **SOCI 인덱스 아티팩트**: 이미지의 파일 구조 메타데이터 매핑
+ **OCI 이미지 인덱스 매니페스트**: 원본 이미지와 SOCI 인덱스를 연결합니다.
+ **Finch 컨테이너 런타임**: Studio와의 지연 로딩 통합을 활성화합니다.

## 지원되는 도구
<a name="soci-indexing-supported-tools"></a>


| 도구 | 통합 | 
| --- | --- | 
| nerdctl | 컨테이너 설정 필요 | 
| 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 이상](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 
+ 다음 컨테이너 도구:
  + 필수: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + 옵션:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [핀치](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`는 ID입니다 AWS 계정 .
   + `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 리포지토리의 원래 컨테이너 이미지에 대해 두 개의 아티팩트를 생성합니다.
+ SOCI 인덱스 - 지연 로딩을 활성화하는 메타데이터
+ 이미지 인덱스 매니페스트 - 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`는 ID입니다 AWS 계정 .
   + `REGION`는 Amazon ECR 프라이빗 레지스트리 AWS 리전 의 입니다.
   + `IMAGE_NAME`는 SageMaker 이미지의 이름입니다.
   + `IMAGE_CONFIG_NAME`는 SageMaker 이미지 구성의 이름입니다.
   + `ROLE_ARN`는 [필수 IAM](soci-indexing-setup.md#soci-indexing-setup-iam-permissions) 권한에 나열된 권한을 가진 실행 역할의 ARN입니다.
   + `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 ]

   코드 편집기에 대한 애플리케이션 이미지 구성을 생성합니다.

   ```
   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 } }'
   ```

   JupyterLab용 사용자 지정 이미지를 포함하도록 Amazon SageMaker AI 도메인을 업데이트합니다.

   ```
   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-](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI domain을 호출합니다`update-domain.json`.
**참고**  
사용자 지정 이미지를 업데이트하려면 먼저 도메인의 모든 **애플리케이션**을 삭제해야 합니다. 사용자 프로필이나 공유 스페이스를 삭제할 필요가 **없습니다**. 애플리케이션 삭제에 대한 지침은 다음 옵션 중 하나를 선택합니다.  
SageMaker AI 콘솔을 사용하려면 [도메인에서 SageMaker AI 리소스 종료](sm-console-domain-resources-shut-down.md) 섹션을 참조하세요.
를 사용하려면의 1\$13단계를 AWS CLI사용합니다[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}
      ```