라이브러리를 설치하려 할 때 수명 주기 구성이 시간 초과된 경우, 수동으로 설치한 라이브러리가 Amazon SageMaker에서 유지되도록 하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 4일

추가 라이브러리를 설치하려 하면 수명 주기 구성 스크립트가 5분 이상 실행되어 Amazon SageMaker 노트북 인스턴스가 시간 초과됩니다. 이 문제를 해결하고 수동으로 설치한 라이브러리가 노트북 인스턴스 세션 간에 유지되도록 하려면 어떻게 해야 합니까?

간략한 설명

수명 주기 구성 스크립트가 5분 이상 실행될 경우, 스크립트가 실패하고 노트북 인스턴스가 생성 또는 시작되지 않습니다. 이 문제는 두 가지 방법으로 해결할 수 있습니다.

  • nohup: nohup 명령은 패키지가 설치될 때까지 수명 주기 구성 스크립트가 백그라운드에서 강제로 계속 실행되게 합니다. 이 방법은 기술적인 전문 지식이 부족한 사용자를 위한 모범 사례이며, 단기적인 해결 방법으로 적합합니다.
  • 노트북 인스턴스의 Amazon Elastic Block Store(Amazon EBS) 볼륨에 사용자 지정 영구 Conda 설치 버전 생성: 기존 노트북 인스턴스의 터미널에서 on-create 스크립트를 실행합니다. 이 스크립트는 Miniconda를 사용하여 EBS 볼륨(/home/ec2-user/SageMaker/)에 별도의 Conda 설치 버전을 생성합니다. 그런 다음 on-start 스크립트를 수명주기 구성으로 실행하여 사용자 지정 환경을 Jupyter에서 커널로 사용할 수 있도록 합니다. 이 방법은 기술적인 전문 지식이 있는 사용자에게 권장되며, 보다 장기적인 해결 방법입니다.

해결 방법

다음 방법 중 하나를 사용하여 수명 주기 구성 시간 초과 문제를 해결합니다.

nohup

nohup 명령을 사용하여, 5분 제한 시간이 만료된 후에도 수명 주기 구성 스크립트가 백그라운드에서 강제로 계속 실행되게 합니다. 예:

#!/bin/bash
set -e
nohup pip install xgboost &

이 스크립트는 라이브러리가 설치되고 나면 실행 중지됩니다. 실행 중지될 때 알림이 표시되지 않지만, ps 명령을 사용하여 스크립트가 아직 실행되고 있는지 확인할 수 있습니다.

참고: 대용량 Amazon Simple Storage Service(Amazon S3) 객체를 다운로드하는 등의 다른 시나리오에서 수명 주기 구성 스크립트가 시간 초과될 경우 nohup 명령을 사용할 수도 있습니다.

노트북 인스턴스의 EBS 볼륨에 사용자 지정 영구 Conda 설치 버전을 생성합니다.

1.    기존 노트북 인스턴스의 터미널에서 원하는 편집기를 사용하여 .sh 파일을 생성합니다. 예:

vim custom-script.sh

2.    on-create 스크립트의 내용을 .sh 파일에 복사합니다. 이 스크립트는 사용자 지정 Conda 설치 버전에 새 Conda 환경을 생성합니다. 또한 이 스크립트는 새 Conda 환경에 NumPy 및 Boto3를 설치합니다.

참고: Miniconda 설치 관리자 및 ipykernel을 다운로드하려면 노트북 인스턴스가 인터넷에 연결되어 있어야 합니다.

3.    스크립트를 실행 파일로 표시한 다음 실행합니다. 예:

chmod +x custom-script.sh
./custom-script.sh

4.    설치가 완료되면 노트북 인스턴스를 중지합니다.

5.    on-start 스크립트를 다운로드합니다.

6.    중지된 노트북 인스턴스에서 on-start 스크립트를 수명주기 구성으로 추가합니다. 이 스크립트는 노트북 인스턴스를 시작할 때마다 사용자 지정 환경을 Jupyter에서 커널로 사용할 수 있도록 합니다.

7.    노트북 인스턴스를 시작한 다음 사용자 지정 환경에 사용자 지정 라이브러리를 설치합니다. 예를 들어 pyarrow를 설치하려면 다음을 수행합니다.

import sys
!conda install --yes --prefix {sys.prefix} -c conda-forge pyarrow

Conda를 업데이트해야 한다는 오류 메시지가 표시되면 다음 명령을 실행합니다. 그런 다음 사용자 지정 라이브러리를 다시 설치해봅니다.

!conda install -p "/home/ec2-user/anaconda3" "conda>=4.8" --yes
!conda install -p "/home/ec2-user/SageMaker/custom-miniconda/miniconda" "conda>=4.8" --yes

노트북 인스턴스를 중지했다가 다시 시작하더라도 사용자 지정 Conda 환경과 라이브러리를 계속 사용할 수 있습니다. 패키지를 다시 설치할 필요가 없습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?