반응형
AWS 생성 및 접속 방법
Github Push 전 점검 사항
- package 목록 뽑아서 txt 파일로 만들어준다
- 명령어 ) pip3 fressze >> packages.txt
생성 된 파일 정보
- pip로 install했던 라이브러리 정보들이 생성된다.
Github 연동 및 받기
Repository 생성 및 커밋
- Github에 Repository를 생성하고, 프로젝트를 Push한다.
- 해당 내용에 대한 추가 글 작성 필요
EC2에 접속하여 프로젝트 Pull
- EC2 접속후 deploy 폴더 생성
- 명령어 ) mkdir deploy
- deploy 폴더 이동 후 git clone ${repository url}
- 명령어 )git clone https://github.com/jaydenchuljinlee/django-ex.git
Python 설치
우분투 업데이트
- 우분투 패키지 업데이트 명령어 ) sudo apt-get update
- 설치 중에 나오는 모든 점검 관련 체크 사항은 [엔터]를 누르고 넘어간다.
Python 패키지 설치
- 패키지 설치 명령어 ) sudo apt-get install python3-pip
Project 가상 환경 설정
환경 설정 이유
- 파이썬 프레임워크의 경우 프로젝트마다 자체적으로 라이브러리 의존성을 관리하는 부분이 부족하다
- 이는 가상환경을 통해 이를 보완해줄 수 있고, 프로젝트 격리성을 도와준다.
설정 방법
- 필자는 보통 루트 경로에 따로 가상 환경 관련 폴더를 생성하고 관리해주는데 설정은 자유다. (하지만, 팀프로젝트의 경우는 컨벤션에 따라 달리진다)
- 우선 python3-venv 패키지를 설치한다
- 명령어 ) sudo apt-get install python3-venv
- 가상환경을 만들어준다.
- 명령어 ) ptyhon3 -m venv ${만들어줄 가상환경이름}
- 가상환경 활성화
- 명령어 ) source ${폴더 경로}/${가상환경 이름}/bin/activate
가상환경이 적용됐을 때
- 다음과 같이 괄호 안에 가상환경 이름이 쓰여진 경로가 보여진다
Project 관련 설치
- 프로젝트 의존성 라이브러리 설치
- 현재 프로젝트의 packages.txt 경로
- 명령어 ) pip3 install -r ${패키지 목록 파일 이름}.txt
- 설치가 안 됐을 때의 추가 명령어
- 명령어 ) sudo apt-get install python3-dev libmysqlclient-dev build-essential pkg-config -y
- 현재 프로젝트의 packages.txt 경로
- runserver로 실행
- 명령어 ) python3 manage.py runserver
외부 접속 확인
왜 runserver는 사용해서는 안 되는가?
- Single Thread & Single Process 기반으로 동작
- 한 번에 하나의 요청에 대해서만 처리 가능
- 대용량 트래픽 환경에 부적합
- 제한된 성능 제공
- 멀티 스레딩, 프로세스 관리, 캐싱 및 로드 밸런서와 같은 성능 최적화를 위한 기능 부족
- 보안 위협
- HTTPS 지원 부족
- 접근 제어 부족
- XSS 공격 및 SQL Injection 취약
- 안정성과 신뢰성
- 오류 처리, 모니터링 및 로깅 기능 부족
반응형
LIST
'언어 > Python' 카테고리의 다른 글
[Python Djnango] - 배포 서버에 UWSGI 설정 (0) | 2024.03.07 |
---|---|
Django Framework 설치 방법 (0) | 2024.01.30 |