[개발][환경설정]AWS 서버에 Jupyter 설정

in #kr7 years ago

개요

AWS 서버에 Jupyter Notebook 을 설치 하고 외부에서 접속 가능하게 만들어 웹으로 python을 개발 하고 테스트를 하고 싶다.
회사에서 새로운 방화벽을 설치 후 안되는 사이트가 많아 졌다. 심지어 steemit 까지도...
그 대안으로 선택한게 AWS EC2 서버 ( 가입후 1년은 프리티어 버전이 무료이다. ) + Jupyter Notebook 이다.

Step.1 AWS EC2 설정

EC2 서버를 Ubuntu 프리티어로 생성.
생성시에 네트워크 보안 그룹을 지정해야 된다.
보안 그룹이란 방화벽 개념으로 열어줘야 할 프로토콜/IP/PORT 를 지정해 줄수 있다.
보안 그룹은 데쉬보드에서 미리 만들수 있다.
아래는 필자가 설정한 보안 그룹 인바운드 ( EC2 서버로 들어올수 있는 ) 규칙이다.

AWS_규칙.PNG

EC2 서버는 SSH 로 접속할 때 ID/PW 가 아닌 확장자가 pem 인 프라이빗 키 파일을 가지고 로그인한다.

이 키 파일과 주소만 알면 접속이 가능하니 해당 파일은 관리가 필요하다.

ssh -i "my_key.pem" [email protected]

Step2. python 환경 설치

steem 모듈을 설치해서 간단한 API 시험이 목적이다.
steem 모듈은 python3.6 버전을 따로 설치 해야 한다.

python 3.6 및 기본 프로그램들 설치

ubuntu 는 apt-get 이라는 프로그램으로 페키지를 관리 하는데 python3 는 3.5 가 최신이다.
새로운 repository 를 등록 하고 시스템에 3.6 버전을 연결한다.

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get -y install python3.6
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
sudo update-alternatives --config python3

부수적인 프로그램들 설치

sudo apt-get install -y python3-pip
sudo apt-get install -y python3.6-dev
sudo apt-get install -y libssl-dev
sudo apt-get install -y gcc
sudo apt-get install -y virtualenv

아래와 같이 한번에도 설치 가능하다.

sudo apt-get install -y python3-pip python3.6-dev libssl-dev gcc virtualenv

Step3. jupyter

jupyter 설치

steem_venv 환경을 활성화 시킨후 pip 를 실행 시킨다.

pip install jupyter

jupyter 환경 설정

config 파일을 생성.

jupyter notebook --generate-config

/home/ubuntu/.jupyter/jupyter_notebook_config.py

해당 위치에 jupyter_notebook_config.py을 열어 편집.

pw 설정

python 실행 아래의 내용 입력

from notebook.auth import passwd
passwd()

Enter password:
Verify password:

사용할 PW 를 입력하면 암호화된 값이 나온다.

'sha1:f24baff49ac5:863dd2ae74721fffffffffffffffff0ca7b12bb3'

위의 값을 복사하여 jupyter_notebook_config.py 에 붙여 넣기

# Password to use for web authentication
c = get_config()
c.NotebookApp.password = u'sha1:f24baff49ac5:863dd2ae74721fffffffffffffffff0ca7b12bb3'

외부접속을 위한 IP / PORT 설정

자신의 IP 를 알아본다.

ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1

위에 결과에서 addr: 뒤의 값을 복사하여 jupyter_notebook_config.py 에 붙여 넣기

# The IP address the notebook server will listen on.
# c.NotebookApp.ip = 'localhost'
c.NotebookApp.ip = '11.111.111.131'
c.NotebookApp.port_retries = 1111 

jupyter notebook 실행시 브라우져 안뜨도록 설정

c.NotebookApp.open_browser = False

jupyter notebook 디폴트 디렉토리 설정 ( full path 로 설정 )

c.NotebookApp.notebook_dir = u'/ubuntu/steem/'

jupyter 실행

jupyter notebook&

http://ec2-11-11-111-111.ap-northeast-2.compute.amazonaws.com:1111

웹브라우져로 접속 하여 화면이 뜨면 성공.

PW 입력 화면나오면 아까 입력 한 값으로 로그인.

Next Step

  • steem 모듈 로딩
  • steem 기본 정보 가져오기
Sort:  

와..저는 도저히 알 수 없는 전문적인 내용..ㅎ
아무튼 행복한 하루 되시길 바랍니다^^

전문적인 내용이라 하기에는 부끄러움이 있네요 ^^ 일상이 시작 되는 월요일입니다. 화이팅~!!

한주의 시작!
따뜻한 커피한잔으로 시작해요~^^