본문 바로가기

Applications/Jupyter Nodebook

jupyter notebook을 ssl 적용 및 systemctl 등록하여 자동시작 하기

# 실습목표

- Jupyter notebook의 SSL 적용

- Jupyter notebook을 Systemctl 에 등록하여 자동시작 하도록 설정

- Ctrl + z를 눌러서 커맨드 창으로 이동한다.

- bg 를 입력하여 방금 전 실행한 명령어가 백그라운드에서 실행되도록 설정한다.

- disown -h를 입력하여 실행권한을 넘긴다.

- 이렇게 등록하면 백그라운드에서 지속적으로 실행 되어진다.

- sudo netstat -nap | grep 8888로 8888 포트로 실행중인 애플리케이션을 확인한다.

- sudo kill -9 8572를 입력하여 강제로 프로그램을 종료한다. 8572는 pid로 프로그램 실행 id라고 보면된다.

- ssl을 적용하여, https로 접근, ssl을 적용하는 방법에 대해 알아보자.

- mkdir ssl을 입력하여 ssl 폴더를 생성한다.

- 위의 sudo~명령어를 입력하여 개인키 및 공개키를 생성한다.

- sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout "cert.key" "cert.pem" -batch

- 개인키 및 공개키를 생성 후 이전에 편집한 jupyter의 config파일을 연다.

- config 파일을 open한뒤 위의 certfile 및 key파일의 경로를 입력한다.

c.NotebookApp.certfile = u'/home/ubuntu/ssl/cert.pem'

c.NotebookApp.keyfile = u'/home/ubuntu/ssl/cert.key'

- config 파일을 저장한뒤, sudo jupyter-notebook --allow-root 명령어를 입력하여 다시 시작한다.

- 이제 https:로 접근이 가능하다.

- 이번에는 systemctl에 등록하여, 인스턴스가 재 시작되어도 자동으로 시작 되도록 하는 설정을 해보겠다.

- AWS의 인스턴스는 재부팅 시 퍼블릭 IP를 새로 받아오므로, systemctl에 등록해놓고 ec2가 실행될때 자동으로 실행되도록 구현해 놓으면 재부팅 되어도 재 설정할 필요가 없으므로 아주 편리하다.

- 위의 명령어를 입력하여 jupyter.service를 만든다.

- 위의 스크립트를 입력하여, 자동으로 실행되도록 구현한다.

[Unit]

Description=Jupyter Notebook Server

[Service]

Type=simple

User=ubuntu

ExecStart=/usr/bin/sudo /usr/local/bin/jupyter-notebook --allow-root --config=/home/ubuntu/.jupyter/jupyter_notebook_config.py

[Install]

WantedBy=multi-user.target

- 데몬을 재 시작하고, enable옵션을 통해 허용을 하고 서비스를 시작한다.

- status명령어로 애플리케이션이 정상적으로 실행이 됐는지 확인가능하다.

- 만약 서비스를 재시작 해야한다면 위의 명령어를 입력하여 재 시작한다.

- 이제 EC2 인스턴스를 중지 후 재시작 해도 언제든지 접근이 가능하다. ^^

'Applications > Jupyter Nodebook' 카테고리의 다른 글

jupyter notebook 설치  (0) 2021.04.06