이게 말이나 되냐?
부스트캠프에서 제공되는 V100 서버가 회수당하고
나는 GPU난민이 되어버렸다
그래픽 카드를 하나 장만해야하나 싶어서 찾아봤는데
누가 혹시 글카값을 복사기에 넣고 돌렸나요?
그래서 해결책은
코랩입니다.
어떻게하면 Colab의 컴퓨팅자원을 VSC에 끌어올수 있는지 확인해보자
ngrok 설치
링크 : https://dashboard.ngrok.com/get-started/setup
ngrok 홈페이지의 프로그램 다운항목에 들어가서
본인 OS에 맞는 프로그램을 다운로드받는다
윈도우기준으로
ngrok-stable-windows-amd64 압축파일이 생기고
압축해제 이후, ngrok.exe 파일을 실행시킨다
설치가 된건지도 몰랐는데, 설치가 끝났다
Colab → ngrok token
Run
# This project is influenced by Dimitris Milonopoulos in StackOverflow
# https://stackoverflow.com/a/59537334/7105963
import random, string
password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20))
#Download ngrok
! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip -qq -n ngrok-stable-linux-amd64.zip
#Setup sshd
! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null
#Set root password
! echo root:$password | chpasswd
! mkdir -p /var/run/sshd
! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
! echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
! echo "LD_LIBRARY_PATH=/usr/lib64-nvidia" >> /root/.bashrc
! echo "export LD_LIBRARY_PATH" >> /root/.bashrc
#Run sshd
get_ipython().system_raw('/usr/sbin/sshd -D &')
#Ask token
print("Copy authtoken from https://dashboard.ngrok.com/auth")
import getpass
authtoken = getpass.getpass()
# Permission denied error. from https://stackoverflow.com/a/62924061/7105963
get_ipython().system_raw('chmod 755 ./ngrok')
#Create tunnel
get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &')
#Print root password
print("Root password: {}".format(password))
#Get public address
! curl -s http://localhost:4040/api/tunnels | python3 -c \
"import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"
- run했는데 가끔 먹통일때가 있는것으로 확인된다. 그럴땐 그냥 한번 더 run 실행시켜주자
결과
해당 대시보드 링크 https://dashboard.ngrok.com/auth 로 들어간다.
ngrok에 연결되고, 간단하게 회원가입을 진행해주자
각자 원하는 방법으로 로그인을 끝내면 개인화면이 나온다
좌측 빨간네모박스 Your Authtoken 에 들어간다
1o으로 시작하는 개인토큰번호가 생성된다.
Copy버튼을 눌러서 복사하고, 다시 코랩으로 돌아가서 붙여넣기한다 (화질구지 ㅈㅅ)
간혹
이런식으로 list index out or range 에러를 볼수있는데,
이거는 단순하게 세션이 만료되서 에러났다고 생각하면된다.
이럴때는 다시 소스코드를 run시켜주자
그러면 결과창이 다음과같이 바뀐다
ssh to Colab
주의 : 필자가 진행했을때는 VSC에서 작업할때 에러가났었고
windows terminal에서는정상작동하였다
이제 터미널을 키고 다음과같이 작성한다
일반화 : ssh root@본인tcp주소 -p 주소값
필자는 ssh root@0.tcp.ngrok.io -p 10어쩌구 를 입력했고 엔터를누른다
그러면
이런식으로 password를 물어본다
다시 코랩으로 돌아가서
Root password (Em빨간박스wB) 를 복사후에
터미널에 복붙하면?
짜잔 접속완료다
VSC to Colab
VSC를 켜서 remote ssh 플러그인을 설치한다 (이부분은 사진생략)
ctrl + shift + p 를 눌러서 Remote-SSH : Open Configuration File 에 진입한다
이후 Host와 HostName을 작성해준다
Colab의 내용을 참조한다
Colab의 tcp주소와는 살짝 다른점, Host와 HostName이 동일한것에 주의하자
이렇게 안하면 에러나더라
이후 ctrl + shift + p 를 눌러서 Remote-SSH : Connect to Host 를 선택
진리의 Linux를 선택한다
여기서도 마찬가지로 Colab에서의 Root password를 사용하여 password를 입력후 enter
우측하단에 보면 SSH가 접속되어있는것을 확인할수 있다
결론
ngrok를 사용해서 Colab을 VSC에 끌어오는것까지 작업해봤다.
이제 잘 사용해보도록하자
'Dev' 카테고리의 다른 글
VSC에서 작업영역 구성하기 (Workspace) (0) | 2022.06.30 |
---|---|
Python def, *args, **kwargs 정리 (0) | 2022.06.05 |
자주쓰는 Conda 명령어 (0) | 2022.06.05 |
SCP로 가상환경-로컬 간 파일 전송하는법 (0) | 2022.02.27 |
UTM에서 띄운 가상환경에 ssh로 접근하기 (0) | 2022.02.27 |