brunch

1. FastAPI로 API 만들고 배포하기

by Master Seo

프로젝트

이미지 올리면 피부 질환과 피부암을 알려주는 API 만들기.





AI로 API를 만듬

클라우드에 배포




# 배포 초보자를 위한 설치 매뉴얼.


<1> aws ec2 생성

<2> fastapi 소스 준비

<3> ec2에 fastapi 애플리케이션 업로드

<4> ec2에 필요한 패키지 설치

<5> 애플리케이션 실행




<1 > aws ec2 생성



1

https://console.aws.amazon.com/console/home


2

amazon linux

22 (디폴트)



2

ec2 접속




3

생성 실습


# 브라우저

새텝에서 보기





# 이름

fastapi-aws-web01



# 사양이 좀 높아야 하는 경우

c5.xlarge 로 변경함.




# Create new key pair

fastapi-aws-web01-key


ppk는 windows pc

pem은 리눅스, mac




# 디폴트로 외부에서 접속되는 공인 IP 할당 받는다.

Auto-assign public IP

Info

Enable



# 디폴트로 ssh (22) 허용

Allow SSH traffic from

Allow HTTP traffic from (체크해 허용)



생성



# 추가 허용 포트

8080

8081



4

네트워크에서 public ip 확인하고 접속



5

putty

ppk키 사용


ec2-user





<2> fastapi 소스 준비


생성형 AI로 만듬.



<3> ec2에 fastapi 애플리케이션 업로드


1

winscp로 애플리케이션 올리기


파일 이름 영어로 변경

폴더 이름을 영어로 변경


unzip해서 압축 풀기




<4> ec2에 필요한 패키지 설치


sudo yum update

sudo yum install python3

sudo yum install python3-pip

sudo pip3 install fastapi

sudo pip3 install uvicorn





<5> 애플리케이션 실행



# 첫번째 애플리케이션


1

# 애플리케이션 실행해서 부족한 모듈이 없는지 확인

python3 Cancer.py




2

# 서버에서

cpu버전이면 tensorflow-cpu 만 설치하세요.

tensorflow 전체 설치하면 용량이 커서 서버가 다운되요.


sudo pip install tensorflow-cpu


sudo pip install python-multipart


sudo pip install --upgrade pillow



3

# 80으로 애플리케이션 실행 테스트

sudo uvicorn Cancer:app --host 172.30.1.49 --port 80




4

# pc에서 curl로 질의함. 이미지를 첨부해서 서버에 질의해보자.


curl -X POST -F "file=@./te.png" http://13.125.74.15


# 샘플 이미지 , te.png




5


# 2번째 애플리케이션

# 실행해서 부족한 모듈 확인 후 설치


python3 Disease.py



6

sudo pip install torch

sudo pip install torchvision


7

# 애플리케이션을 8081 포트로 띠워보자.

sudo uvicorn Disease:app --host 172.30.1.49 --port 8081





8

# 백그라운드 실행 - 터미널을 나가더라도 계속 동작하게 백그라운드로 실행하자.

# 터미널을 나가고 동작하는기 curl 로 점검하자.


nohup uvicorn Disease:app --host 172.30.1.49 --port 8080 &



9

# 같이 보면 좋을 자료


https://brunch.co.kr/@topasvga/4116


감사합니다.




keyword
매거진의 이전글(무료자료) 클라우드 전문가 카페 - 2024