본문 바로가기
분석환경구축하기/GCP

[GCP] #03 GCP Compute Engine VM에 파이썬(Python) 분석환경 구성하기

by DoBeFree 2020. 4. 30.
반응형

<시리즈 목차> 

1화 : [GCP] #01 GCP Compute Engine VM 으로 분석서버 구축하기
2화 : [GCP] #02 GCP Compute Engine VM 인스턴스 초기 세팅하기
3화 : [GCP] #03 GCP Compute Engine VM에 파이썬(Python) 분석환경 구성하기
4화 : [GCP] #04 GCP Compute Engine VM에 R 분석환경 구성하기
5화 : [GCP] #05 분석을 위한 Google CloudSQL SQLServer 구축&GCE 파이썬 분석서버와 연결하기
6화 : [GCP] #06 Google Bigquery GCE 파이썬서버에서 활용하기
7화 : [GCP] #07 GCP Compute Engine VM에 아파치 에어플로우(Airflow) 설치하여 ETL 환경 구축하기
8화 : [GCP] #08 GCP Compute Engine VM에 제플린(zepplien), 스파크(Spark), 스칼라(Scala) 설치하기
9화 : [GCP] #09 Google Cloud Storage 저장소를 GCE 파이썬 서버에서 활용하기

이번 글에서는 GCP Compute Enigne VM 인스턴스에 파이선(anaconda python3)을 설치하고 쥬피터 노트북(Jupiter notebook) 을 통해 파이썬 분석환경을 구축하는 방법에 대해 다룬다.

 

1. 아나콘다 파이썬 다운로드 및 설치하기

아나콘다 공식 홈페이지를 통해 설치파일을 다운로드 후 쉽게 설치할 수 있다.
 공식 홈페이지 링크 : https://www.anaconda.com/distribution/
# 최신버전 링크는 버전에 따라 달라질 수 있습니다.
# Anaconda 다운로드 
# 공식홈페이지에서 최신버전 링크를 확인하여 다운로드 가능
# 링크 : https://www.anaconda.com/distribution/

# 다운받을 download 폴더생성 후 들어가기
# mkdir : 폴더 생성하기
# cd : 폴더 들어가기

$ mkdir download
$ cd ./download

# download 폴더안에 Anaconda python 다운로드 및 설치하기
# 다운로드는 "$ wget + 링크" 명령어를 통해 다운로드 가능합니다.

$ wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh

# 다운받은 파일 설치하기
$ bash Anaconda3-2021.11-Linux-x86_64.sh

2. Anaconda Python 환경변수 설정하기

JDK 때와 마찬가지로 파이썬을 설치했다면 파이썬이 어디에 설치됐는지 환경변수에 등록해 줘야 한다. 따라서 bash_profile 에 파이썬을 등록한다. (~/.bash_profile 생성과 환경변수 설정하는 법 이전 글인 2020.04.30 - [분석환경구축하기/GCP] - [GCP] #02 GCP Compute Engine VM 인스턴스 초기 세팅하기 에서 확인할 수 있다.)

STEP01 : 설치 시 환경변수 등록이 자동으로 됐는지 확인하기

$ ipython

# 만약 위 명령어를 실행하고 아래와 같은 오류 메시지가 뜬다면 환경변수를 수동으로 설정해야함.

Command 'ipython' not found, did you mean:
  command 'bpython' from deb bpython (0.18-3)
  command 'ipython3' from deb ipython3 (7.13.0-1)
Try: apt install <deb name>

STEP02 : Anaconda Python 환경변수 등록하기

아래 Bash 명령어는 ~/.bash_profile 에 export PATH="$PATH:$HOME/anaconda3/bin" 라는 명령어를 가장 밑에 추가하는 명령어 입니다. 이 명령어를 실행하여 python 환경변수를  입력해 준다.

$ echo 'export PATH="$PATH:$HOME/anaconda3/bin"' >> ~/.bash_profile
$ source ~/.bash_profile

만약 성공적으로 환경변수에 등록이 됐다면 아래와 같이 ipython이 성공적으로 실행돼야 한다.

$ ipython

# 실행결과
Python 3.9.7 (default, Sep 16 2021, 13:09:58) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:

 

3. jupyter notebook 서버 구축하기

파이썬 설치가 끝났다면 jupyter notebook 서버를 사용할 수 있도록 설정해 줘야한다.

STEP01 :  configuration 파일 생성, 설정하기

jupyter_notebook_config.py 파일에는 쥬피터 노트북 관련 설정이 저장돼 있고 사용자는 이 config파일을 통해 쥬피터 노트북의 서버주소, 사용자 등록 등 노트북 내 각종 설정을 조정할 수 있다.

아래 명령어를 통해 jupyter_notebook_config.py 파일을 생성한다.

# config 파일생성
$ jupyter notebook --generate-config

문제 없이 생성된다면 아래와 같이 /home/gcpdev1234567/.jupyter/jupyter_notebook_config.py 에 파일이 생성된것을 확인할 수 있다.

 

STEP 02 : jupyter_notebook_config.py 파일 수정하기

아래 명령어를 입력, vi 에디터를 통해  jupyter_notebook_config.py 파일을 수정 한다.

vi 에디터는 ESC키를 누르시고 a 키를 눌러 편집모드로 들어가 내용을 수정할 수 있다.
모든 수정이 끝나면 , ESC키를 눌러 편집모드를 빠져나온후 :wq 키를 입력, ENTER키를 눌러 저장할 수 있다.
*  :q -> 수정없이 종료
*  :q! -> 강제종료
*  :wq! -> 강제 저장 후 종료 

아래 명령어를 입력, vi 에디터를 통해  jupyter_notebook_config.py 파일을 수정 한다.

$ vi ~/.jupyter/jupyter_notebook_config.py
#jupyter_notebook_config.py 파일.

#-------------------| vi 에디터 실행 결과 |-------------------
# Configuration file for jupyter-notebook.

#------------------------------------------------------------------------------
# Application(SingletonConfigurable) configuration
#------------------------------------------------------------------------------

c = get_config()
c.NotebookApp.ip = '0.0.0.0' #'*'를 사용할 경우 에러가 나는 케이스가 있습니다.
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888 # 이 숫자를 잘 기억하고 나중에 나오는 방화벽 설정과 동일한 값을 입력할 수 있도록합니다.

## This is an application
#후략 ..

STEP03 : 외부 IP 할과 방화벽 규칙 설정을 통한 jupyter notebook 서버 접근 설정하기.

STEP03-01 : 인스턴스에 외부 IP 할당하기

외부에서 인스턴스에 접근하려면 외부 고정 IP 가 필요합니다. 인스턴스 생성에서 기본으로 할당된 IP는 내부 혹은 임시 IP이기 때문에 인스턴스에 고정적인 외부 IP를 할당하는 과정이 필요하고. 이 고정 외부 IP 설정은 네트워킹 > VPC네트워크 > 외부IP주소 페이지에서 생성 가능하다.

인스턴스를 만들면 자동으로 임시 외부 IP주소가 발급되는데 이 IP주소 대신 신규로 고정IP를 할당해줘야 합니다. 이를 위해 예약을 클릭하고 인스턴스 이름과 설명을 입력후에 인스턴스 고정IP 할당을 마친다.

설정이 완료되면, 인스턴스의 IP유형이 고정으로, 네트워크계층은 프리미엄으로 변경된것을 확인할 수 있다.

STEP03-02 : 방화벽 설정으로 Jupyter notebook 에 대한 연결 허용하기

고정 외부IP를 설정했지만 외부에서 인스턴스로 접근하는 모든 연결이 열린것은 아니다. 허용되지 않은 연결이 들어올 수 없도록 방화벽이 설정돼 있어 대부분의 연결이 차단된 상태이다. 따라서 연결을 허용하는 방화벽 규칙을 만들어야 한다.

우리는 jupyter_notebook_config.py설정에서 기본 포트(Port)를 8888로 설정했었기 때문에 이 8888번 포트에 대해서 접근을 허용하는 규칙을 허용하겠다. 

방화벽 규칙을 설정하기 위해 네트워킹 > VPC네트워크 > 방화벽규칙으로 들어간다.

방화벽 규칙 만들기를 클릭한다.

아래와 같이 방화벽 규칙을 작성하여 방화벽 설정을 완료한다.

아래와 같이 jupyter-notebook 이라는 방화벽 규칙이 새로 생성된 것을 확인할 수 있다.

STEP04 : Jupyter notebook 접근 확인

# 가장 기본 디렉토리로 이동
cd ~/

# 쥬피터 노트북 실행하기
$ jupyter notebook --port=8888 --no-browser

인터넷 주소창에 <고정-IP 주소>:8888 을 입력하여 노트북 실행을 확인한다. 만약 고정IP가 123.12.1234.12 라면 인터넷 주소창에 123.12.1234.12:8888을 입력하면 됩니다. 현재 GCE 고정 IP주소가 34.64.112.167 이기 때문에 34.64.112.167:8888를 입력하여 jupyter notebook 서버에 접근할 수 있다. 

아래와 같이 잘 구동되는것을 확인하였고, 쉘의 token값을 입력하여 로그인 or 패스워드 설정을 진행하여 기존 로컬환경처럼 jupyter notebook을 사용할 수 있다.

 

반응형

댓글