6주차 이론 정리
1. 클라우드 기반 웹 서비스 플랫폼 (Azure)
Azure는 용도에 따라 다양한 웹 호스팅 방식을 제공함. 각 서비스의 특징을 파악하는 것이 중요함.
① Azure App Service (PaaS)
- 정의: 웹 앱, API 및 모바일 백엔드를 호스팅하는 완전 관리형 PaaS임.
- 특징:
- .NET, Java, Python 등 다양한 언어 지원함.
- 자동 확장(Auto-scaling) 및 로드 밸런싱 기능 제공함.
- CI/CD 통합 및 배포 슬롯 기능을 지원함.
② Azure Static Web Apps
- 정의: 정적 콘텐츠(HTML, JS, CSS)를 위한 호스팅 서비스임.
- 특징:
- GitHub/Azure DevOps와 연동하여 자동 배포됨.
- Azure Functions를 통해 서버리스 API와 통합 가능함.
③ Azure Container Apps
- 정의: 컨테이너 기반의 서버리스 플랫폼임.
- 특징: Kubernetes 기반이며 마이크로서비스 아키텍처에 최적화되어 있음.
④ Azure Virtual Machines (IaaS)
- 정의: 사용자가 직접 구성하는 가상 머신 솔루션임.
- 특징: 제어권은 가장 높지만, 직접 OS 및 소프트웨어를 관리해야 하는 번거로움이 있음.
2. 클라우드 서비스 모델 비교
구분관리 범위특징
| IaaS | OS, 미들웨어 등 직접 관리 | 유연성이 높으나 관리 부담이 큼 |
| PaaS | 앱과 데이터만 관리 | 인프라 관리 노력이 줄어들어 개발에 집중 가능함 |
| SaaS | 모든 것을 업체가 관리 | 완성된 소프트웨어를 사용함 |
핵심: PaaS 기반의 웹 서비스를 사용하면 운영 노력을 획기적으로 줄일 수 있음.
3. 스케일링 (Scaling) 기능
트래픽 변화에 따라 서버 자원을 조절하는 기능임.
- Manual Scaling (수동): 사용자가 직접 인스턴스 개수를 설정함.
- Auto-Scaling (자동): CPU 점유율 등의 조건에 따라 자동으로 확장/축소됨.
4. Python + Streamlit 웹 개발
Streamlit의 장점
- 파이썬만으로 빠르게 인터랙티브 웹 앱 제작이 가능함.
- 프론트엔드 지식이 부족해도 데이터 시각화 및 대시보드 구현에 매우 유리함.
주요 위젯 및 기능
- 출력: st.write() (텍스트, 차트 등 만능 출력), Magic commands 지원함.
- 데이터: st.dataframe() (표), st.data_editor() (데이터 수정 가능) 제공함.
- 입력: st.button(), st.selectbox() 등 다양한 위젯 사용 가능함.
- 채팅: st.chat_message(), st.chat_input()으로 챗봇 UI를 쉽게 구현함.
5. 최종 요약
- Azure 웹 앱은 배포와 확장이 쉬운 대표적인 PaaS 서비스임.
- Streamlit은 생산성이 높지만, 대규모/전문 서비스에는 Django/FastAPI 등이 더 적합할 수 있음.
- 클라우드 환경에서는 서비스 성격에 맞는 적절한 플랫폼 선택이 필수적임.
6주차 실습 정리
1. VSC 와 Streamlit을 사용할 수 있는 환경 만들기
1) Azure App Service 만들기
Azure App Service는 웹 애플리케이션을 호스팅할 수 있는 완전 관리형 PaaS 서비스이다. Python도 지원이 된다.
런타임 스택은 Python으로 설정했다.
지역(Region)도 선택하고 기본 설정으로 생성했다.
App Service는 웹 애플리케이션을 바로 배포할 수 있는 PaaS 서비스라서 서버 설정 없이 바로 사용할 수 있었다.
2) VS Code 환경 설정
Visual Studio Code에서 Azure 관련 확장을 설치했다.
- Azure App Service
- Azure Account
로그인 후 Azure와 VS Code를 연결했다.
VS Code에서 바로 Azure 리소스를 생성하거나 배포할 수 있었다.
3) Python 가상환경 생성 및 패키지 설치
프로젝트 폴더에서 가상환경을 생성했다.
python -m venv env
가상환경 활성화 후 필요한 패키지를 설치했다.
pip install streamlit
4) Streamlit 앱 실행
간단한 테스트 코드를 작성했다.
import streamlit as st
st.write("Hello world")
streamlit run app.py로 실행하기
5) Azure에 배포
VS Code에서 “Deploy to Web App” 기능을 사용해서 배포했다.
- App Service 선택
- 프로젝트 선택
- 배포 실행
배포가 완료되면 URL을 통해 웹 앱에 접속할 수 있었다.
GitHub, FTP 등 다양한 방식으로도 배포가 가능했다.
6) 스케일링 확인
Azure App Service에서 인스턴스 수를 조절할 수 있었다.
- 수동 스케일링: 인스턴스 개수 직접 설정
- 자동 스케일링: CPU 사용량 기준으로 자동 확장
트래픽에 따라 자동으로 서버가 늘어나는 구조라 관리 부담이 적었다.
7주차 바로가기
https://mehannah.tistory.com/8
https://mehannah.tistory.com/8
https://mehannah.tistory.com/8
[클라우드응용SW개발] 7주차
7주차 이론 정리1. Python 가상 환경 (venv) 및 개발 환경 설정프로젝트의 효율적인 관리를 위해 독립적인 실행 환경 구축이 필수적임.파이썬 가상 환경(venv): 프로젝트별로 독립적인 패키지 버전을
mehannah.tistory.com
[클라우드응용SW개발] 7주차
7주차 이론 정리1. Python 가상 환경 (venv) 및 개발 환경 설정프로젝트의 효율적인 관리를 위해 독립적인 실행 환경 구축이 필수적임.파이썬 가상 환경(venv): 프로젝트별로 독립적인 패키지 버전을
mehannah.tistory.com