로딩 중이에요... 🐣
[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
pandas Part7 Docker로 컨테이너화 및 배포 | ✅ 편저: 코담 운영자
📖 데이터 분석의 시작, Pandas 완전 정복 - Part 7: Docker로 컨테이너화 및 클라우드 배포
✨ 서론: 머신러닝 앱의 배포 자동화
Part 6에서 FastAPI로 만든 Titanic 생존자 예측 API를 이제는 Docker로 컨테이너화하고 클라우드 플랫폼에 배포해보겠습니다. 이 과정을 통해 개발 환경과 운영 환경의 차이로 발생하는 문제를 최소화할 수 있습니다.
🚀 실무 팁: Docker는 앱과 그 의존성을 패키징하여 어디서나 동일하게 실행할 수 있도록 해줍니다.
🛠️ Step 1: Docker 설치 확인
- Docker Desktop 설치
- 설치 후 버전 확인
docker --version
📦 Step 2: Dockerfile 작성
프로젝트 루트 디렉토리에 Dockerfile
생성
# Python 베이스 이미지 사용
FROM python:3.10-slim
# 작업 디렉토리 생성
WORKDIR /app
# 종속성 파일 복사 및 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 앱 소스 코드 복사
COPY . .
# 앱 실행 명령어
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
📃 Step 3: requirements.txt 작성
fastapi
uvicorn
scikit-learn
pandas
joblib
🔄 Step 4: Docker 이미지 빌드 및 실행
이미지 빌드
docker build -t titanic-api .
컨테이너 실행
docker run -d -p 8000:8000 titanic-api
- 브라우저에서
http://localhost:8000
접속 - API 문서 확인:
http://localhost:8000/docs
☁️ Step 5: 클라우드 배포
옵션 1: Heroku에 배포
- Docker 이미지로 Heroku Container Registry에 푸시
heroku container:login
heroku create titanic-api-app
heroku container:push web -a titanic-api-app
heroku container:release web -a titanic-api-app
- 앱 접속:
https://titanic-api-app.herokuapp.com
옵션 2: AWS ECS/Fargate 또는 Google Cloud Run
- Docker 이미지 업로드 후 서버리스 환경에 배포
💡 실무 팁: 클라우드 플랫폼 선택은 예상 트래픽과 비용에 따라 달라집니다.
📌 결론 및 다음 단계
- Docker를 사용해 로컬 환경과 클라우드에서 동일한 환경으로 앱 실행
- 클라우드에 배포하여 외부 사용자도 API 사용 가능
- CI/CD 파이프라인 구축으로 자동화된 배포 실현
🎯 최종 목표: 데이터 분석 → 모델링 → API 개발 → 컨테이너화 → 클라우드 배포까지 완전한 MLOps 흐름 완성!