본문 바로가기
Programming/Python

주피터 노트북 외부에서 실행하기

by 느리게 걷는 즐거움 2024. 5. 23.
반응형

주피터 노트북 외부에서 실행하기

집에 있는 주피터 노트북을 외부에서 실행하기 위한 방법을 정리합니다. 잘 정리두신 블로그[1]를 참고에 진행한 내용을 정리합니다.

기본 조건으로 외부에서 집에있는 컴퓨터에 접속이 가능해야 합니다. 인터넷 회사에 따라서 연결하는 방식이 다르기 때문에 공유기 설정 중 "포트 포워딩" 기능을 이용해서 접속이 가능하도록 해야합니다. 사용하는 인터넷 회사에 따라 다르기 때문에 이 부분은 동작되다는 가정 상황에서 시작합니다.

우분투를 이용해서 주피터 노트북을 실행하는 경우 우분트의 방화벽을 해제 해야합니다. 전체 시스템 연결 구조는 아래와 같습니다.

 [외부:웹브라우져] <==> [집::우분투 서버]
                               |
                      (주피터 노트북 실행)

외부에서 웹브라우져를 이용하여 집 또는 회사의 우분투 서버 ip로 접속합니다. 접속 시 주피터 노트북과 연결을 위해서 포트번호를 함께 사용합니다. 기본적으로 8888포트를 사용하기 때문에 외부에서는 "집::우분투서버 IP:8888"로 연결하여 접속합니다.

1. 우분투 서버 방화벽 해제

외부에서 우분투 서버에 접속이 가능하도록 8888포트의 방화벽을 해제합니다.

sudo ufw allow 8888

2. Jupyter Notebook 환경설정

주피터 노트북이 실행될 때 설정이 필요한 환경정보를 저장합니다. 저장을 위해서 환경변수를 저장하는 jupyter_notebook_config.py파일을 만들어 적용합니다.

jupyter notebook --generate-config

위의 명령을 수행하면 "~/.jupyter/jupyter_notebook_config.py"파일이 생성됩니다. 이 파일을 수정하여 jupyter notebook 설정 정보를 저장합니다.

주피터 노트북을 Password로 접속하기

아래의 password 생성 명령을 사용하여 사용할 password를 입력하면 "jupyter_notebook_config.json"파일이 생성됩니다.

jupyter notebook password

이 파일에는 입력했던 password를 hash화 하여 정보를 저장합니다. jupyter notebook 설정정보에 이 hash화된 암호 정보를 입력합니다.

설정정보변경

설정정보는 "~/.jupyter/jupyter_notebook_config.py" 파일에 주석처리로 저장되어 있습니다. 아래의 내용을 수정하여 적용합니다.

c.NotebookApp.allow_origin="*"      // 외부 접속을 허용하는 설정
c.NotebookApp.notebook_dir="경로"   // jupyternotebook 작업경로 설정
c.NotebookApp.ip="*"                // 외부로 접속이 가능한 ip를 설정
c.NotebookApp.password="Hash화된 패스워드 입력"   // 암호를 Hash화 한 후 해당 정보를 업데이트 함
c.NotebookApp.password_required=True   //비밀번호를 사용하여 접속하도록 설정
c.NotebookApp.open_browser=False       // 서버 PC에서 자동으로 브라우져가 열리지 않도록 설정

 

3. Jupyter Notebook 실행

설정이 완료 되면 아래의 명령으로 jupyter notebook을 실행하고 외부에서 우분투서버 IP와 8888포트 정보를 입력하여 주피터 노트북에 접속합니다.

jupyter notebook
접속 후 암호는 주피터 노트북 설정을 위해 정한 암호를 입력하여 접속이 가능합니다.
반응형

'Programming > Python' 카테고리의 다른 글

Python Text Write 방법 정리  (0) 2024.05.26
Python 라이브러리 백업/복원  (0) 2024.05.25
Python Thread 사용 시 주의해야할 점  (0) 2024.05.17
Python Thread 사용방법  (0) 2024.05.17
Cython: Python 성능 향상  (0) 2024.05.17