티스토리 뷰
3. Convolutional Networks / L1. Cloud Computing - Launch & Login to the Instance
chrisysl 2018. 9. 3. 10:10Launch an Instance
- AWS에서 GPU 제한을 상향조정했다면 인스턴스를 시작할 수 있다.
- EC2 Management Console 에서 인스턴스를 시작할 수 있다.
- 다음으로 AMI(Amazon Machine Image)를 선택하여야 한다.
- AMI는 인스턴스의 OS를 의미하는데, 디폴트 소프트웨어 및 작동에 필요한 셋팅이 미리 설정되어있다.
- 위와같이 AWS Marketplace에서 Deep Learning AMI with Source Code (CUDA 8, Ubuntu)를 입력하여 설치.
- 이 AMI에는 GPU에서 학습시킬 수 있는 모든 환경과 드라이버가 포함되어 있다.
- AMI엔 cuDNN와 같은 여러 다른 패키지가 포함되어 있다.
Select the Instance Type
- AMI가 돌아갈 하드웨어를 의미하는 "인스턴스 타입"을 결정해야한다.
- 필터링을 GPU compute만 볼 수 있게 설정해주고, 인스턴스 리스트에서 p2.xlarge 를 선택하고 시작을 누름.
Configure the Security Group
- AWS에서 주피터 노트북을 실행 및 액세스하려면 설정을 해줘야한다.
- 디폴트로 AWS는 EC2 인스턴스의 포트 대부분에 대해 액세스를 제한한다.
- 주피터 노트북에 액세스하려면 8888포트에 대한 액세스를 허용하도록 보안 그룹(Security Group)을 설정해줘야 한다.
- 위와같이 설정값을 주고 시작버튼을 누르자.
Launch the Instance
- 시작버튼을 눌러 GPU 인스턴스를 시작하자.
Create an Authentication Key Pair
- 인증키를 지정할 것인지를 확인하는것인데, 인스턴스에 액세스하려면 이렇게 지정을 해주어야 한다.
- 새 키 페어를 생성하고 다운로드를 눌러준다.
- 그러면 인스턴스에 액세스 할 수 있는 .pem 파일이 다운로드된다.
- .pem 파일을 컴퓨터의 안전한 위치에 보관해야한다. 해당 위치를 통해 인스턴스에 액세스 해야하기 때문.
- 이후 "인스턴스 시작" 버튼을 눌러 시작해준다.
- EC2 관리 콘솔로 이동하여 인스턴스 부팅을 보려면 "인스턴스 보기"를 눌러준다.
- 일단 인스턴스를 시작을 하게되면 해당 시점 이후부터 AWS는 EC2 인스턴스를 실행하는데에 비용을 청구한다.
- 따라서 인스턴스를 사용하지 않을 때 인스턴스를 중지하는것이 매우 중요하다.
- 그렇지 않으면 인스턴스를 하루, 한달 등 계속 켜놓게되면 거액의 청구서가 날아든다.
- AWS는 주로 실행중인 인스턴스에 대해 요금을 청구하므로, 인스턴스가 중지되면 대부분의 요금청구가 종료된다.
- 이렇게 EC2 콘솔에 2/2 검사 통과 라고 뜨면 인스턴스를 사용 할 준비가 된 것이다.
- 위 항목들을 PuTTY에 기입해주어야한다.
- PuTTY는 아마존 EC2로부터 생성된 private key format인 .pem을 지원하지 않는다.
- 따라서 PuTTYgen 이라는 툴을 통해 PuTTY 포맷인 .ppk 로 전환해주어야함
To convert your private key
- PuTTYgen을 실행한다.
- 아까 생성한 키를 load하고 Save private key를 눌러 .ppk 방식으로 저장한다.
- 이때 관련된 warning같은것은 모두 pass 하면 됨.
- 참고로 passphrase는 private key에 대한 추가 보호 layer 같은 개념이다.
- 따라서 이를 설정해버리면 private key가 발견되더라도 같이 설정한 암호없이는 사용이 불가능하다.
- passphrase는 사용시 인스턴스에 로그인하거나 파일을 인스턴스에 복사할 때 유저의 개입이 불가피하므로
- 자동화를 어렵게한다.
- 이렇게 .ppk 방식의 private key를 저장했다면 PuTTY의 SSH 클라이언트에 접근할 수 있다.
Starting a PuTTY Session
- PuTTY를 사용하여 리눅스 인스턴스에 연결해보도록 하자.
- PuTTY 시작.
- Host Name에 user_name@public_dns_name 을 적절하게 적어준다.
- user_name : Amazon Linux2 또는 Amazon Linux AMI의 경우 ec2-user 를 입력. ubuntu의 경우 ubuntu 입력
- 그 외의 셋팅으로는 위와같이 진행해준다.
- 위의 경로를 따라가서 앞서 생성산 .ppk파일 즉, private key를 할당해준 후 open.
- 위와같이 열리는 것을 확인할 수 있다.
Configure Jupyter notebook settings
- 인스턴스에서 주피터상의 config 파일을 생성하기위해
- 위와같이 입력한다.
- 그 뒤 주피터 노트북의 IP주소구성 설정을 변경해준다.
- 이 과정은 문자열 입력시의 편의상 진행하는 것이며, vi / vim / nano / 등을 사용하여 동일하게 처리해 줄 수 있다.
- 그다음 위와같이 입력해준다.
- 필요한 파일들을 설치하는 과정임.
- 위와같이 입력하여 주피터 노트북을 실행하자.
- 그러면 하단에 복붙하라는 알림이 뜨는데 그 내용은 주피터 노트북에 액세스하려면 토큰이 필요하기 때문에
- 하단 경로로 액세스를 시도하라는 것임.
- X.X.X.X:8888/?token=.... 의 주소를 복사하여 웹상에 입력해주면 됨.
- 이 때, X.X.X.X는 EC2 인스턴스의 IP주소이다.
- 그럼 위와같이 성공적으로 주피터가 열린다
** 주의할점은 위 시점부터 AWS가 EC2 인스턴스를 돌리는것에 대한 요금이 청구된다.
** 가장 중요한것은 사용하지 않을때 stop 또는 shutdown을 반드시 해 주는 것이다.
** 그렇지 않으면 정말 요금폭탄 맞음.
** 주로 AWS는 실행중인 인스턴스에 대해 요금을 부과하므로 중지하면 대부분의 요금청구가 종료된다.
- 추가적으로 AWS 프로모션 크레딧을 이용하여 Amazon SageMaker와 같은
- AWS Machine Learning 서비스를 시작할 수 있다.
- Amazon SageMaker는 개발자 및 데이터 사이언티스트가 기계학습 모델을 빠르고 쉽게 구축, 학습 및 배포
- 가능하도록 한 기계학습 플랫폼이다.
- 머신러닝을 위한 가장 현명한 시작점이라 불림.
- 자세한건 여기 참고