์๋ ํ์ธ์ ๐โ๏ธ ๐โ๏ธ
์ด๋ฒ ํฌ์คํ ์์๋ Amazon EC2 (Amazon Linux2)๋ฅผ ์ด์ฉํด์ Django๋ฅผ ์ค์นํ๊ณ ๊ธฐ๋ณธ ํ์ด์ง๋ฅผ ๋์ ๋ณผ ์์ ์ ๋๋ค.
Amazon EC2 ํ๋ฆฌํฐ์ด๋ก๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ Amazon EC2๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ณ๋๋ก ๋ค๋ฃจ์ง ์์ต๋๋ค!
์๋ ์บก์ณ ์ฌ์ง๊ณผ ๊ฐ์ด, ์ด๋ฏธ ํ ์คํธ ์ฉ๋์ EC2๋ฅผ ์์ฑํ์ผ๋ฉฐ, SSH ์ ์์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑ์ด ๋์ด์๋ค!๊ณ ๊ฐ์ ํ๊ณ ์์ํฉ๋๋ค.
โ Django ํ๋ ์์ํฌ ์ค์น
Django๋ Python ์น ํ๋ ์์ํฌ ์ ๋๋ค. Django๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก Python์ด ์ค์น๋์ด์์ด์ผ ํฉ๋๋ค :)
2021-01-12(ํ) ์ค๋ ๊ธฐ์ค์ผ๋ก Djaogo 3.1์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Python 3.6, 3.7, 3.8, 3.9๊ฐ ํ์ํ๋ค์! ํ์ธ๋งํฌ
๋จผ์ , Python ์ค์น์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ์๋ฌด๊ฒ๋ ์๋์ค๋ฉด, ์ค์น ์๋์ด์๋๊ฑฐ์์๐ญ ์ค์นํด๋ด
์๋ค!
[root@django-host /]# yum list installed | grep -i python3
์ค์น ๋ช ๋ น์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
[root@django-host /]# sudo yum install python3 -y
์ค์น ์๋ฃ๋ ํ์๋ ์ด๋ ๊ฒ ์๋์ ์ค์น๋ ํจํค์ง๋ค์ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ ์๋ ๋ช ๋ น์ด๋ก Django๋ฅผ ์ค์นํฉ์๋ค!
[root@django-host /]# sudo python3 -m pip install Django
์ค์น๊ฐ ์ ๋์๋์ง ํ์ธํ๊ธฐ ์ํด Django ๋ฒ์ ์ ํ์ธํด๋ด ๋๋ค.
[root@django-host /]# python3 -m django --version
ํ๋ ์ ์ํฌ๋ ์ค์น๊ฐ ์๋ฃ๋์์ต๋๋ค.
โ ํ๊ฒฝ์ค์ & ๊ธฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
์๋ ๋ช
๋ น์ด๋ฅผ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ ์ด์ ๋, django-admin ๋ช
๋ น์ด ์คํ์ ์ํด PATH๋ฅผ ์ค์ ํ๊ณ python๋ช
๋ น์ด ์คํ์ ๋ฒ์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์์
๋๋ค!
[root@django-host ~]# sudo echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
[root@django-host ~]# sudo echo alias python=python3 >> ~/.bash_profile
์ค์ ์ด ์ ๋๋์ง ํ์ธํ๊ธฐ ์ํด ์๋ ๋๊ฐ์ ๋ช
๋ น์ด๋ฅผ ํ์ธํฉ๋๋ค.
๋๋ฒ์งธ ๋ช
๋ น์ด์์ python ๋ฒ์ ์ด 3.7๋ก ๋์จ๋ค๋ฉด ๋ค์์ผ๋ก ๋์ด๊ฐ์ธ์!
[root@django-host ~]# source ~/.bash_profile
[root@django-host ~]# python --version
์ด๋ฒ์๋ tree๋ช ๋ น์ด๋ฅผ ์ค์นํฉ๋๋ค.
[root@django-host /]# sudo yum install tree -y
Django๋ ๊ธฐ๋ณธ DB๋ก SQLite๋ฅผ ์ฌ์ฉํฉ๋๋ค. Django 3.1.5๋ฒ์ ์์๋ SQLite 3.8.3์ด์ ๋ฒ์ ์ด ํธํ๋ฉ๋๋ค.
AmazonLinux2์ ๊ธฐ๋ณธ ๋ด์ฅ๋ SQLite ํจํค์ง ๋ฒ์ ์ 3.7.17์ด๋ฏ๋ก ๋ณ๋๋ก SQLlite๋ ์ค์นํด์ฃผ์ด์ผ ํฉ๋๋ค.
[root@django-host /]# wget https://kojipkgs.fedoraproject.org//packages/sqlite/3.8.11/1.fc21/x86_64/sqlite-3.8.11-1.fc21.x86_64.rpm
[root@django-host /]# sudo yum install sqlite-3.8.11-1.fc21.x86_64.rpm sqlite-devel-3.8.11-1.fc21.x86_64.rpm
์ด์ ์ค์น๊ฐ ์ ๋์๋์ง ํ์ธํด์ค๋๋ค :)
[root@django-host /]# rpm -qa | grep sql
์ค์น๊ฐ ์ ๋์๋ค์!! ์ด์ ์ค๋น๊ฐ ๋์์ต๋๋ค.
โ Django ์น ํ๋ก์ ํธ ์์ฑํ๊ธฐ
Django๋ฅผ ์คํ ํ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
[root@django-host /]# sudo mkdir /my-django && cd /my-django
๊ทธ๋ฆฌ๊ณ ์ด์ ์น ํ๋ก์ ํธ๋ฅผ ์คํํฉ๋๋ค.
[root@django-host my-django]# django-admin startproject mysite
์ด ๋ช ๋ น์ด ์คํ ํ tree ๋ช ๋ น์ด๋ก ํ์ธ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Amazon EC2๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ์งํํ๊ณ ์๊ธฐ๋๋ฌธ์, ๋ก์ปฌ IP์ฃผ์๋ก ์ ์ํ ์ ์์ต๋๋ค.
๊ทธ๋์, ์ธ๋ถ์์ ์ ์์ด ๊ฐ๋ฅํ๋๋ก(EC2 ๊ณต์ธIP์ ์) ์ค์ ์ ๋ณ๊ฒฝํด์ฃผ๋๋ก ํฉ์๋ค ;)
๋จผ์ Amazon EC2์ EIP๋ฅผ ํ์ธํฉ์๋ค. ์ Amazon EC2์ ๊ณต์ธ IP์ฃผ์๋ 13.124.3.200 ์ด๋ค์ :)
์ด์ ์ธ๋ถ์์ ์ ์ ๊ฐ๋ฅํ๋๋ก settings.py ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค.
vim ํธ์ง๊ธฐ๋ก ์ด์ด์ ALLOWD_HOSTS ๋ด์ฉ์ ์์ ํฉ๋๋ค.
๊ณต์ธIP์ฃผ์๋ฅผ ๋ฃ์ด์ฃผ์
์ผ ํด์!!
[root@django-host my-django]# vim mysite/mysite/settings.py
์ด์ , ์๋ฒ๋ฅผ ์คํํด๋ด ์๋ค!!!
[root@django-host my-django]# python mysite/manage.py runserver 0:8000
์ค! ๋ญ๊ฐ ๋จ๋ค์!
์ด์ ์น๋ธ๋ผ์ฐ์ ์์ ์ ์ ๋๋์ง ํ์ธํด๋ด
๋๋ค.
์๊ณ ๊ฐ ์ ๋ก๋ฉ ๋์๋ค์!!!
์ด ๋จ๊ณ๊น์ง ๋ง๋ฌด๋ฆฌ ๋์๋ค๋ฉด, Django๋ฅผ ์ค์นํ๊ณ ์์ํ๋๊ฒ๊น์ง ์๋ฃ ๋์์ต๋๋ค :)
Django Web Project๋ฅผ ๋ง๋๋ ์ด๋ฒ ๋จ๊ณ๊น์ง ๋ง๋ฌด๋ฆฌ ํ๋ค๋ฉด ๋๋ ํ ๋ฆฌ๋ ์ด๋ ๊ฒ ๊ตฌ์ฑ๋์์ ๊ฒ์ ๋๋ค.
์ด ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ ์ค์ต ์งํ ๋จ๊ณ๋ง๋ค ์ ์ํ๋๋ก ํ๊ฒ ์ต๋๋ค :)
์ด์ ๋ค์ ์ค์ต์ผ๋ก ๋์ด๊ฐ์ ์ค์ต์ ๋ง๋ฌด๋ฆฌ ํฉ๋๋ค! (์์ฐจ์ ์ผ๋ก ์ ๋ก๋ ๋ ์์ ์ ๋๋ค)๐