본문 바로가기

Language

[Python]AWS EC2 Jupyter notebook 설치 및 연결하기

 

로컬 PC는 세팅이 편리하지만, 항상 그 PC를 가지고 다녀야하는 불편이 있다.
그래서 서버를 두고 원격으로 접속해서  Jupyter lab/notebook 접속을 해보기로 했다.

원격 서버에 Python 환경을 두고 테스트 소스를 실행하는데 가장 간편한 방법은 CoLab을 활용하면 된다.

하지만, 실제 서버 환경 구성까지  테스트할 목적이어서

EC2에 Jupyter notebook 설치 후 원격으로 항상 접속하는 환경을 만들어 보겠다.


 

Jupyter notebook 설치 하기

1. apt get 업데이트

$ sudo apt-get udpate

 

2. python pip3 설치

필자는 ubuntu를 사용하는데, ubuntu는 python3 가 설치되어 있어서, pip 설치 할 수 있다.

$ sudo apt-get install python3-pip

 

3. jupyter notebook 설치

pip3를 통해서, jupyter notebook 설치 한다.

$ sudo pip3 install notebook

 


Jupyter notebook 서버 구성

1. python 실행

$ python3

 

2. python 코드 작성해서, 패스워드를 생성 및 설정

>> from notebook.auth import passwd
>> passwd()

python 명령어를 실행하면, 패스워드 입력을 2번 입력 하여 확인하며, 입력한 패스워드가 암호화 되어 출력되는데, 

이를 메모장에 복사해 둔다. 

exit() 명령어로 python3 에서 나온다.

 

 

3. jupyter notebook 환경설정 파일 생성

$ jupyter notebook --generate-config

 

4. vi 에디터로 config 파일을 작성

$ sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py

파일 마지막 끝으로 이동 ( vi 에디터 'G' )해서 아래 내용을 입력하고 저장하고 나온다. (wq!)

주의 사항은 NotebookApp.pasword = 'argon2: 어쩌고..했던 값' ,  NotebookApp.ip = 'AWS 프라이빗 IP'

, notebook_dir = '접속시 보여주는 홈디렉토리의 절대경로'

c = get_config()
c.NotebookApp.password = u'argon2....'
c.NotebookApp.ip="EC2 Private IP "
c.NotebookApp.notebook_dir = '/'

 


 

Jupyter notebook 실행 하기

1. EC2 보안그룹에 규칙 포트 추가

8888 포트 Inboud 허용

 

2. Jupyter notebook 실행 및 테스트

아래 명령어로 jupyter notebook 실행을 볼 수 있다.

$ sudo jupyter-notebook --allow-root

하지만, 터미널 종료와 함께 jupyter도 종료 되기 때문에 항상 접속 가능하도록 백그라운드 실행이 필요하다.

 

 

3. Jupyter notebook 백그라운드 실행

Ctrl+Z 로 bash로 돌아 온 후 아래 명령어를 실행하여 백그라운드 실행하도록 하고, 소유권을 포기한다.

$ bg
$ disown -h

서버를 kill 하고 싶으면, kill 명령어를 사용하거나, jupyter 에서 shutdown 시키면 된다.

 

연결 테스트

EC2 연결된 "퍼블릭IP(elastic IP):포트"로 브라우저에 접속 시도하면 아래와 같이 로그인 페이지가 열린다.

암호를 입력해서 어디서든 접속해 볼 수 있다.

브라우저 접속 및 암호 입력