BLOG

Amazon SageMaker 노트북에 EFS 파일 시스템 장착(라이프사이클 구성 포함)
작성일: 2018-03-29

이번 포스팅에서는 Amazon SageMaker 노트북 인스턴스에 Amazon Elastic File System (EFS)을 마운트(장착)하는 방법을 설명합니다. 이것은 좀더 쉽게 대형 데이터세트를 저장 및 액세스하고 SageMaker 노트북 인스턴스에서 머신러닝 스크립트를 공유하는 방법입니다. Amazon SageMaker 노트북은 Jupyter 노트북 서버를 실행하는 사용자 자신의 인스턴스에 빠르게 액세스 하도록 해줍니다. 여기에서 Amazon SageMaker 분산 관리 교육 환경에 액세스하여 실시간으로 프로덕션급 호스트 엔드포인트를 설정할 수 있습니다. Amazon SageMaker를 사용하여 빠르고 확장성 있는 알고리즘 또는 사전 구축 된 딥러닝 프레임워크 컨테이너를 사용할 수 있습니다. Amazon EFS는 한 번에 여러 AWS 리소스에서 공유 할 수 있는 간단하고 확장성 있는 파일 스토리지를 제공합니다. 이 둘을 조합하면 노트북 환경에서 대형 머신러닝 데이터세트 또는 공유 코드에 쉽게 액세스 할 수 있습니다.

 

현재 Amazon SageMaker notebook instances는 5GB의 Amazon Elastic Block Store (EBS) 스토리지와 약 20GB의 비영구 스토리지로 시작 설정 됩니다. Amazon S3에서 더 큰 파일에 액세스 할 수 있지만 파일 시스템과 동일한 유연성을 제공하지는 못합니다. 이러한 유연성과 대형 데이터세트가 필요한 사용 사례는 EFS를 노트북 인스턴스에 장착하여 충족됩니다. 일부 고객은 파일을 저장하고 기존 EC2 인스턴스 간에 공유되는 기존 EFS 마운트를 가질 가능성이 있습니다. 이것은 EFS와 Amazon SageMaker가 잘 작동되는 또 다른 방법 입니다.

 

기존 Amazon SageMaker 노트북 인스턴스에 EFS 파일 시스템 장착하기

Amazon SageMaker 노트북 인스턴스에 마운트하려는 EFS 파일 시스템이 이미 있는 경우 SageMaker 콘솔을 열고 노트북 인스턴스에 로그인하여 시작할 수 있습니다.

 

 

그런 다음 새 conda_python3 노트북을 여십시오. 이 단계는 Jupyter Terminal에서도 수행 할 수 있습니다.

 

 

이제 다음을 포함하는 셀을 실행하여 Jupyter Notebook에서 디렉토리를 만듭니다.

 

%%sh

 

mkdir efs

 

이제 EFS 파일 시스템의 IP 주소를 가져와야 합니다. 노트북 인스턴스가 Amazon SageMaker가 제공하는 인터넷 액세스로 설정되어 있는 경우 boto3 호출을 사용하여 notebook에서 describe_file_systems ()describe_mount_targets (FileSystemId = ‘<file_system_id>’)를 수행 할 수 있습니다. EFS 콘솔에서도 찾아 볼 수 있습니다.

 

 

이제 다음 명령어로 셀을 실행하여 Amazon SageMaker 노트북 인스턴스에 EFS 파일 시스템을 장착 할 수 있습니다. <efs_ip_address_from_above>를 EFS IP 주소로 바꾸는 것을 잊지 마십시오.

 

%%sh

 

sudo mount -t nfs \

    -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 \

    <efs_ip_address_from_above>:/ \

    ./efs

 

sudo chmod go+rw ./efs

 

이제 SageMaker 노트북 인스턴스에서 Elastic File System에 있는 모든 데이터세트 및 공유 파일에 액세스 할 수 있습니다. 5GB보다 큰 데이터세트에서 로컬로 교육하고 여러 Amazon SageMaker 노트북에서 파일을 공유 할 수 있습니다.


Amazon SageMaker
노트북 라이프사이클 구성 사용

Amazon SageMaker 노트북 인스턴스를 중지했다가 다시 시작하면, EFS 마운트가 더 이상 존재하지 않을 것 입니다. 빈 디렉토리로서 파일은 EFS 파일 시스템에 저장되지만 EFS와 노트북 간의 연결은 더 이상 존재하지 않습니다.

 

노트북을 시작할 때마다 sudo mount -t nfs … 명령을 다시 실행하여 EFS 자원을 다시 장착 시킬 수 있습니다. 그러나 수동으로 수행하는 대신 SageMaker Notebook 라이프사이클 구성을 사용하여 이 프로세스를 자동화 할 수 있습니다. 이렇게 하려면 SageMaker 콘솔의 라이프 사이클 구성 페이지로 가서 구성 생성을 선택해야 합니다.

 

 

라이프사이클 구성을 사용하면 처음으로 노트북 인스턴스를 만들 때나 노트북 인스턴스를 시작할 때(처음 포함) 실행되는 스크립트를 작성할 수 있는 옵션이 제공됩니다. 시작 노트북 스크립트의 경우 Amazon SageMaker 노트북 인스턴스를 시작할 때마다 이 스크립트를 실행하려면 먼저 sudo mount -t nfs … snippet을 복사하여 붙여 넣으십시오.

 

 

그러나 노트북 인스턴스를 처음 시작할 때는 마운트 할 efs 디렉토리가 없을 것 입니다. 이를 위해  노트북 생성 스크립트를 작성해 보도록 하겠습니다. 구성 만들기를 선택하십시오.

 

 

이제 efs-mount 라이프사이클 구성을 적용 할 수 있는 새로운 SageMaker 노트북 인스턴스를 작성해 보겠습니다.

 

 

노트북 인스턴스 작성을 선택하고 인스턴스가 준비 될 때까지 기다립니다. Jupyter 터미널에서 efs 디렉토리가 작성되어 성공적으로 마운트 되었는지 확인할 수 있습니다.

 

 

이렇게 함으로써, 노트북 인스턴스를 다시 시작하더라도 EFS 파일 시스템이 재장착 되어 즉시 사용할 수 있습니다.

 

결론

Amazon SageMaker 노트북의 라이프사이클 구성은 매우 다양성 있는 도구입니다. 이 포스팅은 SageMaker 노트북 인스턴스의 파일 시스템 스토리지를 확장하는 데 사용할 수 있는 방법 중 하나를 보여 줬습니다. 라이프사이클 구성에 대한 자세한 내용은 여기를 참조하십시오.

 

원문 URL: https://aws.amazon.com/ko/blogs/machine-learning/mount-an-efs-file-system-to-an-amazon-sagemaker-notebook-with-lifecycle-configurations/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.