[jupyter notebook] install and publish public serversteemCreated with Sketch.

in #aws-ec27 years ago (edited)

설치 환경


AWS-EC2, ubuntu 14.04

bash , python3 환경에서 진행하였습니다.

설치 방법


  • 가장 먼저 jupyter 를 설치합니다.
$ pip3 install jupyter

  • 로컬환경에서는 다음 명령으를 이용하면 localhost:8888 로 접속가능합니다.
$ jupyter notebook


  • 그러나 AWS EC2환경에서는 브라우저를 활용할 수 없기 때문에 jupyter notebook에 외부접속을 해야 합니다.
    이를 위한 ip, port, ssl 등을 설정하기 위해 설정파일을 생성합니다.
$ jupyter notebook --generate-config  


  • SSL 키파일 생성(선택사항)
    ssl 인증서를 사용하려면 아래 명령어를 입력합니다.
    저는 /home/user/.ssl 생성했습니다.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout "cert.pem" -out "cert.pem" -batch 


  • 아무나 접속하게 할 수 없으므로 password 생성합니다.
    python3 를 실행시켜서 아래 명령어로 비밀번호 hash값을 구하고 기록해 놓습니다.

$ python3 
>>> from notebook.auth import passwd ; passwd()
Enter password:
Verify password:
'sha1:2f9934b619d7:0df82234bd10b7637f3230de73dc624d73f5d9df'


  • 위에서 만들었던 ~/.jupyter/jupyter_notebook_config.py 파일 맨 아래 줄에 다음 내용을 추가합니다.

c = get_config()  # Get the config object.
c.IPKernelApp.pylab = 'inline'  # in-line figure when using Matplotlib
c.NotebookApp.ip = '*'  # Serve notebooks locally.
c.NotebookApp.open_browser = False  # Do not open a browser window by default when using notebooks.
c.NotebookApp.password = 'sha1:2f9934b619d7:0df82234bd10b7637f3230de73dc624d73f5d9df'
  • ssl 을 활용할 경우 아래 줄도 포함시켜줍니다.

c.NotebookApp.certfile = u'/your/absolute/directory/path/ssl/cert.pem' # path to the certificate we generated
c.NotebookApp.keyfile = u'/your/absolute/directory/path/ssl/cert.pem' # path to the certificate key we generated
  • notebook 메인이 될 디렉토리에서 nohup으로 실행시켜 줍니다.

$ nohup jupyter notebook &


  • 해당 ip와 port 로 접속하면 비밀번호를 요구합니다.
    위에서 입력했던 비밀번호를 입력하면 jupyter-notebook이 실행됩니다.

오류 발생시


  • SSL을 설정했을 때, SSL 버전이 잘못되었다고 했었는데 이는 사설 인증서기 때문에 발생하는 오류로
    chrome의 경우, 안전하지않음 을 선택하여 진행하였습니다.


  • 새로운 파일을 생성하거나 삭제할 때 권한거부 당하는 경우, ~/.local/share 디렉토리의 소유자를 사용자로 변경해서 해결하였습니다.
$ sudo chown -R ubuntu.ubuntu ~/.local/share/

Reference

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 58116.56
ETH 2361.49
USDT 1.00
SBD 2.42