Google Colab은 구글 드라이브에 저장된 Jupyter notebook을 실행할 수 있는 환경을 제공합니다. 구글 드라이브에 있는 파일을 수정하기에 구글 문서와 같이 실시간 협업이 가능한 줄 알았지만, 코드 수정이나 각 셀의 실행결과가 실시간으로 반영되지는 않습니다. 의견을 나누면서 빠르게 코드 작성하기를 원하는 경우에는 실시간으로 협업하는 기능을 필요로 합니다. 이런 기능을 지원하는 서비스들이 존재하지만 유료로 제공됩니다.
Jupyterlab에서는 아직 실험적 기능이지만 실시간 협업을 지원합니다. Juypterlab을 실행할 때에 --collaborative 를 추가해주면 됩니다. 같은 네트워크에 속해있는 경우 Jupyterlab을 실행한 호스트 주소로 바로 접속하면 되지만, 서로 다른 네트워크에 속해 있는 경우 호스트에 접속할 수 없습니다. ngrok 서비스를 사용하면 다른 네트워크에서도 접속이 가능하도록 만들 수 있습니다.
1. ngrok 설정
ngrok 홈페이지에 접속하여 계정을 생성합니다.
ngrok - Online in One Line
Zero Trust Add SSO, Mutual TLS, IP Policy, and webhook signature verification.
ngrok.com
계정을 생성하면 아래 그림과 같이 token을 확인할 수 있습니다.
Download 페이지로 이동하여 설치를 진행합니다.
계정을 생성하면 얻을 수 있는 token을 추가합니다.
2. Jupyterlab 설정
설정 파일을 생성합니다.
jupyter lab --generate-config
/home/[사용자이름]/.jupyter/jupyter_lab_config.py 위치에 설정 파일이 생성되었을 것입니다.
생성된 설정 파일에 다음의 구문을 추가합니다.
c.ServerApp.allow_remote_access = True
다음의 명령어를 통해 비밀번호를 생성합니다.
jupyter lab password
3. Jupyterlab 실행
Jupyterlab을 실행합니다.
jupyter lab --collaborative
4. ngrok 실행
jupyter lab에서 별도의 포트를 설정하지 않았다면 기본 포트 8888로 실행되었을 것이기 때문에, 아래와 같이 ngrok에 8888 포트를 설정합니다.
ngrok http 8888 --host-header="localhost"
ngrok이 실행되면 다음과 같은 화면을 보게 되고, Forwarding 이후 적혀있는 *.ngrok.io 로 끝나는 주소를 사용하여 외부에서도 접근이 가능한 상태가 됩니다.
5. 외부 접속
설정이 잘 진행되었다면, 외부에서 접속이 가능하고 아래와 같은 화면을 볼 수 있습니다. 여기서 이전에 설정한 비밀번호를 입력하면 호스트 사용자와 동일한 노트북을 보면서 실시간으로 협업이 가능합니다.
6. 실시간 협업
이제 호스트에 접속한 누구나 코드를 수정할 수 있고, 그 결과가 실시간으로 반영되어 다른 사람들도 확인할 수 있습니다.
'개발환경' 카테고리의 다른 글
GCP Jupyter Lab 실시간 협업 (0) | 2022.06.12 |
---|---|
클라우드 플랫폼 무료 티어 비교 (0) | 2022.05.01 |
무료 GPU 사용 가능 Jupyter Notebook 서비스 (0) | 2022.04.23 |
웹서비스 배포를 위한 플랫폼 (0) | 2022.04.23 |