[AWS Lightsail] 가상환경 생성 및 패키지 설치

2024. 8. 6. 12:50· Django/인프라
목차
  1. 가상환경 생성 및 활성화
  2. 소스코드 복제 및 패키지 설치
  3. 환경 변수 파일  구성
  4. 환경변수 검증
  5. 서버 구동
반응형

가상환경 생성 및 활성화

# 현재 유저 확인
ubuntu@django-instance:~$ whoami
ubuntu

ubuntu@django-instance:~$ groups
ubuntu adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd

ubuntu@django-instance:~$ cd /srv

ubuntu@django-instance:/srv$ ls -al
total 8
drwxr-xr-x  2 root root 4096 Jul  1 15:38 .
drwxr-xr-x 19 root root 4096 Aug  5 06:54 ..

# 권한 변경
ubuntu@django-instance:/srv$ sudo chown ubuntu:ubuntu /srv/

ubuntu@django-instance:/srv$ ls -al
total 8
drwxr-xr-x  2 ubuntu ubuntu 4096 Jul  1 15:38 .
drwxr-xr-x 19 root   root   4096 Aug  5 06:54 ..

ubuntu@django-instance:/srv$ python3.12 --version
Python 3.12.4

# 파이썬 3.12버전 가상환경 생성
ubuntu@django-instance:/srv$ python3.12 -m venv /srv/venv

ubuntu@django-instance:/srv$ ls
venv

# 가상환경 활성화
ubuntu@django-instance:/srv$ source ./venv/bin/activate

(venv) ubuntu@django-instance:/srv$ which python
/srv/venv/bin/python

(venv) ubuntu@django-instance:/srv$ python --version
Python 3.12.4

(venv) ubuntu@django-instance:/srv$ deactivate

ubuntu@django-instance:/srv$ /srv/venv/bin/python --version
Python 3.12.4

# pip list
ubuntu@django-instance:/srv$ /srv/venv/bin/python -m pip list
Package Version
------- -------
pip     24.0

[notice] A new release of pip is available: 24.0 -> 24.2
[notice] To update, run: /srv/venv/bin/python -m pip install --upgrade pip
ubuntu@django-instance:/srv$

 

 

소스코드 복제 및 패키지 설치

# psycopg2 라이브러리 설치에 필요한 패키지 설치
sudo apt install -y build-essential python3.12-dev libpq-dev postgresql-client

git clone 레포지토리 주소 /srv/course-repo
cd /srv/course-repo

cd /srv/course-repo/myproj
# psycopg2 라이브러리 설치 필수!
/srv/venv/bin/python -m pip install -r requirements/prod.txt

 

psycopg2 라이브러리 설치에 필요한 패키지 설치가 안되면 아래처럼 에러가 발생한다.

더보기

아래처럼 오래된 라이브러리를 재시작할 것이냐고 묻는 창이 뜨면 tab키를 이용하여 Ok 선택하면 된다.

 

 

환경 변수 파일  구성

  • mkdir /srv/config/ : 설정 파일
  • mkdir /srv/data/ : 데이터
  • mkdir /srv/statcfiles : STATIC_ROOT 경로
  • mkdir /srv/data/mediafiles : MEDIA_ROOT 경로
ubuntu@django-instance:/srv/course-repo/mypro$ cd /srv

ubuntu@django-instance:/srv$ ls
course-repo  venv

ubuntu@django-instance:/srv$ mkdir config

ubuntu@django-instance:/srv$ mkdir data

ubuntu@django-instance:/srv$ mkdir staticfiles

ubuntu@django-instance:/srv$ mkdir -p data/mediafiles

ubuntu@django-instance:/srv$ ls
config  course-repo  data  staticfiles  venv

ubuntu@django-instance:/srv$ vim /srv/config/django.env

ubuntu@django-instance:/srv$ cat -n /srv/config/django.env
더보기
# DEBUG 환경은 .env에 직접 하지 않고, gunicorn 명령을 통해 지정하겠습니다.
# 손쉽게 DEBUG 환경을 끄고 켤 수 있어야, 배포 상황을 보다 손쉽게 디버깅할 수 있습니다.
# DEBUG=false

ALLOWED_HOSTS=localhost,127.0.0.1,공인아이피

# 직접 아이피로 http 프로토콜로 서비스되기에 설정할 필요가 없습니다.
# CSRF_TRUSTED_ORIGINS=

# PostgreSQL 데이터베이스를 사용하기 전에, sqlite3 데이터베이스를 사용하겠습니다.
DATABASE_URL=sqlite:////srv/data/db.sqlite3

# 정적파일 경로 지정
STATIC_ROOT=/srv/staticfiles
MEDIA_ROOT=/srv/data/mediafiles

 

환경변수 검증

db.sqlite3 데이터베이스로 동작을 테스트

# 프로젝트 디렉토리로 이동
$ cd /srv/course-repo/mypro

# 가상환경 활성화 및 확인
$ source /srv/venv/bin/activate

$ which python

# 장고 쉘을 통해, django.env를 통한 설정 확인
$ ENV_PATH=/srv/config/django.env python manage.py shell
>>> from django.conf import settings
>>> settings.DEBUG
>>> settings.ALLOWED_HOSTS
>>> settings.EMAIL_HOST_USER
>>> settings.EMAIL_HOST_PASSWORD
>>> settings.DEFAULT_FROM_EMAIL
>>> settings.STATIC_ROOT
>>> settings.MEDIA_ROOT
>>> settings.DATABASES

# 마이그레이션 내역 확인 및 migrate
$ ENV_PATH=/srv/config/django.env python manage.py showmigrations
$ ENV_PATH=/srv/config/django.env python manage.py migrate

 

 

서버 구동

80번 포트로 서버 구동

sudo ENV_PATH=/srv/config/django.env /srv/venv/bin/python manage.py runserver 0.0.0.0:80

 

gunicorn으로 서버 구동

gunicorn에서는 static 파일 서빙을 지원하지 않음

sudo /srv/venv/bin/gunicorn --bind "0.0.0.0:80" --user ubuntu --group ubuntu --env ENV_PATH=/srv/config/django.env --env DEBUG=true config.wsgi:application
반응형
저작자표시 (새창열림)

'Django > 인프라' 카테고리의 다른 글

[Nginx] Nginx란 무엇인가?  (0) 2024.08.06
[AWS Lightsail] 시스템 서비스로 장고 애플리케이션 배포  (0) 2024.08.06
[AWS Lightsail] 비공식 PPA를 통한 파이썬 설치하기 (3.12)  (0) 2024.08.06
[AWS Lightsail] 리눅스 가상머신 생성  (0) 2024.08.06
가상머신 VS 컨테이너  (0) 2023.12.18
  1. 가상환경 생성 및 활성화
  2. 소스코드 복제 및 패키지 설치
  3. 환경 변수 파일  구성
  4. 환경변수 검증
  5. 서버 구동
'Django/인프라' 카테고리의 다른 글
  • [Nginx] Nginx란 무엇인가?
  • [AWS Lightsail] 시스템 서비스로 장고 애플리케이션 배포
  • [AWS Lightsail] 비공식 PPA를 통한 파이썬 설치하기 (3.12)
  • [AWS Lightsail] 리눅스 가상머신 생성
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
[AWS Lightsail] 가상환경 생성 및 패키지 설치
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.