💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    pandas Part7 Docker로 컨테이너화 및 배포 | ✅ 편저: 코담 운영자

    📖 데이터 분석의 시작, Pandas 완전 정복 - Part 7: Docker로 컨테이너화 및 클라우드 배포


    ✨ 서론: 머신러닝 앱의 배포 자동화

    Part 6에서 FastAPI로 만든 Titanic 생존자 예측 API를 이제는 Docker로 컨테이너화하고 클라우드 플랫폼에 배포해보겠습니다. 이 과정을 통해 개발 환경과 운영 환경의 차이로 발생하는 문제를 최소화할 수 있습니다.

    🚀 실무 팁: Docker는 앱과 그 의존성을 패키징하여 어디서나 동일하게 실행할 수 있도록 해줍니다.


    🛠️ Step 1: Docker 설치 확인

    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 흐름 완성!


    TOP
    preload preload