설치 환경
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/