개발/대시보드 20

웹대시보드 - ec2 서버 streamlit port 설정 및 변경점 자동 적용하기

ec2 서버에서 --server.port 포트번호 항목을 추가하면 포트를 설정하여 접속할 수 있다. streamlit run app.py --server.port 8501 ec2에서 개방한 포트번호를 입력해야만 접속이 가능하다. 현재 방화벽 포트가 8501 하나만 열려있어 8501을 입력했으나 만약 8502로 접속할려고 하면 방화벽에 막히게 된다. 앞서 ec2에 자동으로 pull을 가져오도록 설정하였으나 streamlit은 바로 적용이 안된다. --server.runOnSave True 항목을 추가하면 작동하게 된다. nohup streamlit app.py --server.port 8501 --server.runOnSave True &

개발/대시보드 2022.12.20

웹대시보드 - github에 actions 을 추가하여 자동으로 ec2서버에 pull하기

github에 파일이 추가,삭제,변경 될때마다 ec2 서버에서 pull하여 변경점을 바뀌게끔 셋팅하기 위해 github에 actions을 추가해보자. github - 내가 원하는 repository - settings - secrets -actions으로 들어간다. 그럼 위화면에 보이는 것 처럼 HOST : 여러분들의 ec2 주소 SSH_PRIVATE_KEY : 여러분들의 ppk -> pem 으로 바꾼 소스 내용을 복사한다 USER : ec2-user 를 입력하면 된다. 여기서 SSH_PRIVATE_KEY 에 PPK -> PEM 은 puttygen 에서 설정하면 된다. 먼저 puttygen을 실행한다 위에 메뉴에서 conversions을 누른다. 여러분들의 키를 넣으시고 다시 conversions을 누른..

개발/대시보드 2022.12.20

웹 대시보드 - 대용량 파일전송 ftp

github에는 용량제한 ( 25mb 또는 100mb) 이 존재한다. 따라서 동영상 이나 음악 같은 대용량 데이터를 옮길 때는 FTP 를 이용합니다. FTP 를 이용하는 프로그램은 여러개가 있지만 여기서는 파일질라를 이용하겠습니다. 파일질라 다운로드 https://filezilla-project.org/download.php?type=client 다운로드를 다하시면 설치를 진행하시고 실행시킵니다. 그 다음 사이트 관리자를 열어 새 사이트에 호스트 정보와 키파일을 넣어 저장합니다. 그 다음 연결을 눌러 서버와 연결합니다. 그러면 오른쪽에 서버와 연결이 된걸 볼 수 있습니다.

개발/대시보드 2022.12.19

웹 대시보드 - putty 를 종료하면 꺼지는 streamlit app 해결하기.

putty 를 종료하게 되면 우리가 실행했던 streamlit 서버가 꺼지게 된다. 이를 해결하기 위해서는 앱이 살아있도록 해줘야 한다. 이를 해결하기 위해 백그라운드로 실행을 해야한다. 1. nohup nohup 실행코드 & 2. 돌아가는 프로세스 확인 (streamlit 프로세스를 확인) ps -ef | grep streamlit # -ef 는 상세한 정보를 보여달라. grep 는 특정파일,또는 문자열을 가져온다. # ps 를 통해서도 확인이 가능하다 ps 3. 프로세스 끄는 방법 kill processID(숫자) 노란색으로 칠한 숫자를 입력하여 종료할 수 있다. ex ) kill 4789

개발/대시보드 2022.12.14

웹 대시보드 - EC2 서버와 Github 연결하기,포트처리, github 내용 변경시 처리하는 방법

1. EC2 서버에 git을 설치한다. sudo yum install git 2. github 에서 내 파일을 가져온다. git clone '내 github repository 주소' 3. 접속을 위해 EC2 서버에 방화벽을 설정한다. - EC2 대시보드 - 인스턴스 - 인스턴스 ID - 밑에 보안 -> 보안그룹에서 인바운드 규칙을 수정한다. 저는 8501 이 github에 있는 streamlit 을 이용하기 위한 번호이기에 8501로 생성합니다. 4. github에 내용이 바뀌게 되면 pull 을 해야한다. git pull 5. streamlit 을 실행해서 정상적으로 작동하는지 확인한다.

개발/대시보드 2022.12.14

웹 대시보드 - 웹 대시보드 개발 순서, Jupyter to Streamlit

웹 대시보드 개발 방법 1. 분석할 데이터를 준비한다. df = pd.read_csv('data/Car_Purchasing_Data.csv',encoding='ISO-8859-1') 2. 주피터 노트북으로 데이터를 분석한다. df.head() df.describe() df.columns[4:] df[df['Annual Salary']==df['Annual Salary'].min() ] df[df['Annual Salary']==df['Annual Salary'].max() ] # 등등 데이터들을 확인한다. 3. 필요에 의해서 머신러닝을 수행할 수도 있다. # 자동차 구매 금액을 예측하는 인공지능을 만들어보고 싶다. df.isna().sum() y = df['Car Purchase Amount'] X = ..

개발/대시보드 2022.12.13

웹 대시보드 - 차트 그리기(scatter,regplot,hist,altair,map,plotly)

* import import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sb * 데이터 가져오기 df = pd.read_csv('streamlit_data/iris.csv') 1. Scatter 를 이용한 차트 # streamlit 은 plt.figure로 차트 영역을 지정한다. fig = plt.figure() plt.scatter(data = df , x = 'sepal_length',y='sepal_width') plt.title('Sepal Length vs Width') plt.xlabel('sepal length') plt.ylabel('sepal width') st.pyplot(fi..

개발/대시보드 2022.12.13

웹 대시보드 - sidebar 를 사용할 때 파일을 분리하여 개발하는 방법.

다음과 같은 코드가 있습니다. menu = ['Home','EDA','ML','About'] choice = st.sidebar.selectbox('메뉴',menu) if choice == 'Home': pass elif choice == 'EDA' : pass elif choice == 'ML' : pass elif choice == 'About' : pass 사이드바에 선택상자인데 각각의 항목들을 전부 한 페이지에 작성하면 추후에 유지보수 작업에 어려움이 있습니다. 따라서 각 항목을 파일로 분리한 다음에 가져오는 방법을 이용합니다. app_home.py import streamlit as st def run_home_app() : st.subheader('Home 화면') st.text('홈화면에서 ..

개발/대시보드 2022.12.13