본문 바로가기
DoItDJango

aws 호스팅1

by 자동매매 2023. 4. 28.

https://wikidocs.net/72283

 

4장 세상에 선보이는 파이보 서비스!

드디어 파이보를 만드는 긴 여정을 마무리했다. 4장에서는 파이보 서비스를 잘 관리하는 방법과 파이보 서비스를 세상에 선보이는 방법을 알아본다. 서비스 관리에는 깃이라는…

wikidocs.net

 

윈도우용 SSH 터미널 프로그램 (MobaXterm) 설치

윈도우용 SSH 터미널 프로그램 (MobaXterm) 설치 - ubuntu기반

다운로드 : mobaxterm.mobatek.net/download.html

설정 :

1. Session 아이콘 click

2. Basic SSH setting : Remote host : 고정IP 입력

3. Specify username ubuntu 체크

4. User Private key : ssh Key 파일 위치 지정

5. OK

 

준비작업 :

1) 서버 시간 설정 : UTC -> KST

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

2) python 설치 확인 기본 설치되어 있음

python3

 

3) ubuntu 최신 업데이트

sudo apt update

 

4) python3-venv 패키지 설치

sudo apt install python3-venv

 

5) projects, venvs 디렉터리 생성

ubuntu@jumpto:~$ mkdir projects
ubuntu@jumpto:~$ mkdir venvs
ubuntu@jumpto:~$ ls
projects venvs

# ubuntu@jumpto:~$ 프롬프트에서

'~'는 홈 디렉터리인 /home/ubuntu를 의미

 

6) 가상 환경 설치

ubuntu@jumpto:~$ cd venvs
ubuntu@jumpto:~/venvs$ python3 -m venv mysite  # mysite 폴더에 가상환경 생성
ubuntu@jumpto:~/venvs$ cd ~/venvs/mysite/ bin
ubuntu@jumpto:~/venvs/mysite/bin$ . activate      # '.' 과 'activate' 사이에 공백
(mysite) ubuntu@jumpto:~/venvs/mysite/bin$

 

7) wheel 패키지 설치

(mysite) ubuntu@jumpto:~/venvs/mysite/bin$ pip install wheel

 

8) django markdown 패키지 설치

(mysite) ubuntu@jumpto:~/venvs/mysite/bin$ pip install django==4.0.3
(mysite) ubuntu@jumpto:~/venvs/mysite/bin$ pip install markdown

 

9) 파이보App 설치 : 깃허브 원격 저장소 -> projects

(mysite) ubuntu@jumpto:~/venvs/mysite/bin$ cd ~/projects
(mysite) ubuntu@jumpto:~/projects$
(mysite) ubuntu@jumpto:~/projects$ git clone <git저장소 주소> mysite
(mysite) ubuntu@jumpto:~/projects$ ls
mysite

 

10) 데이터베이스 생성

이제 다음처럼 mysite 디렉터리에 진입한 후 장고 서버를 실행해 보자.

(mysite) ubuntu@jumpto:~/projects$ cd mysite
(mysite) ubuntu@jumpto:~/projects/mysite$ python manage.py migrate
(mysite) ubuntu@jumpto:~/projects/mysite$ python manage.py runserver

 

11 ) ALLOWED_HOSTS 설정 – local host에서 (config/setting/base.py)

ALLOWED_HOSTS =['3.37.58.70']
(mysite) c:\projects\mysite>git add *
(mysite) c:\projects\mysite>git commit -m "ALLOWED_HOSTS 변경"
(mysite) c:\projects\mysite>git push

그리고 AWS 터미널로 다시 돌아와 git pull 명령으로 깃허브에서 변경된 내용을 가져온다.

(mysite) ubuntu@jumpto:~/projects/mysite$ git pull

 

장고서버 실행

(mysite) ubuntu@jumpto:~/projects/mysite$ python manage.py runserver 0:8000

# 0:8000에서 0 - '외부에서 이 서버에 접속할 수 있도록 아이피를 개방한다'는 의미

# 8000- 8000번 포트로 접속 허용

이제부터 누구나 웹 브라우저에서 3.37.58.70:8000을 입력하면 여러분의 파이보 서비스를 사용할 수 있다.

 

settings.py 분리

로컬서버 / 원격서버에서 동시 구동을 위한 설정 : config / settings.py -> 디렉터리

 

 

base.py : settings.py 파일을 base.py라는 이름으로 변경 / 수정

BASE_DIR = Path(__file__).resolve().parent.parent.parent

 

local.py

from .base import *
ALLOWED_HOSTS = []

 

prod.py

from .base import *
ALLOWED_HOSTS = ['3.37.58.70']

prod.py 파일에는 서버 환경에 맞게끔 ALLOWED_HOSTS 항목에 서버의 고정 아이피를 등록하였다. 이렇게 수정하면 mysite/config 디렉터리의 구조는 다음과 같을 것이다. 디렉터리 구조와 파일명을 확인하자.

 

settings 옵션

1. 로컬환경에서 서버를 구동 실현

(mysite) c:\projects\mysite>python manage.py runserver --settings=config.settings.local

--settings 옵션은 장고서버가 읽어야 할 설정파일을 지정하는 옵션

접속시도 : http://127.0.0.1:8000

 

위의 기능 동일 구현

 

1) 환경변수를 이용

(mysite) c:\projects\mysite>set DJANGO_SETTINGS_MODULE=config.settings.local
(mysite) c:\projects\mysite>python manage.py runserver

 

2) 환경변수를 이용한 로컬 설정 자동화

mysite.cmd 파일 생성 및 구동

DJANGO_SETTINGS_MODULE 환경 변수를 이전에 만들었던 mysite.cmd 파일에 추가하면 더욱 편리하게 개발 환경에서 장고 서버를 구동할 수 있다.

 

[ 파일명: c:\projects\mysite\local_conf.cmd ]

@echo off
cd c:/projects/mysite
set DJANGO_SETTINGS_MODULE=config.settings.local
c:/venvs/mysite/scripts/activate

 

mysite.cmd 파일로 가상 환경에 진입하면 DJANGO_SETTINGS_MODULE 환경 변수가 자동으로 설정되므로 별다른 설정 없이 python manage.py runserver 명령으로 서버를 실행할 수 있다.

 

c:\projects\mysite>local_conf
(mysite) c:\projects\mysite>python manage.py runserver

 

[ 참조 ] OS 환경변수 추가하기

[파일명: /Users/pahkey/.zshrc]

alias mysite='export DJANGO_SETTINGS_MODULE=config.settings.local;

cd /Users/pahkey/projects/mysite;

source /Users/pahkey/venvs/mysite/bin/activate'

 

2. 원격 서버 구동 실현

(mysite) c:\projects\mysite>python manage.py runserver --settings=config.settings.prod

접속시도 :         http://0:8000/

                         http://3.37.58.70:8000

 

1) 서버 환경 설정

서버에서는 파이참과 같은 편집기를 사용할 수 없으므로 여기서는 nano 편집기를 사용하자.

 

(mysite) ubuntu@jumpto:~/projects/mysite$ cd /home/ubuntu/projects/mysite
(mysite) ubuntu@jumpto:~/projects/mysite$ nano mysite.sh

 

[ 파일명: /home/ubuntu/projects/mysite/remote_conf.sh ]

#!/bin/bash
cd ~/projects/mysite
export DJANGO_SETTINGS_MODULE=config.settings.prod
. ~/venvs/mysite/bin/activate

 

nano 편집기에서 다음 내용을 입력하고 <Ctrl+O>를 눌러서 remote_conf.sh 파일을 저장한 뒤 <Ctrl+X>를 눌러서 편집기를 종료하자.

 

그리고 터미널에서 mysite.sh 파일을 다음과 같이 실행하자.

ubuntu@jumpto:~/projects/mysite$ . remote_conf.sh
(mysite) ubuntu@jumpto:~/projects/mysite$

이제 remote_config.sh 파일을 실행하면 가상 환경 진입과 환경 변수 설정을 자동으로 할 수 있다.

이때  . remote_config.sh 앞에 있는 점 기호 . 입력을 잊지 말자.

 

[ 참조 ] alias를 이용하는 방법

서버 홈 디렉터리의 .profile 파일 맨 아랫줄에 다음과 같이 mysite라는 alias를 추가하면 mysite.sh 파일을 이용하는 것보다 더 간편하게 가상 환경 진입과 환경 변수 설정을 할 수 있다.

[파일명: /home/ubuntu/.profile] – nano 편집기로 작성

alias mysite='export DJANGO_SETTINGS_MODULE=config.settings.prod;cd ~/projects/mysite;. ~/venvs/mysite/bin/activate'

 

이렇게 설정하고 터미널에 접속한 다음 아무 곳에서나 mysite를 입력하면 된다.

ubuntu@jumpto:~$ mysite

(mysite) ubuntu@jumpto:~/projects/mysite$

'DoItDJango' 카테고리의 다른 글

aws 호스팅3  (0) 2023.04.28
aws 호스팅2  (0) 2023.04.28
sendgrid를 통한 메일 전송  (0) 2023.04.18
Chapter 10: Bootstrap  (0) 2023.04.17
User Authentication  (0) 2023.04.17

댓글