Dev./Cloud

[Cloud] 배포 - NCP : Django App 생성부터 배포

Ivan'show 2023. 7. 31.
728x90
반응형

먼저 원격 저장소(github)를 만들어 준다.

이때, README.md 파일과 .gitignore (파이썬)파일을 같이 만들어주면 좋다.

git repo 를 생성하고 로컬로 이동한다.

연결하고 싶은 위치의 경로에서 아래 명령어를 실행한다.

git init
git remote add origin {github 주소}
git remote -v
git pull origin main
code .

 

이제 파이썬 가상환경 만들어주기

python3 -m venv venv
python3 --version
source venv/bin/activate
which pip

# 기대 출력값
# /Users/kimminhyeok/workspace/dev_django_app/venv/bin/pip
# 가상 환경쪽에서 pip 를 가져오는게 보여지면 good!

 

가상환경에 Django 설치하기

pip install django
pip freeze
pip freeze | grep Django > requirements.txt

 

앱 생성 : Startapp

django-admin startproject {app name}

서버 열어보기

cd {app name}
python3 manage.py runserver

 

이제 기존에 열어두었던 클라우드 서버에 접속

ssh lion@likelion # 이후 비밀번호 입력

 

원하는 경로로 이동하여 방금 생성한 git repo 를 clone !

git clone {<https://~~>}

 

app 안쪽에서 다시 가상환경을 셋팅해주자. 로컬에서 했던것 처럼

sudo apt-get update
sudo apt install python3.8-venv
python3 -m venv venv
source venv/bin/activate
$ which pip
# /home/lion/app/Dev_django_app/venv/bin/pip

 

과정 및 결과,

 

이제 requirements 에 있는 필요한 것들 설치

pip install -r requirements.txt

 

아마 다 설치하고 서버를 run 한다고 하더라도 지금 현재는 페이지가 열리지 않을 것이다.

이유는 네이버 클라우드에서 access group 규칙을 설정하지 않아서 그렇다.

NCP → Sever → ACG 에서 사용할 그룹을 하나 만들고 규칙설정으로 들어온다.

 

모든 소스에서 장고 포트로 접근이 가능하게 규칙 생성

+여기서 myIP 로 내 네트워크 내에서만 가능하게도 할 수 있다.

 

이후 Server 로 돌아와서 ACG 수정을 클리해 생성한 규칙을 추가해 준다.

 

이제 개발서버로만 접속하게 해둔 내용이 아닌 모든 포트로 전환해서 서버를 실행시켜야한다.

python3 manage.py runserver 0.0.0.0:8000

 

서버에 접속후 공인IP 를 본인의 NCP 서버 공인 IP 로 변경하면 아까와는 다른 페이지가 뜬다.

URL : http://{NCP 에서 가져온 공인 IP 주소}:8000/

“Disallowed Host at/…” → 보안과 관련한 필터에서 걸러졌다는 뜻

local 로 돌아와 settings.py에서 ALLOWED_HOSTS 에 본인 공인IP 를 넣어 수정한다.

ALLOWED_HOSTS = [
    "***.***.***.***",
]

이후 원격 저장소로 push 하고 다시 배포 서버에서 가져와 배포를 진행한다.

배포 서버를 열었던 터미널에서 서버를 종료했다가,

git pull
python3 manage.py runserver 0.0.0.0:8000

결과물

 

서버를 열었고, 공인 IP 주소로 장고포트를 통해 정상접속한 내용을 확인헀다.

 

 

 

728x90
반응형

댓글