본문 바로가기
App Programming

[Flask] AWS EC2에서 머신러닝 서버 구축

by goatlab 2024. 5. 14.
728x90
반응형
SMALL

파이썬 파일 생성

 

터미널에서 다음을 명령한다.

 

vim test.py

 

그리고 test.py에 다음 코드를 편집하여 추가한다.

 

import numpy as np
from sklearn.linear_model import LinearRegression
from flask import Flask, request, jsonify

app = Flask(__name__)

np.random.seed(0)

X = np.random.rand(10, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(10, 1)
model = LinearRegression()
model.fit(X, y)

@app.route('/')
def welcome():
	return 'HELLO, ML API SERVER'

@app.route('/predict', methods=['POST'])
def predict():
	data = request.json
	new_X = data['input']
	y_pred = model.predict(np.array(float(new_X[0])).reshape(1, -1))
	res = jsonify({'predicted_output': y_pred.tolist()})
	return res

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

 

인바운드 규칙 설정

 

 

외부 브라우저에서 접속하기 위해 cmd → ipconfig나 네이버에서 자신의 공인 IP를 조회하여 CIDR 블록에 추가한다.

 

 

 

 

서버에 접속

 

터미널에서 다음 명령을 수행하여 서버에 접한다.

 

python test01.py

 

gunicorn

 

gunicorn은 파이썬 웹 서버 게이트웨이 인터페이스 HTTP 서버이다. 이것으로 Flask에 접속한다. 터미널에서 다음 명령어를 실행한다.

 

gunicorn test01:app --bind 0.0.0.0:5000

 

Nginx 수정

 

sudo vim /etc/nginx/sites-enabled/default

# 재시작
sudo systemctl restart nginx
sudo systemctl status nginx

 

다음 명령을 통해 gunicorn 백그라운드를 실행한다.

 

 nohup gunicorn test01:app --bind 0.0.0.0:5000 >& /dev/null &
kill
ps -ef | grep test01

 

728x90
반응형
LIST

'App Programming' 카테고리의 다른 글

어플리케이션 배포 환경 (2)  (0) 2023.07.12
어플리케이션 배포 환경 (1)  (0) 2023.07.12
가상화 (Virtualization)  (0) 2023.04.01
[Flask] 라우트 (Route)  (0) 2023.01.30
[Flask] 환경 설정  (0) 2023.01.30