코딩공부/Server

[CI/CD] Django Jenkins 자동 배포하기 - Aws Ec2 Django 프로젝트 배포하기 (4)

integerJI 2022. 5. 25. 15:52

본 게시글은 Django 및 Aws Ec2의 기초 지식을 알고 있는 전재 하에 처음부터 빠르게 진행됩니다.

 

해당 프로젝트를 통하여 Docker를 이용해 Jenkins 서버를 구축, Django 프로젝트를 Github와 Webhock으로 연결하여 자동 빌드하는 CI/CD 만들기가 목표입니다!


GitHub에 올린 프로젝트를 Aws Ec2 서버에 내려받아 서버 기동을 해보겠습니다.


[CI/CD] Django Jenkins 자동 배포하기 - Django 프로젝트 생성 (1) : https://integer-ji.tistory.com/379
[CI/CD] Django Jenkins 자동 배포하기 - Ec2 Ubuntu 22.04 설치 (2) : https://integer-ji.tistory.com/380
[CI/CD] Django Jenkins 자동 배포하기 - Ec2 모바엑스텀 접속하기 (3) : https://integer-ji.tistory.com/381

 

Django 기초 시작 : https://integer-ji.tistory.com/81

Aws Ec2 프로젝트 배포 기초 시작 : https://integer-ji.tistory.com/300

모바엑스텀(MobaXterm) 설치하기 : https://integer-ji.tistory.com/374

 

개발 환경 : Window10

개발 언어 : Python - 설치 : https://integer-ji.tistory.com/64

개발 툴 : VS Code  - 설치 : https://integer-ji.tistory.com/65

개발 Terminal : Git Bash - 설치 : https://integer-ji.tistory.com/66


1. 시간 설정, 패키지 설치, 가상환경 설치

git clone https://github.com/자신의깃헙레포.git

cd 프로젝트폴더

git clone 명령어를 통하여 프로젝트를 clone 해줍니다. 

 

그 뒤 프로젝트 폴더로 이동해준 뒤 스크립트를 실행합니다.

 

아래의 스크립트를 한 행씩 실행한 뒤 중간중간 핑크색 화면이 나오면 따로 선택 없이 모두 엔터를 눌러주세요!

 

# 시간 설정
sudo timedatectl set-timezone 'Asia/Seoul'

# Apt-get 업데이트
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade

# nginx 설치
sudo apt-get install -y nginx

# venv apt 설치
sudo apt install python3.10-venv

# 가상환경 설치
python3 -m venv env

# pip upgrade
./env/bin/python3 -m pip install --upgrade pip

 

★ 프로젝트의 Python 버전이 다를 경우 만 확인 Start !!

 

현재 2022년 5월 기준으로 ubuntu 22.04 서버는 default 값으로 python 3.10.4버전이 설치되어 있습니다.

 

만약 특정 버전의 파이썬을 설치해야 한다면 아래 스크립트를 참고해주세요.

 

# pyenv 설치하며 필요한 패키지 설치
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev

# pyenv 설치 시작
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# bash_profile과 pyenv 설정
cd ~ && touch .bash_profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

# bash_profile 재시작
source ~/.bash_profile

# 특정 버전의 파이썬 설치 및 global 선언
pyenv install 3.9.8
pyenv global 3.9.8

# bash_profile 재시작
source ~/.bash_profile

★ 프로젝트의 Python 버전이 다를 경우 만 확인 End !!

 

 

스크립트를 모두 수행하면

 

 

가상환경과 함께 pip 업그레이드, 서버 기동에 필요한 준비가 완료 되었습니다.

 

ioniq5이라는 폴더 안에서 env(가상환경)을 설치 한 이유는 Local에서 설정한 그대로 진행하기 위함입니다. 

 

참고 : Django 프로젝트 생성 (1) : https://integer-ji.tistory.com/379

 

이제 가상환경을 실행한 뒤 프로젝트 폴더로 이동,

 

프로젝트에서 설치 한 pip 패키지를 설치하여 줍니다.

source env/bin/activate

cd awsProject/

pip install -r requirements.txt

 

local에서 설치 한 pip 목록을 명령어를 통하여 설치한 뒤 django 서버를 8000 포트로 실행을 시키면

 

python3 manage.py runserver 0:8000

 

Aws Ec2에서 Django 프로젝트 기동 성공입니다!

 

migrate 해주고 마무리 합니다. 

 

python3 manage.py migrate

 

다음 게시물 에서는 nginx 설정과 gunicorn을 이용하여 실시간 서버 기동상태로 만들어 보겠습니다.