본문 바로가기
데이터&AI

나만의 우분투 서버로 나만의 클라우드 서버 구축하기

by 일등박사 2022. 5. 12.
728x90

2022.05.11 - [일등박사의 생각/데이터분석] - 중고 PC를 구매해서 집에 우분투 서버 세팅하기!!

 

 

지난 포스팅에서는

① 중고 PC를 구매하여

② 우분투를 설치하고

③ 윈도우 PC에서 powershell로 원격으로 접속하는것 까지 시도해보았었다!!

 

이번 포스팅에서는

① 주피터 노트북과 몽고DB설치 및 실행

② 포트포워딩

 

을 통하여 전세계 어디서든 접근할 수 있는 나만의 클라우드 서버로 발전시킨 과정을 소개할 예정이다!!^^

 

!!!결론부터 공개하면!!!!!

아래처럼 어디서든지 브라우져만 있으면 내 서버를 노트북으로 접속하수 있고

내 핸드폰에서 접속한 서버 노트북

어디서든지 분석환경만 된다면 내 서버의 DB에  접속하수 있다!!

구글 Colab에서 나의 서버 MongoDB에 접속하여 데이터를 불러온다!!

 

1.  필요한 파일들 설치하고 실행시키기

이미 많은 블로그들에서 필요한 파일을 설치하는 법은 잘 소개가 되어있다!!

 

 >> 주피터 노트북(파이썬)은 아나콘다로 한번에 깔끔하게 설치하고!!

https://velog.io/@tube-jeonghoon/Ubuntu%EC%97%90-anaconda-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

Ubuntu에 anaconda 설치하기

Ubuntu에 anaconda를 설치해 봅시다.

velog.io

 

 >> 몽고DB도 아래 블로그처럼 쉽게 설치할 수 있었다!!

https://www.walterz.net/2020/12/30/3160/

 

우분투 리눅스에 MongoDB 설치하기(Ubuntu 20.04 LTS) - Creative Nomad LondonCity

몽고DB는 SQL을 사용하지 않는 데이터베이스 시스템입니다. 반면 기존에 많이 사용되던 오라클이나 MySQL, MSSQL 등은 이름에서도 알 수 있듯이 데이터베이스 관리를 위한 구조적 질의 언어 SQL을 사

www.walterz.net

 

 

여기서 중요한것은!! 설치가 아닌 실행이다!!

보통 우리는 local에 노트북, 몽고DB를 설치하여 사용하기에

ip 및 포트번호를 특별히 신경쓰지 않는다!!

하지만 이번에는 서버에서 실행 후 원격으로 접속해야하기에 적절한 실행코드가 필요하다!!

 

주피터 노트북의 경우 아래처럼 ip는 내 서버의 ip로, 포트는 내가하고자하는 포트로 실행시킨다!!

 jupyter notebook --ip {ifconfig로 확인한 내서버의 IP주소} --no-browser --port {사용하고자하는포트}
 
 >> example
  jupyter notebook --ip 123.345.123.23 --no-browser --port 8888

mongoDB도 마찬가지로 ip는 내 서버의 ip로, 포트는 내가하고자 하는 포트로 실행시킨다!!

mongod --port {포트번호} --bind_ip {나만의IP}

example!!!
mongod --port 27017 --bind_ip 123.345.123.23

 

참고로 위와같이 실행하면 shell을 사용할 수 없으니

nohup을 활용 shell 백그라운드에서 실행시키는것을 추천합니다!!

(ip 및 포트번호는 본인 상황에 맞게 입력해주세요!!^^*)

nohup jupyter notebook --ip 123.345.123.23 --no-browser --port 8888 &
nohup mongod --port 27017 --bind_ip 123.345.123.23 &

 

2. 포트포워딩하기

 

포트포워딩이 무엇인가!? 이미 많은 고수분들이 잘 소개해두었다!

https://storytown.tistory.com/14

 

포트포워딩(Port-Forwarding) 이란?

Port Forwarding 공유기를 사용하면 한번씩은 들어보고 검색 해봤을만한 단어입니다. 이 포스트는 포트포워딩 설정 방법이 아닌 포트포워딩이 무엇인지에 대해 알아보겠습니다. 우선 사전적 의미

storytown.tistory.com

 

그래서!! 

각자의 공유기별로 포트포워딩을 진행합니다!@!

https://m.blog.naver.com/rts0114/220901616526

 

네트워크 | 각 공유기별 포트포워딩 메뉴 접근 방법

해당 게시물은 각 공유기의 포트포워딩 설정 메뉴에 접근하는 방법을 설명합니다. 각 공유기 회사마다 포트...

blog.naver.com

 

저같은 경우 KT wifi를 사용하기에 아래와 같이 세팅해두었습니다!!!

조금 복잡해보이지만 포트포워딩의 개념을 이해하면 쉬워요!!

 

이제 모든 작업이 끝났습니다!!!

마지막으로 접속하기위해서는

지금까지 사용했던 내부망의 IP,가 아닌 외부망의 IP확인이 필요한데요!!

(이해가 안된다면 포트포워딩을 다시한번 공부해주세요!)

 

네이버에서 내 IP로 검색하면 바로 알 수 있습니다!!

 

이제 다끝났습니다!!

나의 파이썬 노트북은 브라우져에

{내 외부 IP주소}:{쥬피터노트북 포트번호}  >> (예시 : 12.12.12.12:8888)

로 입력하면!! 나의 분석환경에 접속됨을 확인할 수 있습니다!!

 

MongoDB의 경우 

Google Colab에서 아래와 같이 입력해보면!!

from pymongo import MongoClient
import pandas as pd

### MongoDB 접속
my_client = MongoClient("mongodb://12.12.12.12:27017/") 
## 위의 주소는 예시로 실제로는
##  mongodb://{나의 외부 IP}:{mondbDB port}/
##  와 같이 해야합니다@@

mydb = my_client['monkey_tradin2']
mycol = mydb['monkey_history']

type_l = []

for x in mycol.find() : 
    type_l.append(x['TYPE'])

df = pd.DataFrame()
df['type']  = type_l 

df

 

데이터가 없어 아래 스크린샷 처럼

빈 Dataframe이 호줄됨을 보실 수 있습니다!!

 

이제 어디서든지!! 나의 서버에 접속해서 마음껏 분석하고,

데이터를 쌓을 수 있겠지요~!^^

 

화이팅!!

728x90

댓글