피드로 돌아가기
Dev.toDevOps
원문 읽기
Docker 기반 FastAPI의 AWS EC2 배포를 통한 독립적 런타임 환경 구축
How to deploy Fast API
AI 요약
Context
로컬 개발 환경과 서버 환경의 불일치로 인한 의존성 충돌 가능성 존재. 이를 해결하기 위해 OS 수준의 추상화를 제공하는 컨테이너 기반 배포 전략 필요.
Technical Solution
- python:3.12-slim 베이스 이미지를 활용한 경량화된 런타임 환경 구성
- Dockerfile 내 COPY 및 RUN 명령어를 통한 종속성 격리 및 빌드 자동화
- AWS EC2 t3.micro 인스턴스와 Ubuntu 22.04 LTS 조합의 저비용 인프라 활용
- Security Group의 Inbound Rule 설정을 통한 8000번 포트의 외부 트래픽 허용
- uvicorn 서버의 --host 0.0.0.0 설정을 통한 컨테이너 외부 네트워크 바인딩
실천 포인트
- Dockerfile 작성 시 slim 이미지를 선택하여 이미지 크기 최적화 - AWS EC2 배포 전 Security Group의 포트 개방 여부 확인 - GitHub Personal Access Token을 활용한 보안 런타임 레포지토리 클론 - Docker 컨테이너 실행 후 docker logs를 통한 런타임 오류 검증