

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

# Amazon SageMaker Studio Classic에 사용자 지정 SageMaker 이미지 생성
<a name="studio-byoi-create"></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 AI 콘솔 또는 AWS CLI를 사용하여 사용자 지정 SageMaker 이미지를 만드는 방법을 설명합니다.

콘솔에서 이미지를 생성할 때 SageMaker AI는 최초 이미지 버전도 생성합니다. 각 이미지 버전은 [Amazon Elastic Container Registry(ECR)](https://console.aws.amazon.com/ecr/)에 저장된 컨테이너 이미지를 나타냅니다. 컨테이너 이미지는 Amazon SageMaker Studio Classic에서 사용하기 위한 요구 사항을 충족해야 합니다. 자세한 내용은 [Amazon SageMaker Studio Classic의 사용자 지정 SageMaker 이미지 사양](studio-byoi-specs.md) 섹션을 참조하세요. 이미지를 로컬에서 테스트하고 일반적인 문제를 해결하는 방법에 대한 정보는 [SageMaker Studio Classic Custom Image Samples 리포지토리](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md)를 참조하세요.

사용자 지정 SageMaker 이미지를 만든 후 이를 Studio Classic에서 사용하려면 해당 이미지를 도메인 또는 공유 공간에 연결해야 합니다. 자세한 내용은 [Amazon SageMaker Studio Classic에서 사용자 지정 SageMaker 이미지 연결](studio-byoi-attach.md) 섹션을 참조하세요.

## 콘솔에서 SageMaker 이미지 만들기
<a name="studio-byoi-create-console"></a>

다음 섹션에서는 SageMaker AI 콘솔에서 사용자 지정 SageMaker 이미지를 만드는 방법을 보여줍니다.

**이미지 생성**

1. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)에서 Amazon SageMaker AI 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **관리자 구성**을 선택합니다.

1. **관리자 구성**에서 **이미지**를 선택합니다.

1. **사용자 지정 이미지** 페이지에서 **이미지 생성**을 선택합니다.

1. **이미지 소스**의 경우 Amazon ECR에 있는 컨테이너 이미지의 레지스트리 경로를 입력합니다. 경로는 다음 형식입니다.

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

1. **다음**을 선택합니다.

1. **이미지 속성**에 다음을 입력합니다.
   + 이미지 이름 - 이름은 현재 AWS 리전의 계정에 고유해야 합니다.
   + (선택 사항) 표시 이름 - Studio Classic 사용자 인터페이스에 표시되는 이름입니다. 입력하지 않은 경우 `Image name`가 표시됩니다.
   + (선택 사항) 설명 - 이미지에 대한 설명입니다.
   + IAM 역할 - 역할에는 [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) 정책이 연결되어야 합니다. 드롭다운 메뉴에서 다음 옵션 중 하나를 선택합니다.
     + 새 역할 생성 - 노트북 사용자가 액세스할 수 있도록 Amazon Simple Storage Service(S3) 버킷을 추가로 지정합니다. 추가 버킷에 대한 액세스 권한을 허용하지 않으려면 **없음**을 선택합니다.

       SageMaker AI는 `AmazonSageMakerFullAccess` 정책을 역할에 연결합니다. 해당 역할을 통해 노트북 사용자는 체크 표시 옆에 나열된 S3 버킷에 액세스할 수 있습니다.
     + 사용자 지정 IAM 역할 ARN 입력 - IAM 역할의 Amazon 리소스 이름(ARN)을 입력합니다.
     + 기존 역할 사용 - 목록에서 기존 역할 중 하나를 선택합니다.
   + (선택 사항) 이미지 태그 - **새 태그 추가**를 선택합니다. 최대 50개의 태그를 추가할 수 있습니다. 태그는 Studio Classic 사용자 인터페이스, SageMaker AI 콘솔 또는 SageMaker AI `Search` API를 사용하여 검색할 수 있습니다.

1. **제출**을 선택합니다.

새 이미지가 **사용자 지정 이미지** 목록에 표시되고 짧게 강조 표시됩니다. 이미지를 성공적으로 만든 후 이미지 이름을 선택하여 속성을 보거나 **버전 생성**을 선택하여 다른 버전을 만들 수 있습니다.

**다른 이미지 버전을 만들려면**

1. 이미지와 같은 행에서 **버전 생성**을 선택합니다.

1. **이미지 소스**의 경우 Amazon ECR 컨테이너 이미지의 레지스트리 경로를 입력합니다. 컨테이너 이미지는 이전 버전의 SageMaker 이미지에서 사용된 이미지와 동일하지 않아야 합니다.

## 에서 SageMaker 이미지 생성 AWS CLI
<a name="studio-byoi-sdk-create-image"></a>

 AWS CLI를 사용하여 컨테이너 이미지에서 SageMaker 이미지를 만들려면 다음 단계를 수행합니다.
+ `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"
   }
   ```

1. 컨테이너 이미지에서 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"
   }
   ```

1. 이미지 버전이 성공적으로 생성되었는지 확인합니다.

   ```
   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"`인 경우 응답에는 실패 이유도 포함됩니다. 권한 문제는 실패의 일반적인 원인입니다. 또한 사용자 지정 이미지에 대해 KernelGateway 앱을 시작하거나 실행할 때 오류가 발생하는 경우 Amazon CloudWatch Logs를 확인할 수 있습니다. 로그 그룹의 이름은 `/aws/sagemaker/studio`입니다. 로그 스트림의 이름은 `$domainID/$userProfileName/KernelGateway/$appName`입니다.

1. 구성 파일을 만들고 이름을 `app-image-config-input.json`로 지정합니다. `KernelSpecs`의 `Name`값은 이 `AppImageConfig`와 관련된 이미지에서 사용할 수 있는 KernelSpec의 이름과 일치해야 합니다. 이 값은 대소문자를 구분합니다. 컨테이너 내부의 쉘에서 `jupyter-kernelspec list`를 실행하여 이미지에서 사용 가능한 커널 사양을 찾을 수 있습니다.`MountPath`는 이미지 내에서 Amazon Elastic File System(Amazon EFS) 홈 디렉토리를 마운트하는 경로입니다. Amazon EFS 홈 디렉터리가 마운트될 때 해당 경로가 재정의되므로 컨테이너 내에서 사용하는 경로와 달라야 합니다.
**참고**  
허용되는 값은 다음 `DefaultUID`값과 `DefaultGID`조합 뿐입니다.  
 DefaultUID: 1000 및 DefaultGID: 100 
 DefaultUID: 0 및 DefaultGID: 0 

   ```
   {
       "AppImageConfigName": "custom-image-config",
       "KernelGatewayImageConfig": {
           "KernelSpecs": [
               {
                   "Name": "python3",
                   "DisplayName": "Python 3 (ipykernel)"
               }
           ],
           "FileSystemConfig": {
               "MountPath": "/home/sagemaker-user",
               "DefaultUid": 1000,
               "DefaultGid": 100
           }
       }
   }
   ```

1. 이전 단계에서 생성한 파일을 사용하여 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"
   }
   ```