본문 바로가기
프로그래밍 이야기/기타

[Colab] VSCode에서 SSH로 Colab과 연결 및 연결 유지하기

by meticulousdev 2022. 7. 24.
반응형

- 컴퓨터: M1 맥북에어 (macOS Monterey Version 12.4)

- 필수 프로그램: Visual Studio Code, brew

- 브라우저: Microsoft Edge

- 후기: 노력에 비해서 얻는 게 적은 느낌이라서 비추합니다.

 

목차

1. 프로그램 설치하기

2. VSCode에서 SSH로 Colab과 연결하기

3. 코드 실행하기

4. Colab과 연결 유지하기

 

1. 프로그램 설치하기

    기본적으로 맥북에 brew가 설치되어 있는 환경에서 작업을 진행합니다. 설치 링크는 다음과 같습니다. 

- Visual Studio Code: https://code.visualstudio.com

- Homebrew: https://brew.sh/index_ko

 

위의 프로그램들이 설치되었다면 Visual Stdio Code에 Remote-SSH를 설치합니다.

 

 

그리고 brew를 통해서 cloudfared를 설치합니다.

 

brew install cloudflare/cloudflare/cloudflared

 

윈도우 환경에서 설치를 진행하실 경우 여기에서 파일을 다운로드하시고 설치 방법을 확인하실 수 있습니다.

 

2. VSCode에서 SSH로 Colab과 연결하기

    지금부터가 조금 번거로운 작업입니다. Colab의 연결 설정에서 GPU를 사용할 수 있도록 설정합니다.

 

1) Colab 설정하기

- 구글 드라이브 마운드 (선택)

from google.colab import drive
drive.mount('/content/drive/')

 

- ssh 설정 (필수)

!pip install colab_ssh --upgrade 

from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared 
launch_ssh_cloudflared(password="test")

password는 접속 시 사용하게 될 비밀번호입니다. 저는 제가 주로 사용하는 비밀번호 중에 하나로 하였습니다.

*위의 코드를 실행시키면 금지된 작업이라는 경고가 뜹니다. 저는 그냥 사용하겠다고 하였습니다. 사용하실 분들은 참고하시기 바랍니다. Continue anyway 클릭

 

아래와 같은 화면이 뜬다면 정상적으로 실행된 것입니다. 이제 vscode의 설정을 시작하겠습니다.

*VSCode의 설정 진행 시 Colab의 연결이 끊기면 정상적으로 ssh 연결이 진행되지 않을 수도 있습니다. VSCode에서 연결이 안 된다고 할 경우 아래의 코드를 다시 실행시켜주세요. 그리고 장시간 colab을 연결해두기 추가 작업이 필요합니다. 이는 글의 끝부분에서 다루겠습니다.

 

 

2) vscode 설정하기

    command + shift + p(macOS)를 누른 후 Remote-SSH: Open SSH Configuration File... 을 누르고 config 파일을 엽니다. 제 컴퓨터 기준으로 /Users/hephaistos(컴퓨터 이름)/.ssh/config에 있는 파일입니다. 해당 파일에 Colab에서 실행 시 Client machine configuration에 출력된 코드를 입력합니다. 

(Windows의 경우 ctrl + shift + p)

 

Host *.trycloudflare.com
	HostName %h
	User root
	Port 22
	ProxyCommand <PUT_THE_ABSOLUTE_CLOUDFLARE_PATH_HERE> access ssh --hostname %h

 

다시 command + shift + p를 누르고 Remote-SSH: Connect to Host...를 클릭합니다. 그리고 Colab의 VSCode Remote SSH에 있었던 코드를 입력합니다. (이 코드는 해당 코드를 Colab에서 다시 실행할 때마다 다른 코드가 출력됩니다.)

 

 

앞서 정했던 password를 입력합니다. 이후의 작업에서는 지속적으로 연결이 끊길 수도 있습니다. 그럴 경우 4. Colab과 연결 유지하기를 Colab 코드 실행 이후에 바로 진행해주시기 바랍니다. 

 

 

terminal을 열고 nvidia-smi를 입력하여 정상적으로 연결되었는지 확인합니다. 아래와 같이 실행된다면 정상적으로 연결된 것입니다.

 

 

3. 코드 실행하기

*여기서 다루는 내용은 구글 드라이브 마운트가 된 상태를 가정하고 진행합니다.

    EXPLORER - Open Folder에서 마운트 된 구글 드라이브에서 폴더(/content/drive/MyDrive/Colab Notebooks/)를 열어 줍니다. 이때 다시 비밀번호를 요구합니다. 앞서 정하신 비밀번호를 다시 입력합니다. 이제 터미널을 통해서 코드를 실행시키시면 됩니다.

 

 

4. Colab과 연결 유지하기

    이제 연결을 유지하는 방법을 알아보겠습니다. F12를 눌러서 브라우저의 DevTools를 엽니다. Console에 아래의 코드를 입력합니다.

 

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);

참고자료: https://stackoverflow.com/questions/57113226/how-to-prevent-google-colab-from-disconnecting

 

연결이 유지되는 동안에는 Connect pushed가 계속해서 보이실 겁니다. 실행되는 동안 Connect pushed 왼쪽의 숫자는 시간이 지남에 따라서 계속 증가합니다.

 

 

*4. Colab과 연결 유지하기 상의 작업을 하더라도 아래와 같이 연결이 한 번씩 끝기도 합니다.

 

 

긴 글 읽어주셔서 감사합니다. 
글과 관련된 의견은 언제든지 환영입니다.
반응형

댓글