Window가 설치된 내 데스크탑에서 django로 서버를 구축한 뒤, github에 올리고 AWS EC2 에서 이것을 clone하고 nginx를 설치하여 배포할 예정입니다. 먼저 Window에서 Django를 설치해보겠습니다.
1. 환경 설정
1.1. Python 설치
Django는 Python으로 작성된 웹 프레임워크입니다. 따라서 Python이 설치되어 있어야 합니다.
- Python 공식 웹사이트에서 Python 최신 버전을 다운로드하고 설치합니다.
- 설치할 때 Add Python to PATH 옵션을 체크합니다.
1.2. 가상 환경 설정
가상 환경을 사용하면 프로젝트마다 독립적인 Python 환경을 유지할 수 있습니다.
# CMD 또는 PowerShell에서 아래 명령어를 실행합니다.
python -m venv myenv myenv\Scripts\activate
1.3. Django 설치
가상 환경이 활성화된 상태에서 Django를 설치합니다. (가상환경 경로에서 activate 명령어 입력 시 활성화)
pip install django
2. Django 프로젝트 생성
Django 프로젝트를 생성하고 기본 설정을 합니다.
# Django 프로젝트 생성
django-admin startproject myproject
# 프로젝트 디렉토리로 이동
cd myproject # Django
# 개발 서버 실행
python manage.py runserver
cd myproject # Django
# 개발 서버 실행
python manage.py runserver
*포트 변경 - python manage.py runserver 8001
*서버 종료 - cntl + c
3. GitHub에 프로젝트 업로드
GitHub에 Django 프로젝트를 업로드합니다.
3.1. Git 초기화 및 커밋
# Git 초기화
git init
# 모든 파일 추가
git add .
# 커밋
git commit -m "Initial commit"
3.2. GitHub에 원격 저장소 생성 및 연결
GitHub에서 새로운 저장소를 생성한 후, 로컬 저장소를 원격 저장소에 연결합니다.
# 원격 저장소 추가
git remote add origin https://github.com/yourusername/yourrepository.git
# 원격 저장소로 푸시
git push -u origin master
4. AWS EC2 인스턴스 설정 및 코드 클론
AWS EC2 인스턴스를 설정하고 GitHub에서 코드를 클론합니다.
4.1. AWS EC2 인스턴스 생성
- AWS 관리 콘솔에서 EC2 인스턴스를 생성합니다.
- 필요한 경우 보안 그룹에서 포트 80(HTTP) 및 443(HTTPS)을 엽니다.
4.2. EC2 인스턴스에 접속 및 코드 클론
# EC2 인스턴스에 SSH로 접속
ssh -i "your-key-pair.pem" ec2-user@your-ec2-ip
# 필요한 디렉토리 생성
sudo mkdir -p /var/www/yourproject
# 디렉토리 소유권 변경
sudo chown -R $USER:$USER /var/www/yourproject
# 프로젝트 디렉토리로 이동
cd /var/www/yourproject
# GitHub에서 코드 클론
# 프로젝트 디렉토리로 이동
cd yourrepository
5. Nginx 및 Gunicorn 설정
EC2 인스턴스에서 Nginx와 Gunicorn을 설정하여 Django 애플리케이션을 서비스합니다.
5.1. 필요한 패키지 설치
# 패키지 업데이트 및 설치
sudo apt update sudo apt install python3-pip python3-dev nginx
# 가상 환경 설정 및 활성화
python3 -m venv myenv source myenv/bin/activate
# Django 및 Gunicorn 설치 pip install django gunicorn
5.2. Gunicorn 설정 및 실행
# 프로젝트 루트에서 Gunicorn 실행
gunicorn --workers 3 myproject.wsgi:application
5.3. Nginx 설정
Nginx 설정 파일을 편집하여 Django 애플리케이션을 역방향 프록시로 설정합니다.
sudo nano /etc/nginx/sites-available/myproject
# 아래 내용을 추가
server { listen 80; server_name your_domain_or_IP; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
# 설정 활성화 sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
# Nginx 테스트 및 재시작 sudo nginx -t sudo systemctl restart nginx
'웹 > 백엔드' 카테고리의 다른 글
[FastAPI] AI 학습 모델 배포하기에 최적화된 서버 (0) | 2024.07.05 |
---|---|
[Django] celery와 celery-beat란? (0) | 2024.07.01 |
[Django] Rest API 설정 (0) | 2024.06.28 |
Django, Nginx, Docker 연동 시 주의사항 (0) | 2024.06.26 |
윈도우에서 HTML 파일을 웹 서버에 올리는 방법(Nginx) (0) | 2024.05.04 |