brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 27. 2024

네이버 클라우드에 배포하기

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




AI로 API를 만듬


아빠

클라우드에 배포




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


<1> 네이버 클라우드 가입,로그인, 네트워크 생성,  서버 생성

<2> fastapi  소스 준비

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

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

<5> 애플리케이션 실행



<1> 네이버 클라우드 가입,로그인, 네트워크 생성,  서버 생성



1

네이버 클라우드 가입

https://www.ncloud.com/



2

로그인

2차 인증을 필수로 하자.



3

콘솔 > VPC 네트워크와  퍼블릭 서브넷 1개를 만든다.

여기서는 비공식 표준 가이드를 참고해서 만든다.


# 콘솔

https://console.ncloud.com/dashboard



# 비공식 네트워크 가이드

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



4

# 네트워크 생성

Service   > VPC


VPC  생성

cancer-naver-vpc

10.0.0.0/21


pub1-subnet

10.0.2.0/24




5

# 서버 생성

Service > Server  > 서버 생성

Rocky Linux 8.10


High CPU

vcpu32



서버이름

cancer-naver-api01


Network Interface   추가


공인IP  > 새로운 공인IP 할당으로 변경



새로운 인증키 생성

cancer-naver-key1


생성

10분



2

# 브라우저

새텝에서 보기



3

acg는 tcp

22 (디폴트 허용)

3389 (디폴트 허용)

80 (추가)




4

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

putty


passwd

g1!!




<2> fastapi  소스 준비


생성형 AI로 만듬.




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


1

winscp로 애플리케이션 올리기


파일 이름 영어로 변경

폴더 이름을 영어로 변경


unzip해서 압축 풀기


best_model_checkpoint




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


yum update

yum install python3

yum install python3-pip

pip3 install fastapi

pip3 install uvicorn




# 파이썬 최신 버전 설치

cd /opt

wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz  --no-check-certificate

tar -zxvf Python-3.11.3.tgz

cd Python-3.11.3

./configure

make

sudo make install




<5> 애플리케이션 실행



# 첫번째 애플리케이션


1


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

python3 Cancer.py




2

# 서버에서  없는 모듈 설치후 재실행 반복!


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

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


sudo yum install epel-release

sudo yum install python-pip


pip3  install --upgrade pip


pip3 install tensorflow-cpu


pip3 install python-multipart


pip3 install --upgrade pillow



pip uninstall typing_extensions

pip uninstall fastapi

pip install --no-cache fastapi



# ImportError: cannot import name 'AdamW'


pip install --upgrade torch 

pip install --upgrade torch torchvision

pip install transformers



pip install fastapi





3

# 가상환경 만들어 사용하기


python3 -m venv myenv

source myenv/bin/activate

pip install PyYAML

pip install --upgrade pip



4

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

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




5

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


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


# 샘플 이미지 , te.png



6

# 2번째  애플리케이션

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


python3 Disease.py


pip install torch

pip install torchvision




7

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

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




8

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





9

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

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


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




10

# 같이 보면 좋을 자료


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


감사합니다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari