배경 지난 글에서 로컬 환경에서 플라스크를 사용하여 파이토치로 된 모델 파일을 동작시켜 보았다. 이번 글에선 EC2 위에서 플라스크를 동작시켜 보겠다. 개발하던 중 마주했던 문제들도 다룰 예정이다. 개발 1. EC2 인스턴스 생성 및 기본 세팅 2. git 또는 scp(ssh 프로토콜 기반 서버간 파일 전송 명령어)를 사용하여 파일 업로드 github는 100 MiB보다 큰 파일을 올릴 수 없기 때문에, 모델 파일의 경우는 scp 명령어를 사용해 EC2에 전송했다. 모델 파일의 크기가 347.5 MiB였다,,, $ scp {파일 경로} {호스트 이름}:/home/ubuntu (scp 파일 전송은 위와 같이 하면 된다. ~/.ssh/config (Mac, Linux 기준) 파일에 EC2 호스트를 저장해두면..
백엔드
Flask? Python 기반 웹 프레임워크. Django와 같은 Python 웹 프레임워크지만 Django 보다 더 쉽고 간단하다는 느낌을 받았다. Django는 MTV 패턴처럼 어느 정도 서비스 개발 사이클이 존재하는 비교적 전통적 방식의 프레임워크라면, Flask는 더 간단하고 빠르게 개발을 진행할 수 있다. 다만, Django와 비교하여 인증 및 인가, Admin 페이지에 있어서 기본 세팅이 되어 있지 않기 때문에 따로 라이브러리를 사용해야 하는 어려움이 있다. Flask를 모델 서빙에 많이 사용하는 이유 Python 언어로 작성되어 있는 모델이 대부분이기 때문에 호환성을 위해 Python 웹 프레임워크를 사용한다. 모델에서 단순히 HTTP 기반 API를 사용하고 싶다면 간단하게 라우팅이 가능한 ..
배경 2023년 2학기 학부 캡스톤디자인(1) 수업에서 진행했던 프로젝트에서 PyTorch로 학습이 완료된 딥러닝 모델을 Spring Boot에서 사용할 수 있도록 해야 했다. PyTorch 모델은 Pretrained model 중 Vision Transformer 딥러닝 아키텍처. 백엔드에서 할 일은 클라이언트에서 넘겨받은 이미지를 딥러닝 모델에 input으로 넣어 분류값(0 또는 1의 정수)을 output으로 받아 저장하는 간단한 작업이었다. - input: 224 x 224 Color img - output: 1 or 0 개요 PyTorch 모델을 Spring Boot에서 서빙하기 위해 레퍼런스를 찾아보니 Flask 위에서 모델을 돌리는 방법이 많이 소개되어 있었다. 이렇게 되면 Flask와 Spr..