-
[streamlit] 원격VM으로 streamlit 앱 배포하기Programing/python 어플 개발 2024. 3. 30. 17:38반응형
이전 글에서는 streamlit sharing을 통해 앱을 쉽게 배포하는 방법에 대해 다루었습니다.
[streamlit] streamlit앱 배포하기
데이터분석 프로젝트나 간단한 AI모델링 프로젝트에서 Streamlit을 종종 사용하곤 하죠. Streamlit Sharing을 사용하면 Streamlit으로 만든 어플리케이션을 쉽게 배포할 수 있습니다. 무료계정 옵션의 경
brain-nim.tistory.com
쉽게 배포하고 git에 올리면 자동으로 수정되어 배포된다는 점이 매우 큰 장점이지만
커스터마이징에 한계가 있고, 타 서비스들과 연계하기 어렵다는 단점이 있습니다.
일주일에 한번 이상 접속하지 않으면 일종의 휴면모드로 전환된다는 단점도 있습니다.
이번에는 AWS EC2, OCI VM 등의 클라우드 서비스의 인스턴스를 이용해 배포하는 방법을 다뤄보겠습니다.
0. 사전준비
- EC2, VM등의 원격 인스턴스 생성
- streamlit 앱을 github등에 push + 원격VM에 clone or pull
1. git clone
2. streamlit run
python3 -m streamlit run {your_streamlit_app.py}
이 상태에서 안내된 External URL로 들어간다면
안됩니다.
인바운드규칙에서 port를 안열어줬기 때문입니다.
3. 인바운드 규칙 변경
참고) streamlit의 기본 포트설정은 8501 입니다.
1) AWS일 경우
2) OCI일 경우
a. iptable 설정
OCI VM으로 API 요청이 들어가지 않는 경우 (Could not send request)
현상 새로 생성한 VM 내에 flask 서버를 구축하고 테스트를 진행해봤습니다. 서버는 잘 작동하고 있으나, request를 받지 못하는 이슈가 발생했습니다. AWS에서 처럼 VM의 인바운드 규칙(OCI: ingress rule)
brain-nim.tistory.com
b. 수신규칙 추가(1. VCN 수신규칙(ingress rule) 추가 참조)
4. 결과확인
다시 External Url로 들어가보면
접속이 잘 됩니다 5. 번외: nohup
nohup으로 서버/터미널 접속 끊어도 계속 작동되도록 할 수 있습니다.
nohup python3 -m streamlit run {your_streamlit_app.py}
반응형'Programing > python 어플 개발' 카테고리의 다른 글
[streamlit] streamlit앱 배포하기 (1) 2024.03.26 kivy 어플에 소리 넣기 (kivy SoundLoader) (0) 2022.05.06 Kivy 기능 분할하기 (split file & class) (0) 2022.05.05 kivyMD로 시계 위젯 띄우기(KivyMD TimePicker) (0) 2022.05.01 KivyMD를 이용해 Kivy 디자인을 더 쉽게 지정하기 (3) 2022.04.29