Programming

Streamlit App Deployment with nohup in Google Compute Engine

개요

개요

  • Streamlit Sample 코드를 작성한 후 배포를 진행한다.
  • VS Code 접속 시 고정 IP를 할당한다.
  • 이 때 터미널이 종료되거나 사용자가 로그아웃해도 계속 실행되도록 nohup을 사용한다.

Nohup의 기본 개념

  • nohup은 “no hang up"의 약자로, 백그라운드에서 다른 명령을 실행하는 데 사용되는 UNIX 명령으로, 로그아웃한 후에도 계속 실행됨.
  • 원격 서버에서 장기간 실행되는 프로세스를 시작하려는 경우 세션 연결이 끊어지거나 터미널이 닫힐 때 프로세스가 종료되지 않도록 하려는 경우에 특히 유용함.
  • foreground에서 명령이나 프로세스를 실행할 때 터미널이나 셸 세션이 종료되면 해당 명령이나 프로세스가 종료될 수 있다.
  • nohup을 사용하면 기본적으로 터미널에서 프로세스를 분리하고 종료(HUP) 신호를 수신하지 못하도록 하여 로그아웃하거나 연결을 끊어도 프로세스가 완료될 때까지 실행할 수 있다.
  • Python에서 nohup을 실행할 때는 다음과 같다.
    • 출력(로그 및 오류)을 특정 파일로 리디렉션하려면 다음 명령을 사용할 수 있다.
    • 이렇게 하면 Streamlit 앱의 표준 출력과 표준 오류가 모두 streamlit.log라는 파일로 리디렉션 된다.
nohup streamlit run my_app.py > streamlit.log 2>&1 &
  • Streamlit 앱을 중지해야 하는 경우 ps 명령을 사용하여 프로세스 ID를 찾은 다음 종료 명령을 사용하면 된다.
ps aux | grep "streamlit run"
  • 그러면 Streamlit과 관련된 프로세스 목록이 표시된다. 삭제하고자 하는 프로세스 ID를 찾아서 종료한다.
kill -9 PROCESS_ID

고정 IP 할당

  • 왼쪽 사이드바 메뉴 > VPC 네트워크 > IP 주소 클릭한다.

Untitled

Streamlit with Bigquery On Compute Engine

개요

인스턴스 시작

  • 인스턴스가 중지가 되어 있다면 다시 시작을 한다.

Untitled

BigQuery Client 라이브러리 설치

  • 클라이언트 라이브러리를 설치한다.
pip install --upgrade google-cloud-bigquery

Untitled

gcloud Installation on Windows 11

개요

gcloud CLI 최신 버전(445.0.0) 설치

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

  • Finish 버튼을 클릭하면 설치는 완료가 된 것이다.

gcloud 연동

  • 위 Finish 버튼과 함께 로그인을 진행한다.

Untitled

  • 인증절차가 시작완료되면 웹 페이지가 변경되고 터미널 환경도 변경된다.

Untitled

  • 현재 필자의 프로젝트는 3번에 해당되기 때문에 3번을 클릭한다.

Untitled

GCP with VS Code SSH Connection

개요

SSH Key 생성하기

  • puTTYgen에서 public / private key 값을 생성한다.

Untitled

  • Generate 버튼을 클릭한다.

Untitled

Untitled

  • Private Key를 OpenSSH 방식으로 Export 한다.
    • Key Comment에 구글 계정을 입력한다.
    • password도 입력한다.

Untitled

Untitled

  • Public Key는 모두 복사한다.

GCP 메타데이터 등록

  • Compute Engine > 메타데이터 접속하여 SSH 키에 붙여 넣는다.

Untitled

Python Library Installation on Compute Engine in GCP

개요

requirements.txt

  • Github Repo에서 Add file > Create new file을 클릭 후, 아래 주요 라이브러리를 입력한다.
    • 파일명 : requirements.txt

Untitled

Untitled

  • 라이브러리명은 다음과 같다. 입력 후, Commit Changes 버튼을 클릭한다.
pyspark==3.1.1
pandas
streamlit
matplotlib

Untitled

  • 현재 파일 목록은 아래와 같다.

Untitled

Compute Engine with Github in GCP

개요

Untitled

터미널 열기

  • 기존 인스턴스는 중지를 시켰기 때문에 이를 다시 시작/재개 버튼을 눌러 활성화 한다.

Untitled

  • 시작 버튼 클릭과 함께 오늘도 비용을 지불해본다.

Untitled

  • 브라우저 창에서 열기를 진행한다.

Untitled

Git 설치

  • 터미널에 Git을 설치하는 방법은 다음 명령어를 순차적으로 입력한다.
(base) ~$ sudo apt-get update -y
(base) ~$ sudo apt-get upgrade -y
(base) ~$ sudo apt install git
(base) ~$ git --version

Git Repo 생성

  • Github에서 Repo를 만든다. (Repo : mulcampFP)
    • 보안을 위해 Private으로 지정한다.

Untitled

Spark Installation with GCP (Sept. 2023)

개요

  • Spark를 구글 클라우드에 설치하도록 한다.
  • 프로젝트 시작부터 진행한다.

프로젝트 시작

  • 본 화면에서 새로운 프로젝트를 시작한다.
  • 프로젝트명 : mulcampFP

Untitled

VM 시작하기

  • VM 만들기를 클릭한다.

Untitled

  • 활성 결제 계정이 없으면 결제계정을 등록한다.

Untitled

  • 결제계정이 등록되면 다음과 같이 화면이 나오면 VM 설정이 가능하다.

Untitled

  • 결제계정까지 완료가 되었으면 다음과 같이 Compute Engine API를 사용 버튼을 클릭해준다.

Untitled

  • 이름은 mulcamp-gcp 지역은 서울로 했다.

Untitled

  • 비용에 따라 성능을 선택할 수 있다.

Untitled

  • 호스트 유지보수 시, VM 인스턴스는 마이그레이션을 권장한다.

Untitled

MySQL Workbench ERD - 1

개요

  • MySQL Workbench를 통해 ERD 작업을 수행하도록 한다.

Step 1 - 메뉴 선택

  • 상단 메뉴에서 Database > Reverse Engineer 를 선택한다.

Untitled

Step 2 - Reverse Engineer Database

  • Next 버튼을 클릭한다.

Untitled

Step 3 - Connect to MySQL Server

  • 팝업창에서 root 또는 사용자 비밀번호 입력 후, 확인 버튼을 누르면 아래와 같이 연결이 될 것이다.

Untitled

Step 4 - Schema 선택

  • classicmodels 스키마를 선택한다.

Untitled

Step 4 - Connect to MySQL Server

  • 비밀번호를 입력한다.

Untitled

MySQL Error Code 1175 해결

개요

  • Delete 문법을 진행하는데, 아래와 같은 에러가 발생하였다.

Untitled

  • 옵션 설정을 변경하여 코드를 재실행한다.

Safe Mode 끄기

  • 아래 코드를 실행한다.
SET SQL_SAFE_UPDATES = 0;
  • Edit > Preferences > SQL Editor > Other 에서 Safe Updates 체크되어 있는 것을 삭제한다.

Untitled

코드 재 실행

  • Delete 코드를 재 실행한다.
DELETE FROM tasks WHERE start_date = DATE('2023-09-14');

Untitled

  • 정상적으로 Delete 코드가 실행된 것을 확인할 수 있다.

MySQL 실습 데이터 추가

개요

  • 강의를 위한 CSV 파일을 Workbench를 통해 업로드를 하도록 한다.

교재

Untitled

Workbench 접속

  • Local instance MySQL을 클릭한다.

Untitled

  • 최초 설치 진행시 진행한 password를 입력한다.

Untitled

  • 로그인한 화면은 아래와 같다.

Untitled

Sample 데이터 다운로드

Untitled

  • 압축파일을 풀면 아래와 같이 mysqlsampledatabase.sql 파일을 확인하다.

Untitled

쿼리 불러오기

  • MySQL Workbench을 열고 File > Open SQL Script를 클릭한다.

Untitled

  • mysqlsampledatabase.sql 파일을 연다.

Untitled