GCP에서 streamlit 실행하기

반디·2023년 7월 2일
0

개발기

목록 보기
10/16

1. GCP에서 VM 인스턴스 생성

(구성은 상황에 맞게 설정)

  • 패키지 설치 시 오류가 날 수 있기 때문에 disk 용량은 30GB 이상으로 설정하는 것이 좋음

2. SSH-브라우저 창에서 열기, SSH key 생성

cd ~/.ssh/
ssh-keygen -t rsa -b 4096 -C "email address"

(passphrase 등의 설정은 우선 empty로; enter 누름)

  • authorized_keys에 퍼블릭 키가 등록 시 외부에서 접근 가능
  • GCP는 주기적으로 authorized_keys 파일을 삭제하므로 외부에서 키파일을 등록하는 것이 필요
cat id_rsa.pub >>bauthorized_keys
cat id_rsa.pub

id_rsa.pub 키 파일의 내용을 복사 (드래그하면 자동으로 복사됨)

3. GCP Console-compute engine-메타데이터-SSH 키 수정

4. repo 생성, HOST, USERNAME 추가

5. 인스턴스의 private key 복사, repo의 secret에 추가

vi id_rsa #private key 파일을 열어서 직접 복사
  • repo의 secret에 등록 후 확인

  • github action에서 secret에 등록한 사항들을 적용할 수 있음
    ex.

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: excuting remote ssh commands using ssh key
      uses: user/ssh-action@main
      with:
        host: ${{secrets.HOST}}
        username: ${{secrets.USERNAME}}
        key: ${{secrets.SSH_KEY}}

6. repo를 인스턴스에 clone

git config --global credential.helper store #github action에서 추가 인증없이 사용하도록 설정하는 것 
git clone 레포주소

authentication error가 나는 경우 token을 이용하여 login

7. 패키지 설치

sudo apt-get update
sudo apt-get install python3.8-venv -y
cd Boostcamp-AI-Tech-Product-Serving/part2/04-cicd/ #이동
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  • error:binvalid command 'bdist_wheel'는 우선 무시하고 진행

8. streamlit 실행

app.py 파일을 runOnSave 옵션으로 실행

nohup streamlit run app.py --server.runOnSave true &
  • 단, 방화벽 설정을 수정해야 외부 ip로 접속 가능

1. 방화벽 규칙 생성



  • IPv4 0.0.0.0/0 : 누구나 접근 가능
  • tcp: 8501 (streamlit port)

2. 인스턴스에 방화벽 규칙 적용

  • 해당 인스턴스 수정

외부 접속 주소 확인 후, 접속

cat nohup.out 

Note

참고문헌

profile
꾸준히!

0개의 댓글