

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

# Amazon SageMaker Studio의 코드 편집기
<a name="code-editor"></a>

[Code-OSS, Visual Studio Code - 오픈 소스 ](https://github.com/microsoft/vscode#visual-studio-code---open-source-code---oss)를 기반으로 하는 코드 편집기는 분석 및 기계 학습 코드를 작성, 테스트, 디버깅 및 실행하는 데 도움이 됩니다. 코드 편집기는 Amazon SageMaker Studio를 확장하고 완전히 통합됩니다. 또한 [Open VSX 레지스트리](https://open-vsx.org/)에서 사용할 수 있는 통합 개발 환경(IDE) 확장을 지원합니다. 다음 페이지에서는 코드 편집기에 대한 정보와 이를 사용하기 위한 키 세부 정보를 제공합니다.

Code Editor에는 [AWS Toolkit for VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) 확장이 사전 설치되어 있어 코드 권장 사항을 실시간으로 제공하는 [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html)범용 기계 학습 기반 코드 생성기인 AWS 서비스 와 같은에 연결할 수 있습니다. 확장 팩에 대한 자세한 내용은 [코드 편집기 연결 및 확장](code-editor-use-connections-and-extensions.md)을 참조하세요.

**중요**  
2023년 11월 30일부터 이전 Amazon SageMaker Studio 환경이 이제 Amazon SageMaker Studio Classic으로 명명되었습니다. 다음 섹션은 업데이트된 Studio 환경 사용에 해당합니다. Studio Classic 애플리케이션 사용에 대한 자세한 내용은 [Amazon SageMaker Studio Classic](studio.md) 섹션을 참조하세요.

코드 편집기를 시작하려면 코드 편집기 프라이빗 공간을 생성합니다. 코드 편집기 스페이스는 컴퓨팅에 단일 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용하고 스토리지에 단일 Amazon Elastic Block Store(Amazon EBS) 볼륨을 사용합니다. 코드, Git 프로필, 환경 변수와 같은 공간 내 모든 것은 동일한 Amazon EBS 볼륨에 저장됩니다. 볼륨은 3,000 IOPS고 처리량은 125MBps입니다. 관리자가 사용자의 공간에 대한 기본 Amazon EBS 스토리지 설정을 구성했습니다.

기본 스토리지 크기는 5GB이지만 관리자는 내가 사용할 수 있는 공간을 늘릴 수 있습니다. 자세한 내용은 [기본 스토리지 크기 변경](code-editor-admin-storage-size.md) 단원을 참조하십시오.

스토리지 볼륨 내 사용자의 작업 디렉터리는 `/home/sagemaker-user`입니다. 볼륨을 암호화하기 위해 자체 AWS KMS 키를 지정하면 작업 디렉터리의 모든 항목이 고객 관리형 키를 사용하여 암호화됩니다. AWS KMS 키를 지정하지 않으면 내부의 데이터가 AWS 관리형 키로 암호화`/home/sagemaker-user`됩니다. AWS KMS 키 지정 여부에 관계없이 작업 디렉터리 외부의 모든 데이터는 AWS 관리형 키로 암호화됩니다.

코드 편집기 애플리케이션을 실행하는 Amazon EC2 인스턴스 유형을 변경하여 컴퓨팅을 확장하거나 축소할 수 있습니다. 연결된 인스턴스 유형을 변경하기 전에 먼저 코드 편집기 공간을 중지해야 합니다. 자세한 내용은 [코드 편집기 애플리케이션 인스턴스 및 이미지](code-editor-use-instances.md) 섹션을 참조하세요.

관리자가 환경을 사용자 지정하기 위한 수명 주기 구성을 제공할 수 있습니다. 공간을 생성할 때 수명 주기 구성을 지정할 수 있습니다. 자세한 내용은 [코드 편집기 수명 주기 구성](code-editor-use-lifecycle-configurations.md) 섹션을 참조하세요.

Amazon EFS 볼륨이 있는 경우 자체 파일 스토리지 시스템을 가져올 수도 있습니다.

![\[코드 편집기 애플리케이션 UI의 시작 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-home.png)


**Topics**
+ [코드 편집기 사용](code-editor-use.md)
+ [코드 편집기 관리자 안내서](code-editor-admin.md)

# 코드 편집기 사용
<a name="code-editor-use"></a>

이 섹션의 주제에서는 시작, 연결 추가, 리소스 AWS 서비스종료 등을 포함하여 코드 편집기 사용에 대한 가이드를 제공합니다. 코드 편집기 공간을 생성한 후 브라우저를 통해 코드 편집기 세션에 직접 액세스할 수 있습니다.

코드 편집기 환경 내에서 다음을 수행할 수 있습니다.
+ 홈 디렉터리에 남아 있는 모든 아티팩트에 액세스
+ GitHub 리포지토리 복제 및 변경 사항 커밋
+ SageMaker Python SDK에 액세스

Studio로 돌아가 실험, 파이프라인 또는 훈련 작업과 같이 코드 편집기 환경에서 생성된 모든 자산을 검토할 수 있습니다.

**Topics**
+ [코드 편집기 버전 확인](code-editor-use-version.md)
+ [코드 편집기 애플리케이션 인스턴스 및 이미지](code-editor-use-instances.md)
+ [Studio에서 코드 편집기 애플리케이션 시작](code-editor-use-studio.md)
+ [를 사용하여 코드 편집기 애플리케이션 시작 AWS CLI](code-editor-launch-cli.md)
+ [코드 편집기에서 리포지토리 복제](code-editor-use-clone-a-repository.md)
+ [코드 편집기 연결 및 확장](code-editor-use-connections-and-extensions.md)
+ [코드 편집기 리소스 종료](code-editor-use-log-out.md)

# 코드 편집기 버전 확인
<a name="code-editor-use-version"></a>

다음 단계에서는 코드 편집기 애플리케이션의 버전을 확인하는 방법을 보여줍니다.

**코드 편집기 애플리케이션 버전을 확인하려면**

1. 코드 편집기 공간을 시작하고 실행한 다음 코드 편집기 애플리케이션 UI로 이동합니다. 자세한 내용은 [Studio에서 코드 편집기 애플리케이션 시작](code-editor-use-studio.md) 섹션을 참조하세요.

1. 코드 편집기 UI의 왼쪽 상단 모서리에서 메뉴 버튼(![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-menu-icon.png))을 선택합니다. 그런 다음 **도움말**을 선택합니다. 그런 다음 **정보**를 선택합니다.

# 코드 편집기 애플리케이션 인스턴스 및 이미지
<a name="code-editor-use-instances"></a>

일부 인스턴스만 코드 편집기 애플리케이션과 호환됩니다. 인스턴스 드롭다운 메뉴에서 사용 사례와 호환되는 **인스턴스** 유형을 선택할 수 있습니다.

**빠른 시작** 인스턴스는 다른 인스턴스보다 훨씬 빠르게 시작됩니다. Studio의 빠른 시작 인스턴스 유형에 대한 자세한 내용은 [Amazon SageMaker Studio Classic 노트북에 사용할 수 있는 인스턴스 유형](notebooks-available-instance-types.md) 섹션을 참조하세요.

**참고**  
코드 편집기 애플리케이션을 구성할 때 GPU 인스턴스 유형을 사용하는 경우 GPU 기반 이미지도 사용해야 합니다. 인스턴스 유형을 선택하면 코드 편집기 공간 UI가 호환되는 이미지를 자동으로 선택합니다.

공간 내에서 데이터는 인스턴스의 수명과 독립적으로 지속되는 Amazon EBS 볼륨에 저장됩니다. 인스턴스를 변경해도 데이터가 손실되지 않습니다. 코드 편집기 공간이 `Running`인 경우 인스턴스 유형을 변경하기 전에 공간을 중지해야 합니다.

다음 표에는 각 리전에 대해 사용 가능한 코드 편집기 CPU 및 GPU 이미지의 ARN이 나열되어 있습니다.


|  리전  |  CPU  |  GPU  | 
| --- | --- | --- | 
|  us-east-1  | arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-gpu | 
|  us-east-2  | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-gpu | 
|  us-west-1  | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-gpu | 
|  us-west-2  | arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-gpu | 
|  af-south-1  | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-cpu | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-gpu | 
|  ap-east-1  | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-gpu | 
|  ap-south-1  | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-gpu | 
|  ap-northeast-2  | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-gpu | 
|  ap-southeast-1  | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-gpu | 
|  ap-southeast-2  | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-gpu | 
|  ap-northeast-1  | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-gpu | 
|  ca-central-1  | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-gpu | 
|  eu-central-1  | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-gpu | 
|  eu-west-1  | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-gpu | 
|  eu-west-2  | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-gpu | 
|  eu-west-3  | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-gpu | 
|  eu-north-1  | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-gpu | 
|  eu-south-1  | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-gpu | 
|  sa-east-1  | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-cpu | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-gpu | 
|  ap-northeast-3  | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-gpu | 
|  ap-southeast-3  | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-gpu | 
|  me-south-1  | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-gpu | 
|  me-central-1  | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-gpu | 
|  il-central-1  | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-cpu | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-gpu | 
|  cn-north-1  | arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-gpu  | 
|  cn-northwest-1  | arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-gpu  | 
|  us-gov-west-1  | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-gpu | 
|  us-gov-east-1  | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-gpu | 

인스턴스 제한이 발생하는 경우 관리자에게 문의하세요. 사용자를 위한 더 많은 스토리지와 컴퓨팅을 얻기 위해 관리자는 사용자의 할당 AWS 량 증가를 요청할 수 있습니다. 할당량 증가 요청에 대한 자세한 내용은 [Amazon SageMaker 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)을 참조하세요.

# Studio에서 코드 편집기 애플리케이션 시작
<a name="code-editor-use-studio"></a>

Studio를 통해 코드 편집기 통합 개발 환경을 구성하고 액세스하려면 코드 편집기 공간을 생성해야 합니다. Studio의 공간에 대한 자세한 내용은 [Amazon SageMaker Studio 스페이스](studio-updated-spaces.md) 섹션을 참조하세요.

![\[Studio UI의 코드 편집기 애플리케이션 버튼 및 개요 타일입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-studio-home.png)


다음 절차에서는 코드 편집기 공간을 생성하고 실행하는 방법을 보여줍니다.

**코드 편집기 공간을 생성하고 실행하려면**

1. 업데이트된 Studio 환경을 시작합니다. 자세한 내용은 [Amazon SageMaker Studio 실행](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)을 참조하세요.

1. 다음 중 하나를 수행하세요.
   + 업데이트된 Amazon SageMaker Studio UI 내에서 **애플리케이션** 메뉴에서 **코드 편집기**를 선택합니다.
   + 업데이트된 Amazon SageMaker Studio UI 내에서 Studio 홈페이지의 **개요** 섹션에서 **코드 편집기 공간 보기**를 선택합니다.

1. 코드 편집기 랜딩 페이지의 오른쪽 상단 모서리에서 **코드 편집기 생성 공간**을 선택합니다.

1. 코드 편집기 공간의 이름을 입력합니다. 이름은 문자, 숫자 및 대시만 사용하여 1\$162자여야 합니다.

1. **스페이스 생성**을 선택합니다.

1. 공간이 생성된 후에는 공간을 실행하도록 선택하기 전에 몇 가지 옵션이 있습니다.
   + **스토리지(GB)**, **수명 주기 구성** 또는 **사용자 지정 EFS 파일 시스템 연결** 설정을 편집할 수 있습니다. 이러한 설정에 대한 옵션은 관리자 사양에 따라 사용할 수 있습니다.
   + **인스턴스** 드롭다운 메뉴에서 사용 사례와 가장 호환되는 인스턴스 유형을 선택할 수 있습니다. **이미지** 드롭다운 메뉴에서 SageMaker 배포 이미지 또는 관리자가 제공한 사용자 지정 이미지를 선택할 수 있습니다.
**참고**  
sagemaker-distribution 이미지 간에 전환하면 사용 중인 Code Editor의 기본 버전이 변경되어 브라우저 캐싱으로 인해 비호환성이 발생할 수 있습니다. 이미지 간에 전환할 때 브라우저 캐시를 지워야 합니다.

     코드 편집기 애플리케이션을 구성할 때 GPU 인스턴스 유형을 사용하는 경우 GPU 기반 이미지도 사용해야 합니다. 공간 내에서 데이터는 인스턴스의 수명과 독립적으로 지속되는 Amazon EBS 볼륨에 저장됩니다. 인스턴스를 변경해도 데이터가 손실되지 않습니다.
**중요**  
Studio 사용자가 공간을 생성할 수 있도록 허용하는 사용자 지정 IAM 정책은 사용자 지정 이미지를 볼 수 있는 이미지(`sagemaker: ListImage`)를 나열할 수 있는 권한도 부여해야 합니다. 권한을 추가하려면 *AWS Identity and Access Management* 사용 설명서의 [ID 권한 추가 또는 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.  
[AWS Amazon SageMaker AI에 대한 관리형 정책](security-iam-awsmanpol.md)은 SageMaker AI 리소스를 생성할 수 있는 권한을 부여합니다. 여기에는 해당 리소스를 생성하는 동안 이미지를 나열할 수 있는 권한이 이미 포함되어 있습니다.
**참고**  
공간 설정을 업데이트하려면 먼저 공간을 중지해야 합니다. 코드 편집기에서 NVMe 인스턴스 스토어가 있는 인스턴스를 사용하는 경우 공간이 중지되면 NVMe 스토어에 저장된 모든 데이터가 삭제됩니다.

1. 설정을 업데이트한 후 공간 세부 정보 페이지에서 **공간 실행**을 선택합니다.

1. 공간이 `Running` 상태가 된 후에 **코드 편집기 열기**를 선택하여 코드 편집기 세션으로 이동합니다.

![\[Studio UI에서 코드 편집기 애플리케이션의 공간 세부 정보 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-open.png)


# 를 사용하여 코드 편집기 애플리케이션 시작 AWS CLI
<a name="code-editor-launch-cli"></a>

 AWS Command Line Interface (AWS CLI)를 통해 코드 편집기 통합 개발 환경을 구성하고 액세스하려면 코드 편집기 공간을 생성해야 합니다. 다음 단계를 진행하 전에 [사전 조건 완료](code-editor-admin-prerequisites.md)를 충족해야 합니다. 다음 절차에 따라 코드 편집기 공간을 생성하고 실행합니다.

**코드 편집기 공간을 생성하고 실행하려면**

1.  AWS Identity and Access Management (IAM) 또는 AWS IAM Identity Center 인증을 사용하여 스페이스에 액세스합니다. 를 사용하여 스페이스에 액세스하는 방법에 대한 자세한 내용은의를 사용하여 스페이스에 액세스를 AWS CLI참조하세요[Amazon SageMaker Studio 스페이스](studio-updated-spaces.md). * AWS Command Line Interface* 

1. 애플리케이션을 생성하고 다음 명령을 사용하여 `CodeEditor`를 `app-type`로 지정합니다.

   코드 편집기 애플리케이션을 생성할 때 GPU 인스턴스 유형을 사용하는 경우 GPU 기반 이미지도 사용해야 합니다.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:account-id:image/sagemaker-distribution-cpu"
   ```

   사용 가능한 코드 편집기 이미지 ARNs에 대한 자세한 정보는 [코드 편집기 애플리케이션 인스턴스 및 이미지](code-editor-use-instances.md) 섹션을 참조하세요.

1. 코드 편집기 애플리케이션이 사용 중이면 미리 서명된 URL을 사용하여 애플리케이션을 시작합니다. `describe-app` API를 사용하여 애플리케이션이 사용 중인지 확인할 수 있습니다. `create-presigned-domain-url` API를 사용하여 미리 서명된 URL을 생성합니다.

   ```
   aws sagemaker create-presigned-domain-url \
   --domain-id domain-id \
   --space-name space-name \
   --user-profile-name user-profile-name \
   --session-expiration-duration-in-seconds 43200 \
   --landing-uri app:CodeEditor:
   ```

1. 생성된 URL을 열어 코드 편집기 애플리케이션에서 작업을 시작합니다.

# 코드 편집기에서 리포지토리 복제
<a name="code-editor-use-clone-a-repository"></a>

코드 편집기 애플리케이션 UI의 **탐색기** 창에서 폴더를 탐색하고 리포지토리를 복제할 수 있습니다.

리포지토리를 복제하려면 다음 단계를 수행합니다.

**리포지토리를 복제하려면**

1. 브라우저에서 코드 편집기 애플리케이션을 열고 왼쪽 탐색 창에서 **탐색** 버튼(![\[Icon representing multiple documents or pages stacked on top of each other.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-exploration-icon.png))을 선택합니다.

1. **탐색기** 창에서 **리포지토리 복제**를 선택합니다. 그런 다음 리포지토리 URL을 제공하거나 프롬프트에서 리포지토리 소스를 선택합니다.

1. 리포지토리를 복제할 폴더를 선택합니다. 기본 코드 편집기 폴더는 `/home/sagemaker-user/`입니다. 리포지토리를 복제하는 데 시간이 걸릴 수 있습니다.

1. 복제된 리포지토리를 열려면 **새 창에서 열기** 또는 **열기**를 선택합니다.

1.  코드 편집기 애플리케이션 UI 홈페이지로 돌아가려면 **취소**를 선택합니다.

1. 리포지토리 내에서 새 리포지토리의 파일 작성자를 신뢰할 수 있는지 묻는 메시지가 표시됩니다. 두 가지 선택 사항이 있습니다.

   1. 폴더를 신뢰하고 모든 기능을 활성화하려면 **예, 작성자를 신뢰합니다**를 선택합니다.

   1. *제한된 모드*에서 리포지토리 콘텐츠를 검색하려면 **아니요, 작성자를 신뢰하지 않습니다**를 선택합니다.

      제한된 모드에서는 태스크를 실행할 수 없으며, 디버깅이 비활성화되고, 작업 영역 설정이 적용되지 않으며, 확장 기능에 제한이 있습니다.

      제한 모드를 종료하려면 현재 폴더 또는 상위 폴더에 있는 모든 파일의 작성자를 신뢰하고 모든 기능을 활성화하려면 **제한 모드** 배너에서 **관리**를 선택합니다.

# 코드 편집기 연결 및 확장
<a name="code-editor-use-connections-and-extensions"></a>

코드 편집기는 Open VSX 레지스트리에서 사용할 수 있는 확장 AWS 서비스 뿐만 아니라에 대한 IDE 연결을 지원합니다. [https://open-vsx.org/](https://open-vsx.org/) 

## 에 대한 연결 AWS
<a name="code-editor-use-connections"></a>

코드 편집기 환경은 [AWS Toolkit for VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)와 통합되어 AWS 서비스에 대한 연결을 추가합니다. 에 대한 연결을 시작하려면 유효한 AWS Identity and Access Management (IAM) 자격 증명이 있어야 AWS 서비스합니다. 자세한 내용은 [AWS Toolkit for Visual Studio 코드에 대한 인증 및 액세스를](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html) 참조하세요.

코드 편집기 환경 내에서 다음에 대한 연결을 추가할 수 있습니다.
+  [AWS 탐색기 ](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/aws-explorer.html) - Amazon S3, CloudWatch 등에서 AWS 리소스를 보고 수정하고 배포합니다.

   AWS Explorer 내에서 특정 기능에 액세스하려면 특정 AWS 권한이 필요합니다. 자세한 내용은 [AWS Toolkit for Visual Studio 코드에 대한 인증 및 액세스를](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html) 참조하세요.
+ [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html) – AI 기반 코드 제안을 통해 애플리케이션을 더 빠르게 구축합니다.

  코드 편집기 Amazon CodeWhisperer 와 함께를 사용하려면 SageMaker AI 실행 역할에 다음 권한을 추가해야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "CodeWhispererPermissions",
        "Effect": "Allow",
        "Action": ["codewhisperer:GenerateRecommendations"],
        "Resource": "*"
      }
    ]
  }
  ```

------

  자세한 정보는 *IAM 사용 설명서*에서 [IAM 정책 만들기](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) 및 [IAM ID 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

## 확장 프로그램
<a name="code-editor-use-extensions"></a>

코드 편집기는 [Open VSX 레지스트리](https://open-vsx.org/)에서 사용할 수 있는 IDE 확장을 지원합니다.

코드 편집기 환경에서 확장을 시작하려면 왼쪽 탐색 창에서 **확장** 아이콘(![\[Icon showing two overlapping squares representing multiple windows or instances.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-extensions-icon.png))을 선택합니다. 여기서 AWS Toolkit를 설치하여 AWS 에 대한 연결을 구성할 수 있습니다. 자세한 정보는 [AWS Toolkit for Visual Studio Code설치](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html) 섹션을 참조하세요.

검색 창에서 [Open VSX Registry ](https://open-vsx.org/)를 통해 AWS Toolkit, Jupyter, Python 등의 추가 확장을 직접 검색할 수 있습니다.

# 코드 편집기 리소스 종료
<a name="code-editor-use-log-out"></a>

코드 편집기 공간 사용을 마치면 Studio를 사용하여 중지할 수 있습니다. 이렇게 하면 공간에 대한 비용 발생을 중지할 수 있습니다.

또는 AWS CLI를 사용하여 미사용 코드 편집기 리소스를 삭제할 수 있습니다.

## Studio를 사용하여 코드 편집기 공간 중지
<a name="code-editor-use-log-out-stop-space"></a>

Studio에서 코드 편집기 공간을 중지하려면 다음 단계를 수행합니다.

**Studio에서 코드 편집기 공간을 중지하려면**

1. 다음 중 하나를 수행하여 코드 편집기 랜딩 페이지로 돌아갑니다.

   1. 왼쪽 상단 모서리의 탐색 모음에서 **코드 편집기**를 선택합니다.

   1. 또는 왼쪽 탐색 창에서 **애플리케이션** 메뉴에서 **코드 편집기**를 선택합니다.

1. 생성한 코드 편집기 공간의 이름을 찾습니다. 공간 상태가 **실행 중**이면 **작업** 열에서 **중지**를 선택합니다. 공간 중지를 선택하여 공간 세부 정보 페이지에서 직접 **공간을 중지**할 수도 있습니다. 이 공간을 중지하는 데 시간이 걸릴 수 있습니다.

![\[코드 편집기 애플리케이션 UI의 공간 세부 정보 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-stop-space.png)


Studio에서 생성된 SageMaker AI 엔드포인트, Amazon EMR(Amazon EMR) 클러스터 및 Amazon Simple Storage Service(Amazon S3) 버킷과 같은 추가 리소스는 스페이스 인스턴스가 종료될 때 자동으로 삭제되지 않습니다. 리소스에서 요금 발생을 중지하려면 추가 리소스를 삭제합니다. 자세한 내용은 [사용하지 않는 리소스 삭제](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-admin-guide-clean-up.html) 섹션을 참조하세요.

## 를 사용하여 코드 편집기 리소스 삭제 AWS CLI
<a name="code-editor-use-log-out-shut-down-resources"></a>

 AWS Command Line Interface ()를 사용하여 코드 편집기 애플리케이션과 스페이스를 삭제할 수 있습니다AWS CLI.
+ [DeleteApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html)
+ [DeleteSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteSpace.html)

# 코드 편집기 관리자 안내서
<a name="code-editor-admin"></a>

코드 편집기를 온디맨드 인스턴스와 함께 사용하여 더 빠른 시작 시간과 구성 가능한 스토리지를 만들 수 있습니다. Amazon SageMaker Studio 또는 AWS CLI를 통해 코드 편집기 애플리케이션을 시작할 수 있습니다. 도메인 콘솔 내에서 코드 편집기 기본 설정을 편집할 수도 있습니다. 자세한 내용은 [도메인 설정 편집](domain-edit.md) 섹션을 참조하세요. 다음 주제에서는 관리자가 스토리지 옵션을 변경하고, 환경을 사용자 지정하고, 사용자 액세스를 관리하고, 코드 편집기를 사용하는 데 필요한 사전 요구 사항에 대한 정보를 제공하여 Code-OSS, Visual Studio Code - Open Source를 기반으로 코드 편집기를 구성하는 방법을 간략하게 설명합니다.

**Topics**
+ [사전 조건 완료](code-editor-admin-prerequisites.md)
+ [사용자에게 프라이빗 공간에 대한 액세스 권한 부여](code-editor-admin-user-access.md)
+ [기본 스토리지 크기 변경](code-editor-admin-storage-size.md)
+ [코드 편집기 수명 주기 구성](code-editor-use-lifecycle-configurations.md)
+ [사용자 지정 이미지](code-editor-custom-images.md)

# 사전 조건 완료
<a name="code-editor-admin-prerequisites"></a>

Code-OSS, Visual Studio Code - Open Source에 기반한 코드 편집기를 사용하려면 다음 사전 조건을 완료해야 합니다.

1. 먼저 Amazon SageMaker AI 도메인에 온보딩하고 사용자 프로필을 생성해야 합니다. 자세한 내용은 [Amazon SageMaker AI 도메인 개요](gs-studio-onboard.md) 단원을 참조하십시오.

1. 를 사용하여 Code Editor 애플리케이션과 상호 작용하는 경우 다음 사전 조건도 완료해야 AWS CLI합니다.

   1.  현재 버전 설치의 단계에 AWS CLI 따라를 업데이트합니다. [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) 

   1.  로컬 컴퓨터에서 `aws configure`를 실행하고 AWS 보안 인증을 제공하세요. 자격 AWS 증명에 대한 자세한 내용은 [AWS 자격 증명 이해 및 가져오기를 참조하세요](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html).

1. (선택 사항) 애플리케이션에 더 많은 스토리지와 컴퓨팅을 얻으려면 할당 AWS 량 증가를 요청할 수 있습니다. 할당량 증가 요청에 대한 자세한 내용은 [Amazon SageMaker 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)을 참조하세요.

# 사용자에게 프라이빗 공간에 대한 액세스 권한 부여
<a name="code-editor-admin-user-access"></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) 섹션을 참조하세요.  
[AWS Amazon SageMaker AI에 대한 관리형 정책](security-iam-awsmanpol.md)는 SageMaker 리소스를 생성할 수 있는 권한을 부여합니다. 여기에는 해당 리소스를 생성하는 동안 태그를 추가할 수 있는 권한이 이미 포함되어 있습니다.

이 섹션에서는 사용자에게 프라이빗 스페이스에 대한 액세스 권한을 부여하는 정책을 제공합니다. 정책을 사용하여 사용자 프로필과 연결된 소유자에게 연결된 프라이빗 스페이스 및 애플리케이션을 제한할 수도 있습니다.

사용자에게 다음에 대한 권한을 반드시 부여해야 합니다.
+ 프라이빗 스페이스
+ 프라이빗 스페이스에 액세스하는 데 필요한 사용자 프로필

권한을 제공하려면 사용자의 IAM 역할에 다음 정책을 연결합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# 기본 스토리지 크기 변경
<a name="code-editor-admin-storage-size"></a>

사용자의 기본 스토리지 설정을 변경할 수 있습니다. 조직의 요구 사항과 사용자의 요구 사항에 따라 기본 스토리지 설정을 변경할 수도 있습니다.

사용자의 스토리지 크기를 변경하려면 다음을 수행합니다.

1. 도메인에서 Amazon EBS 스토리지 설정을 업데이트합니다.

1. 사용자 프로필을 생성하고 사용자 프로필 내에서 스토리지 설정을 지정합니다.

다음 AWS Command Line Interface (AWS CLI) 명령을 사용하여 도메인을 업데이트합니다.

```
aws --region $REGION sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

다음 AWS CLI 명령을 사용하여 사용자 프로필을 생성하고 기본 스토리지 설정을 지정합니다.

```
aws --region $REGION sagemaker create-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

다음 AWS CLI 명령을 사용하여 사용자 프로필의 기본 스토리지 설정을 업데이트합니다.

```
aws --region $REGION sagemaker update-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# 코드 편집기 수명 주기 구성
<a name="code-editor-use-lifecycle-configurations"></a>

코드 편집기 수명 주기 구성을 사용하여 Studio 환경의 사용자 지정을 자동화할 수 있습니다. 사용자 지정에는 사용자 지정 패키지 설치, 확장 구성, 데이터세트 사전 로드, 소스 코드 리포지토리 설정이 포함됩니다.

다음 지침은 AWS Command Line Interface (AWS CLI)를 사용하여 `CodeEditor` 애플리케이션 유형에 대한 수명 주기 구성을 생성, 연결, 디버깅 및 분리합니다.
+ [Studio에서 수명 주기 구성 생성 및 연결](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Studio에서 수명 주기 구성 디버깅](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Studio에서 수명 주기 구성 분리](code-editor-use-lifecycle-configurations-studio-detach.md)

# Studio에서 수명 주기 구성 생성 및 연결
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

다음 섹션에서는 수명 주기 구성을 생성하고, 새 사용자 프로필을 생성할 때 수명 주기 구성을 연결하고, 사용자 프로필을 업데이트할 때 수명 주기 구성을 연결하는 AWS CLI 명령을 제공합니다. Studio에서 수명 주기 구성을 생성하고 연결하기 위한 사전 조건 및 일반 단계는 [수명 주기 구성 생성](jl-lcc-create.md) 섹션을 참조하세요.

`create-studio-lifecycle-config` 명령을 사용하여 Studio 수명 주기 구성을 생성할 때 `studio-lifecycle-config-app-type`가 `CodeEditor`임을 지정해야 합니다. 다음 예제에서는 코드 편집기 애플리케이션을 위한 새로운 Studio 수명 주기 구성을 생성하는 방법을 보여줍니다.

```
aws sagemaker create-studio-lifecycle-config \
--studio-lifecycle-config-name my-code-editor-lcc \
--studio-lifecycle-config-content $LCC_CONTENT \
--studio-lifecycle-config-app-type CodeEditor
```

반환된 새로 생성된 수명 주기 구성의 ARN을 기록해 둡니다. 수명 주기 구성을 연결할 때 `CodeEditorAppSettings`의 `LifecycleConfigArns` 목록 내에 이 ARN을 제공합니다.

사용자 프로필 또는 도메인을 생성할 때 수명 주기 구성을 연결할 수 있습니다. 다음 예제에서는 수명 주기 구성이 연결된 새 사용자 프로필을 만드는 방법을 보여줍니다. 또한 [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html) 명령을 각각 사용하여 수명 주기 구성이 연결된 새 도메인을 만들 수 있습니다.

```
# Create a new UserProfile
aws sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

또는 사용자 프로필 또는 도메인을 업데이트할 때 수명 주기 구성을 연결할 수 있습니다. 다음 예제에서는 수명 주기 구성이 연결된 사용자 프로필을 업데이트하는 방법을 보여줍니다. [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) 명령을 사용하여 수명 주기 구성이 첨부된 새 도메인을 업데이트할 수도 있습니다.

```
# Update a UserProfile
aws sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

# Studio에서 수명 주기 구성 디버깅
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

코드 편집기에 대한 수명 주기 구성 스크립트를 디버깅하려면 Studio를 사용해야 합니다. Studio에서 수명 주기 구성을 디버깅하는 방법에 대한 지침은 [수명 주기 구성 디버깅](jl-lcc-debug.md) 섹션을 참조하세요. 특정 애플리케이션의 로그를 찾으려면 다음 형식을 사용하여 로그 스트림을 검색하세요.

```
domain-id/space-name/CodeEditor/default/LifecycleConfigOnStart
```

# Studio에서 수명 주기 구성 분리
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

코드 편집기의 수명 주기 구성을 분리하려면 콘솔 또는 AWS CLI를 사용할 수 있습니다. Studio 콘솔에서 수명 주기 구성을 분리하는 단계는 [수명 주기 구성 분리](jl-lcc-delete.md) 섹션을 참조하세요.

를 사용하여 수명 주기 구성을 분리하려면 리소스에 연결된 수명 주기 구성 목록에서 원하는 수명 주기 구성을 AWS CLI제거합니다. 그런 다음 목록을 해당 명령의 일부로 전달합니다.
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)

예를 들어 다음 명령은 해당 도메인에 연결된 코드 편집기 애플리케이션의 모든 수명 주기 구성을 제거합니다.

```
aws sagemaker update-domain --domain-id domain-id \
--default-user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# 코드 편집기 애플리케이션에 리포지토리를 복제하는 수명 주기 구성 생성
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

이 섹션에서는 리포지토리를 복제하고 수명 주기 구성이 연결된 코드 편집기 애플리케이션을 생성하는 방법을 보여줍니다.

1. 로컬 시스템에서 다음 내용으로 `my-script.sh`이라는 파일을 만듭니다.

   ```
   #!/bin/bash
   set -eux
   ```

1. 수명 주기 구성 스크립트에서 선택한 리포지토리를 복제합니다.

   ```
   export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
   git -C /home/sagemaker-user clone $REPOSITORY_URL
   ```

1. 스크립트를 완료한 후 수명 주기 구성을 생성하고 연결합니다. 자세한 내용은 [Studio에서 수명 주기 구성 생성 및 연결](code-editor-use-lifecycle-configurations-studio-create.md) 섹션을 참조하세요.

1. 수명 주기 구성이 연결된 코드 편집기 애플리케이션을 생성합니다.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   사용 가능한 코드 편집기 이미지 ARNs에 대한 자세한 정보는 [코드 편집기 애플리케이션 인스턴스 및 이미지](code-editor-use-instances.md) 섹션을 참조하세요.

# 코드 편집기 확장을 설치하기 위한 수명 주기 구성 생성
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

이 섹션에서는 코드 편집기 환경의 [Open VSX Registry](https://open-vsx.org/)에서 확장을 설치하기 위한 수명 주기 구성을 생성하는 방법을 보여줍니다.

1. 로컬 시스템에서 다음 내용으로 `my-script.sh`이라는 파일을 만듭니다.

   ```
   #!/bin/bash
   set -eux
   ```

1. 스크립트 내에서 선택한 [Open VSX Registry](https://open-vsx.org/) 확장을 설치합니다.

   ```
   sagemaker-code-editor --install-extension AmazonEMR.emr-tools --extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions
   ```

   [Open VSX Registry](https://open-vsx.org/)의 확장 URL에서 확장 이름을 검색할 수 있습니다. `sagemaker-code-editor` 명령에 사용할 확장 이름에는 URL에서 `https://open-vsx.org/extension/`에 이어지는 모든 텍스트가 포함되어야 합니다. 슬래시(`/`)의 모든 인스턴스를 마침표(`.`)로 바꿉니다. 예를 들어 `AmazonEMR/emr-tools`는 `AmazonEMR.emr-tools`이어야 합니다.  
![\[Open VSX Registry의 Amazon EMR 확장 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. 스크립트를 완료한 후 수명 주기 구성을 생성하고 연결합니다. 자세한 내용은 [Studio에서 수명 주기 구성 생성 및 연결](code-editor-use-lifecycle-configurations-studio-create.md) 섹션을 참조하세요.

1. 수명 주기 구성이 연결된 코드 편집기 애플리케이션을 생성합니다.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   사용 가능한 코드 편집기 이미지 ARNs에 대한 자세한 정보는 [코드 편집기 애플리케이션 인스턴스 및 이미지](code-editor-use-instances.md) 섹션을 참조하세요. 외부 연결 및 확장 프로그램 추가에 대한 자세한 내용은 [코드 편집기 연결 및 확장](code-editor-use-connections-and-extensions.md)을 참조하세요.

# 사용자 지정 이미지
<a name="code-editor-custom-images"></a>

SageMaker 배포에서 제공하는 것과 다른 기능이 필요한 경우 사용자 지정 확장 및 패키지와 함께 자체 이미지를 가져올 수 있습니다. 또한 이를 사용하여 자체 브랜딩 또는 규정 준수 요구 사항에 맞게 코드 편집기 UI를 개인화할 수 있습니다.

다음 페이지에서는 사용자 지정 SageMaker AI 이미지를 생성하기 위한 Code Editor 관련 정보와 템플릿을 제공합니다. 이는 자체 SageMaker AI 이미지를 생성하고 자체 이미지를 Studio에 가져오는 방법에 대한 Amazon SageMaker Studio 정보와 지침을 보완하기 위한 것입니다. 사용자 지정 Amazon SageMaker AI 이미지와 Studio로 자체 이미지를 가져오는 방법에 대한 자세한 내용은 [기존 보유 이미지 사용(BYOI)](studio-updated-byoi.md) 섹션을 참조하세요.

**Topics**
+ [애플리케이션의 상태 확인 및 URL](#code-editor-custom-images-app-healthcheck)
+ [Dockerfile 예시](#code-editor-custom-images-dockerfile-templates)

## 애플리케이션의 상태 확인 및 URL
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL` – BYOI 애플리케이션의 기본 URL은 `CodeEditor/default`여야 합니다. 애플리케이션은 하나만 가질 수 있으며 항상 이름이 `default`여야 합니다.
+ 상태 확인 엔드포인트 - SageMaker AI가 감지하려면 Code Editor 서버를 0.0.0.0 포트 8888에서 호스팅해야 합니다.
+  인증 - SageMaker AI가 사용자를 인증할 수 있도록 `sagemaker-code-editor`를 열 때 `--without-connection-token`을 전달해야 합니다.

**참고**  
Amazon SageMaker Distribution을 기본 이미지로 사용하는 경우 이러한 요구 사항은 이미 포함된 `entrypoint-code-editor` 스크립트의 일부로 처리됩니다.

## Dockerfile 예시
<a name="code-editor-custom-images-dockerfile-templates"></a>

다음 예시는 위 정보와 [사용자 지정 이미지 사양](studio-updated-byoi-specs.md)을 충족하는 `Dockerfile`입니다.

**참고**  
자체 이미지를 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)에서 확인할 수 있습니다.

------
#### [ Example micromamba Dockerfile ]

다음은 [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html) 기본 환경을 사용하여 처음부터 이미지를 생성하는 Dockerfile의 예입니다.

```
FROM mambaorg/micromamba:latest
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

USER root

RUN micromamba install -y --name base -c conda-forge sagemaker-code-editor

USER $NB_UID

CMD eval "$(micromamba shell hook --shell=bash)"; \
    micromamba activate base; \
    sagemaker-code-editor --host 0.0.0.0 --port 8888 \
        --without-connection-token \
        --base-path "/CodeEditor/default"
```

------
#### [ Example SageMaker AI Distribution Dockerfile ]

다음은 [Amazon SageMaker AI 배포](https://github.com/aws/sagemaker-distribution/tree/main)를 기반으로 이미지를 생성하는 Dockerfile의 예입니다.

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100
ENV MAMBA_USER=$NB_USER

USER root

 # install scrapy in the base environment
RUN micromamba install -y --name base -c conda-forge scrapy

 # download VSCodeVim
RUN \
  wget https://github.com/VSCodeVim/Vim/releases/download/v1.27.2/vim-1.27.2.vsix \
  -P /tmp/exts/ --no-check-certificate

 # Install the extension
RUN \
  extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
  && sagemaker-code-editor \
    --install-extension "/tmp/exts/vim-1.27.2.vsix" \
    --extensions-dir "${extensionloc}"

USER $MAMBA_USER
ENTRYPOINT ["entrypoint-code-editor"]
```

------