기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
LCC 스크립트를 사용하여 SageMaker 노트북 인스턴스 사용자 지정
중요
Amazon SageMaker Studio 또는 Amazon SageMaker Studio Classic이 Amazon SageMaker 리소스를 생성할 수 있도록 허용하는 사용자 지정 IAM 정책도 해당 리소스에 태그를 추가할 수 있는 권한을 부여해야 합니다. Studio와 Studio Classic은 생성한 모든 리소스에 태그를 자동으로 지정하므로 리소스에 태그를 추가할 수 있는 권한이 필요합니다. IAM 정책에서 Studio 및 Studio Classic이 리소스를 생성하도록 허용하지만 태그 지정은 허용하지 않는 경우 리소스를 생성하려고 할 때 “AccessDenied” 오류가 발생할 수 있습니다. 자세한 내용은 리소스에 태그를 지정할 SageMaker 수 있는 권한 제공 단원을 참조하십시오.
AWS Amazon용 관리형 정책 SageMaker 는 SageMaker 리소스를 생성할 수 있는 권한을 부여하며 이러한 리소스를 생성하는 동안 태그를 추가할 수 있는 권한이 이미 포함되어 있습니다.
수명 주기 구성(LCC)은 노트북 인스턴스를 만들 때 또는 인스턴스를 시작할 때마다 실행되는 쉘 스크립트를 제공합니다. 노트북 인스턴스를 생성할 때 새 를 생성LCC하거나 이미 가지고 LCC 있는 를 연결할 수 있습니다. 수명 주기 구성 스크립트는 다음 사용 사례에 유용합니다.
-
노트북 인스턴스에 패키지 또는 샘플 노트북 설치
-
노트북 인스턴스의 네트워킹 및 보안 구성
-
쉘 스크립트를 사용하여 노트북 인스턴스 사용자 지정
수명 주기 구성 스크립트를 사용하여 노트북에서 AWS 서비스에 액세스할 수도 있습니다. 예를 들어 노트북을 사용하여 Amazon EMR 인스턴스와 같은 다른 AWS 리소스를 제어할 수 있는 스크립트를 생성할 수 있습니다.
https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples
참고
각 스크립트의 최대 글자 수는 16,384자입니다.
모든 스크립트에서 이용 가능한 $PATH
환경 변수의 값은 /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
입니다. $PWD
환경 변수의 값인 작업 디렉터리는 /
입니다.
CloudWatch 로그 스트림 의 로그 그룹에서 노트북 인스턴스 수명 주기 구성/aws/sagemaker/NotebookInstances
에 대한 로그를 봅니다[notebook-instance-name]/[LifecycleConfigHook]
.
스크립트는 5분 이상 실행할 수 없습니다. 스크립트가 5분 이상 실행되는 경우 스크립트가 실패하고 노트북 인스턴스가 생성 또는 시작되지 않습니다. 스크립트 실행 시간을 줄이기 위해 다음을 시도할 수 있습니다.
-
필요한 단계를 줄입니다. 예를 들어 대규모 패키지를 설치할 conda 환경을 제한합니다.
-
작업을 병렬 프로세스로 실행합니다.
-
스크립트에
nohup
명령을 사용합니다.
SageMaker 콘솔에서 수명 주기 구성을 선택하여 이전에 생성한 노트북 인스턴스 수명 주기 구성 목록을 볼 수 있습니다. 새 노트북 인스턴스를 생성할 LCC 때 노트북 인스턴스를 연결할 수 있습니다. 노트북 인스턴스를 생성하는 방법에 대한 자세한 내용은 Amazon SageMaker 노트북 인스턴스 생성을 참조하세요.
수명 주기 구성 모범 사례
다음은 수명 주기 구성 사용에 대한 모범 사례입니다.
중요
수명 주기 구성 스크립트에 민감한 정보를 저장하지 않을 것을 권장합니다.
-
수명 주기 구성은
root
사용자로 실행됩니다. 스크립트가/home/ec2-user/SageMaker
디렉터리 내의 내용을 변경하는 경우(예:pip
를 사용하여 패키지 설치)sudo -u ec2-user
명령을 사용하여ec2-user
사용자로서 실행합니다. 이 사용자는 Amazon이 SageMaker 실행하는 사용자와 동일합니다. -
SageMaker 노트북 인스턴스는
conda
환경을 사용하여 Jupyter 노트북에 다양한 커널을 구현합니다. 하나 이상의 노트북 커널에 사용할 수 있는 패키지를 설치하려는 경우 명령을 묶어서 패키지를 설치할 커널이 포함된 conda 환경을 활성화하는conda
환경 명령을 사용하여 패키지를 설치합니다.예를 들어,
python3
환경에만 패키지를 설치하려는 경우 다음 코드를 사용합니다.#!/bin/bash sudo -u ec2-user -i <<EOF # This will affect only the Jupyter kernel called "conda_python3". source activate python3 # Replace
myPackage
with the name of the package you want to install. pip installmyPackage
# You can also perform "conda install" here as well. source deactivate EOF노트북 인스턴스의 모든 conda 환경에 패키지를 설치하려는 경우 다음 코드를 사용합니다.
#!/bin/bash sudo -u ec2-user -i <<EOF # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") # Installing packages in the Jupyter system environment can affect stability of your SageMaker # Notebook Instance. You can remove this check if you'd like to install Jupyter extensions, etc. if [ $env = 'JupyterSystemEnv' ]; then continue fi # Replace
myPackage
with the name of the package you want to install. pip install --upgrade --quietmyPackage
# You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF -
모든 Conda 환경을 기본 환경 폴더(/home/user/anaconda3/envs)에 저장해야 합니다.
중요
스크립트를 만들거나 변경하는 경우, 노트북을 만들 때 콘솔에서 사용할 수 있는 텍스트 편집기와 같이 Unix 스타일의 줄 바꿈 기능이 있는 텍스트 편집기를 사용하는 것이 좋습니다. Linux 외 운영 체제에서 텍스트를 복사할 경우 호환되지 않는 줄 바꿈이 포함되어 있어 예기치 않은 오류가 발생할 수 있습니다.