반응형

0. 시작하기

 - 언제 어디서나 인터넷만 되면, 접속이 가능한 Jupyter Server를 구축해보겠습니다.

 - 서버는 무료로 사용가능한 Oracle Cloud 프리티어, OS는 Ubuntu 18를 사용하였습니다.

 - 클라우드 보안 및 네트워킹 설정에 대한 부분은 다루지 않습니다.

 - 운영체제 및 개인네트워크 환경에 따라 정상적으로 설치가 안될 수 있습니다.

 

 

1. pip 및 Jupyter 설치

  1) PIP 설치

    최근에는 기본적으로 유닉스/리눅스 OS계열에서는 Python이 설치되어있기는 하지만, 적어주고 가겠습니다.

sudo apt-get update
sudo apt install python3-pip
sudo pip3 install --upgrade pip

 

  2) 개발 작업공간 및 인증서보관 폴더 생성

mkdir jupyter
mkdir jupyter/cert
mkdir jupyter/contents

    cert          : 인증서 보관용 폴더

    contents   : 실제 작업공간

 

  3) 인증서 생성

cd jupyter/cert
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout notebook.key -out notebook.pem

    cert 폴더로 이동하여 openssl을 이용한 사설인증서 생성(openssl 생성시 설정은 그냥 빈칸으로 넣고 Enter처도 무관합니다)

인증서 생성 후 사진

 

  4) Jupyter 설치

sudo pip3 install jupyter notebook

    주피터 설치 시, 기본설정은 로컬에서만 작동하도록 되어있습니다. 때문에 원격지에서 접속 할 수 있도록 설정을 해줘야합니다.

 

 

3. Jupyter 설정

 

  1) Jupyter Server 설정

    1.1) 접속 패스워드 설정 (파이썬에서 argon2 방식으로 암호화된 값을 구해 config 파일에 넣어주는 방식입니다.)

Python3
>> from notebook.auth import passwd
>> passwd()
Enter password : (입력)
Verify password : (입력)
'argon2:$argon2id$v=19$m=10240,t=10,p=8$vyRuJXe9zdvrHFqZMe4FMg$gPmyWbmPLWJz7E/m6AoAGg'
>> exit()

      위에 마지막줄 '~~~' 부분을 복사해서 config 파일에 넣어줘야합니다.

 

    1.2) config 파일 생성

jupyter notebook --generate-config

    jupyter notebook --generate-config  :  기본 설정파일 생성(jupyter_notebook_config.py)

 

    1.3) config 파일 설정

sudo vi ~/.jupyter/jupyter_notebook_config.py

파일내용 맨 아랫부분에 아래와 같은 내용을 추가해줍니다.

c = get_config()
c.NotebookApp.password = u'argon2:$argon~~~~~~~~~~~~~'                 # 위에서 복사한 암호값을 넣어줍니다.
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = u'/home/ubuntu/jupyter/cert/notebook.pem'
c.NotebookApp.keyfile = u'/home/ubuntu/jupyter/cert/notebook.key'
c.NotebookApp.port = 8888                                                                     # 접속용 포트를 입력해주세요.
c.NotebookApp.notebook_dir = u'/home/ubuntu/jupyter/contents'

    sudo vi ~/.jupyter/jupyter_notebook_config.py  :  생성된 설정파일 수정 (vi가 아닌 편한 에디터를 이용해주세요)

 

    1.4) 외부접속 포트 허용

sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 8888 -m state --state NEW,ESTABLISHED -j ACCEPT

 

  2) 접속 확인

브라우저에 서버의 공인IP와 위에서 설정한 포트IP를 입력 후 접속하여, 설정한 암호로 접속할 수 있습니다.
브라우저 : https://공인IP:8888

접속화면

꼭 https 를 통해서 접속해야합니다. 접속시, 사설인증서를 사용하였기 때문에, 안전하지 않은 사이트라고 나오지만, 그냥 접속하면됩니다.

맥 OS에서 접속할 경우 해당인증서를 키체인에 등록 후 신뢰할 수 있는 인증서로 등록해주셔야합니다.

 

암호입력 후 접속화면

 

 

Fin

반응형

+ Recent posts