-
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 1. 환경 구축etc. 2022. 9. 10. 00:39
Streamlit을 사용하기 위한 환경은 크게 어렵지 않습니다.
pip install streamlit
PIP 설치와
streamlit hello
실행 명령 한 줄이면 로컬에서도 웹앱을 띄울 수 있으니까요.이 말은 즉, 파이썬과 외부 네트워크만 가능하면 누구나 접속할 수 있는 사이트를 만들 수 있다는 뜻입니다.
AWS나 GCP 인스턴스 한 대로도 운영할 수 있지만
현재 저희 데이터 팀에서는 K8S 환경으로 대부분의 서비스를 통합했기 때문에 클러스터에 띄우기로 했습니다.
그렇다면 가장 먼저 필요한 건 도커 이미지입니다.
Streamlit 컨테이너를 구성할 재료입니다.
저는 python 3.9 이미지를 기반으로 streamlit 외 데이터 어드민에 사용할 라이브러리들을 설치했습니다.
FROM python:3.9-slim COPY requirements.txt . RUN pip install -U --no-cache-dir -r requirements.txt RUN mkdir /streamlit WORKDIR /streamlit
다음은 템플릿입니다.
쿠버네티스 컨테이너와 configmap, pvc 등 여러 요소들을 설정하기 위한 기초 설계도입니다.
아래는 streamlit을 k8s에 배포하기 위해 가장 기본적인 설정들만 남긴 deployment 템플릿 예시입니다.
apiVersion: apps/v1 kind: Deployment metadata: name: streamlit labels: app: streamlit spec: selector: matchLabels: app: streamlit replicas: 1 template: metadata: labels: app: streamlit spec: - name: streamlit image: {streamlit 이미지} imagePullPolicy: Always ports: - containerPort: 8501 volumeMounts: - name: streamlit mountPath: /streamlit args: - bash - -c - |- exec \ streamlit run /streamlit/home.py volumes: - name: streamlit emptyDir: {}
여기에 service와 ingress까지 설정하고 드디어 home.py를 작성했습니다.
import streamlit as st st.set_page_config(page_title="Home", page_icon="🏠") st.title("dat-a-dmin") st.markdown(""" `data + admin` 클릭 베이스로 UI 순서에 따라 정보를 기입하면 최종 결과물을 확인할 수 있습니다. """)
다음 편에서는 본격적으로 streamlit을 이용해 구성한 데이터 어드민 페이지에 대해 소개하겠습니다.
'etc.' 카테고리의 다른 글
웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 3. 오픈은 실전 (1) 2022.09.10 웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 2. 페이지 작성 (0) 2022.09.10 웹알못의 데이터 어드민 사이트 만들기(feat. Streamlit) 0.Prologue (0) 2022.09.10 AWS EMR Prestosql(Trino) + Redash 업그레이드 (0) 2021.10.09 Git 작업을 위한 airflow Dag 관리 (0) 2021.10.09