본문 바로가기
개발(Develop)/웹(Web) _프로젝트project

웹서버 / AWS 포트 개방/ 리눅스 환경 Flask 프레임워크, pymongo 설치/ AWS에서 구입한 인스턴스 포트포워딩

by 왁왁s 2021. 6. 19.

이 글을 보기 전에 웹 서버 컴퓨터의 개발환경을 세팅해주어야 한다.

 

이유는, 그래야 이번 글에서 몽고DB 데이터베이스를 다루고 

pip나 python 명령어가 이전에 세팅해준 것으로 다룰 것이기 때문이다.

 

세팅은 이전 글에서 하고 오자 ▼

리눅스 환경의 서버 컴퓨터 개발환경 세팅하기/ 서버 환경 명령어 통일하기/ pip, mongoDB, 시간 동기화, python3

 

웹서버 / 리눅스 환경의 서버 컴퓨터 개발환경 세팅하기/ 서버 환경 명령어 통일하기/ 환경설정

우선 파일질라(FileZilla) 프로그램을 켜서, 서버 컴퓨터에 접속을 한다. 접속하는 부분은 이전 글을 참고해서, 거기까지 완료하고 이 글을 보도록 하자 아래 참고 ▼ 파일질라(Filezilla)로 서버 접속

parkjh7764.tistory.com


개발환경 세팅을 완료했다면

웹 프레임워크라고 부르는 'flask'pip를 통해 서버 컴퓨터에 설치해주는 작업을 할 것이다.

 

이전에도 flask를 다뤘던 적이 있다. ▼

내 컴퓨터를 서버로 만들고 접속하기/ 웹서버 Flask 프레임워크로 구동하기/ 파이썬으로 웹 서버 만들기

 

이전 글을 보게 되면, 파이참(Pycharm)으로 라이브러리를 마우스 클릭으로 쉽게 설치하였는데,

이번 리눅스 환경의 서버 컴퓨터에는 명령어를 직접 입력하여 설치해줘야 한다.

명령어만 알면 매우 간단하다.


Flask 프레임워크에 대해 간단히 설명하자면

웹 서버를 구동하기 위한 복잡한 코드를 Flask 프레임워크를 사용해

간단한 코드로 작성 가능하도록 하는 것이다.

 

더 자세한 내용은 위에 올려놓은 파란 글씨 링크를 클릭하자.


Flask 프레임워크를 우리는 아래와 같이 기본 틀을 활용해 사용하였다.

 

app.run('0.0.0.0', port=5000, debug=True)

 

port를 5000으로 열고, 내 로컬 컴퓨터를 서버로 사용하는 코드인데,

크롬을 열고 localhost:5000을 입력해서 들어가면 들어가지는 구조였다.

app.py 파일 / Flask 프레임워크 기본 틀 코드
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
   return 'This is Home!'

if __name__ == '__main__':  
   app.run('0.0.0.0', port=5000, debug=True)

 



그러면 Flask 프레임워크를 우리 리눅스 환경의 서버 컴퓨터에 설치해보도록 하겠다.

 

윈도우 환경인 나는, Git Bash 프로그램을 통해 서버 컴퓨터에 접속하였고

아래 사진은 Git Bash 프로그램에서 서버 컴퓨터 ip를 통해 접속한 상태이다.


매우 간단하다. 서버 환경을 세팅하였다면 pip3가 아닌, pip 명령어로 패키지를 설치할 수 있다.

'pip install flask'를 입력하고 엔터키를 눌러준다. 

pip 쉘 명령어로 flask 패키지 설치하기
pip install flask


엔터키를 눌러주면 아래의 로딩바가 연속적으로 보여지면서

계단 형태를 띄게 되는데, 설치가 잘 되고 있다는 뜻이다.


자. 다음은 mongoDB를 쉽게 조작하기 위해서 로컬 컴퓨터에서도 설치해줬던

'pymongo' 라이브러리를 서버 컴퓨터에도 설치해줘야 한다.

 

pymongo 패키지가 무엇인지 모른다면 아래를 참고 ▼

 파이썬(Python)으로 몽고DB 조작하기/ pymongo 라이브러리로 데이터베이스 조작하기

 

마찬가지로 'pip install pymongo'를 입력하고 엔터키를 누른다.

pip 쉘 명령어로 pymongo 라이브러리 설치하기
pip install pymongo


로딩바가 100%가 되고, Successfully installed pymongo라는 문장이 뜨면

설치가 완료 된 것이다.


자. 그럼 그 전에 '파일질라(FileZilla)'라는 FTP 프로그램을 사용해

서버 컴퓨터 hwan 디렉터리에 app.py라는 파일을 넣어준다.

 

app.py 파일에는 flask 기본 코드가 들어가 있다.


그러고는 python3, 우리는 서버 환경을 세팅하였기에

python 명령어를 입력해 app.py 파일을 실행시켜보자.

 

그러면 아래와 같이 app.py 파일이 실행된 것을 볼 수 있다.

빨간색 글씨로 WARNING이 뜨더라도 겁먹지 말자. 정상적으로 실행이 된 것이다.


그런데 서버를 열었는데,

http://[내 EC2 IP]:5000(포트번호)/

를 크롬 주소창에 입력해 들어가보면 

정상적으로 동작을 해야 하는데, 동작하지 않는 것을 확인할 수 있다!


이유는 우리가 리눅스 환경으로 서버 컴퓨터를 구입한 AWS에 있다.


AWS에서 서버 컴퓨터를 구입하지 않았다면 아래를 참고 ▼

아마존 웹서비스(AWS) / AWS 회원가입하고 사용하기/ AWS 인스턴스 구매


우선 이유를 먼저 말하자면

아마존 웹 서비스(AWS)의 자체 방화벽이 있기 때문에 

AWS에서 직접 포트를 개방해줘야 한다.

 

자 그러면 같이 놀러온 손님한테 문을 열어주듯

포트를 개방해보겠다.


AWS 5000, 80, 27017 포트 개방하기


우선 AWS에 들어가 우리가 구입한 인스턴스를 클릭헤준다.

 

 


인스턴스 하단에 세부 정보 옆에 [보안]을 클릭한 후,

[보안 그룹]에 있는 파란색 글씨를 클릭해준다.


오른쪽 하단에 [인바운드 규칙 편집]을 눌러준다.


인바운드 규칙 편집을 보면 22번 포트가 이미 생성 되어 있는 것을 볼 수 있다.

 

이는 인스턴스를 구입을 했을 때 기본적으로 22포트는 생성되어 열려있다.

인스턴트의 22번 포트 SSH Putty 접속을 위한 포트이다.

 

[규칙 추가]를 누른다.


아래와 같이

유형은 "사용자 지정 TCP"

포트 범위5000

소스[위치 무관]

으로 설정한다.

 

5000포트, 80포트, 27017포트를 모두 열어주자.

 

27017포트는 몽고DB(mongoDB)와 관련있다.


그러면 다시 Git Bash를 들어와

python 명령어를 입력해 app.py 파일을 실행시켜보자.

그리고 

app.py 파일을 통해 서버를 돌리면 다른 명령어는 인식하지 못 하는 상태가 된다.

다른 명령어를 입력해야 하는 상황이라면 

Ctrl + C 키를 눌러 서버를 끄면 다른 명령어를 입력할 수 있다.


       http://[내 EC2 IP]:5000(포트번호)/      

를 크롬 주소창에 입력해 들어가보면 

Flask 기본 틀 return 값에 적어줬던 'This is Home!'이 나타난다.


 

 

 

 

 

댓글