Deploying a Django-Vue application on AWS EC2 using NGINX
하나의 EC2 Instance에 두 개의 Server 를 올리는 간단한 방식
80
번 포트 - Vue.js frontend serve
8000
번 포트 - Django backend serve
1. EC2 instance 만들기
원하는 Amazon Machine Image (AMI) 선택하기
나는
Ubuntu 16.04
로 했다Ubuntu 사랑해요
2. PEM key 만들기
기존에 생성한
PEM key
가 없다면, Instance 생성 후 PEM key를 생성할 지 물어보는데 그 때 생성하면 된다PEM Key
는 안전한 곳에 보관해야 한다!프라이빗 키를 소유한 사람은 누구나 instance에 연결할 수 있으므로 보안된 위치에 프라이빗 키를 저장해 두어야 한다!
3. EC2에 접속하기
3-1. PEM key 를 저장한 경로로 이동
3-2. 접근 권한 변경하기
chmod
는 파일의 접근 권한을 변경하는 명령어400
은 파일 소유자의 읽기 권한 부여
3-3. ssh
명령으로 EC2에 접속하기
ssh
명령으로 EC2에 접속하기AWS console의 EC2 Instance 목록에서 접속하려는 instance를 선택하고
연결 (Connect)
을 누르면 연결 방법이 적혀있는 modal 창이 뜬다그 중에
ssh -i
로 시작하는 명령어를 복사한다PEM Key가 저장되어 있는 곳에서 해당 명령어를 실행한다
여기까지 하면 Ubuntu Bash로 접속한 상태가 된다!
4. EC2에 배포에 필요한 파일들을 설치한다
4-1. nvm 설치
실질적으로 노드는 나중에
apt update
랑.bashrc
수정하고 적용한다음에 한번에 설치할 예정
4-2. python 3.7 설치
4-3. .bashrc
에 alias 설정하기
.bashrc
에 alias 설정하기아래의
alias
입력하기esc
+:wq
+enter
로 저장하고 나오기source
명령어로 수정된 값 바로 적용하기
4-4. node & npm 설치
4-5. nginx 설치
nginx
로 빌드된 파일 서빙할 예정
5. 보안그룹 설정하기
: AWS console에서 EC2 instance에 대한 보안그룹을 설정한다
5-2. 보안그룹 만들기
80
포트와8000
포트를 허용할 보안그룹이기 때문에보안그룹 이름은 80-8000 으로 설정하고,
설명에는 "Allow 80-8000" 이라고 적었다
5-2. Inbound 규칙 설정
80
포트와8000
포트에 대한 Inbound 규칙을 추가한다
6. nginx 상태 확인
Active: active (running)
이라고 뜨는 것 확인하기AWS Console의 Instance 목록에서 instance 누르면 나오는 주소를 복사해서 Browser에서 실행시키면 아래와 같은 화면이 나와야 함
7. 배포할 프로젝트 Clone 하기
7-1. clone
7-2 Frontend 에 필요한 패키지 설치 & build
8. 서빙 준비하기
8-1. nginx.conf
수정
nginx.conf
수정include /etc/nginx/sites-enabled/*.conf;
의 enabled를 available로 수정수정 후:
include /etc/nginx/sites-available/*.conf;
저장 후 빠져나오기
8-2. sites-available
수정
sites-available
수정주석을 제외하고 전부 지운 후, 아래의 내용을 추가하기
:wq
로 저장 후 빠져나가기
8-3. nginx 재 시작하기
사이트 URL로 접속하면 Frontend 서빙 되는 것 확인 가능
9. MySQL 설정
9-1. 설치
9-2. root 계정 설정
입력 후 비밀번호 설정하기
9-3. root 계정으로 접속 해보기
입력 후 설정한 비밀번호 입력
9-4. database 만들기
10 . .env
file 설정
.env
file 설정
필요한 내용 입력후 빠져나가기
11. backend 가상 환경 설정
11-1. pipenv 설치
11-2. 가상환경 실행하기
11-3. 필요한 패키지 설치하기
12. gunicorn 설정하기
12-1. gunicorn 설치
12-2. gunicorn
gunicorn
web server gateway interface
--daemon
붙이면 Background에서 실행됨
12-3. 잘 실행되고 있는지 확인
12-4. nginx 재실행
배포 끄읕~
+
재배포
현재 방식으로는 재배포 시 정말정말 비효율적이다! 자동화 할 예정!!!! 이렇게 그냥 못둬!!!!!!!!
backend 수정 시
frontend 수정 시
Last updated