[AWS 초보자용] AWS 스팟 인스턴스로 저렴한 Kaggle 컴퓨팅 환경 구축

4033 단어 KaggleJupyterAWS

소개



데이터 분석 대회의 Kaggle에 참여할 때 Notebook (Kernel) 및 노트북을 사용했지만 모델을 학습 할 때 리소스가 부족한 경우가 많습니다. 단순히 AWS에서 EC2 인스턴스를 구축하고 Jupyter를 배포할 수 있지만, 가능한 한 저렴한 비용으로 AWS 스팟 인스턴스에서 Jupyter를 시작하기 전까지의 단계를 살펴보겠습니다.

AWS 스팟 인스턴스란?



스팟 인스턴스는 온디맨드 가격보다 낮은 가격으로 사용할 수 있는 미사용 EC2 인스턴스로, 수요와 공급에 따라 사용료가 변동합니다. GCP는 프리엔티브 인스턴스에 해당한다고 생각합니다. 온디맨드에 비해 크게 할인되지만 몇 가지 이유로 인스턴스가 중단될 수 있습니다. 이번 Kaggle 계산 환경처럼 중단되어도 거기까지 영향이 없는 워크로드에 적합합니다.

참고 : AWS 문서 스팟 인스턴스

절차



바로 여기에서 절차를 설명합니다.

스팟 인스턴스 요청



EC2 페이지의 스팟 인스턴스에서 스팟 인스턴스 요청을 선택합니다. 먼저 어떤 작업에 사용할지 선택합니다. 여기에서는 Big data workloads를 선택합니다.



AMI 또는 컴퓨팅 유닛을 선택합니다. 여기서는 기존 인스턴스 유형에서 r3.xlarge를 선택합니다. 다양한 인스턴스 타입이 있으므로, Amazon EC2 요금표 등을 참고로 결정하면 좋을 것입니다.



기타 다양한 설정을 하고 요청을 만들 때 할인율이 제시됩니다. 이때는 81%off의 가격으로 이용할 수 있는 것을 알 수 있습니다.



시간이 지나면 인스턴스가 생성되므로 터미널(Mac의 경우) 등에서 ssh 합니다. 인스턴스에 ssh하기 전에 인스턴스의 보안 그룹(방화벽과 같은 것)을 설정해야 합니다.

보안 그룹 설정



인스턴스의 보안 그룹은 아래의 빨간색 프레임에서 확인할 수 있습니다.



대상 보안 그룹의 인바운드 규칙에 클라이언트 IP를 설정합니다.
개별 환경에 따라 다를까 생각합니다만, 아래와 같이 My IP를 선택하면 지금 사용하고 있는 단말의 글로벌 IP가 자동으로 설정되는 것 같습니다.



SSH 연결



만든 인스턴스에 SSH 연결합니다. SSH 연결을 위한 명령은 연결을 클릭하면 표시됩니다.




$ chmod 400 spot-instance-key.pem 

$ ssh -i "spot-instance-key.pem" [email protected]

# SSH完了
[ec2-user@ip-xxx-xx-xx-xx ~]$

이것으로 스팟 인스턴스에 대한 SSH가 완료되었습니다.

여기에서 각자 자유롭게 Jupyter를 기동할 때까지의 순서를 진행해 주세요.
이번 자신의 경우는 로컬 환경에서 Docker를 사용하여 환경 구축하고 개발하고 있던 것을 Github 리포지토리에서 관리하고 있었으므로 git clone 을 하고 docker run 을 했습니다. Kaggle 공식 Docker 이미지를 얻는 것도 있습니다.
Docker 설치는 Get Docker CE for Ubuntu을 참조하십시오 (Ubuntu의 경우).

Kaggle 공식 Docker 이미지 pull
$ docker pull gcr.io/kaggle-images/python

AMI 생성



스팟 인스턴스는 중지할 수 없으므로 계산이 완료되면 삭제해야 합니다. 따라서 두 번째 이후에 동일한 환경을 구축하기 위해 AMI를 작성합니다.
AMI를 만들면 스팟 인스턴스를 다시 만들 때 템플릿으로 해당 AMI를 지정하여 동일한 환경을 만들 수 있습니다.

참고 : 인스턴스 및 AMI

좋은 웹페이지 즐겨찾기