시작에 앞서 안내하는 말
이 포스트는 총 5개의 포스트로 이뤄져있으며
해당 포스트를 따라 차근차근 따라하면 AWS로 DJango 프로젝트 배포를 성공적으로 마칠 수 있게
사진을 포함한 명령어를 모두 정리하여 기술해두었다.
주의할 점과 또 부탁할 말은 아래 포스팅의 순서대로 꼭 모든 세팅과 과정을 잘 지키며 진행했으면 좋겠다.
이 5개의 글은 AWS로 DJango 프로젝트를 배포하는데 있어 이전에 내가 고민했던 것과
경험했던 것과 오류의 해결법, 그리고 시행착오로 고생했던 것을 모두 반영하고
또 개념적인 설명도 함께 붙여 설명한다.
5개의 글을 빠짐없이 차근차근 따라온다면 문제없이 장고프로젝트를 배포에 성공할 수 있을 것이다.
잘 진행되길 바라고 또 문제가 있거나 배포 진행방식에 있어 더 좋은점이 있다면
언제든 자유롭게 의견을 댓글로 달아주었으면 좋겠다.
순서
- 배포전 프로젝트 세팅 방법-
- 배포 진행 -
=> 순서를 꼭 잘 지켜 진행하자!
DJango 프로젝트 AWS로 완벽하게 배포하기 (2) - 우분투 설정 & nginX 설치
인스턴스를 클릭하고 "연결"버튼을 누르자
연결 버튼 클릭
다음과 같은 화면이 출력된다.
우분투 기본 설정을 진행해주자.
처음으로 해야할 것은 이 OS 자체에 대한 업데이트가 필요하다.
1. sudo apt-get update
=> 이 OS에서 다운받아야하는 것들이 있는지 기본 체크하는 과정이다.
2. sudo apt-get upgrade
=> 업그레이드 하는 과정
과정중 y/n나오면 다 y 누르면 된다.
계정 비밀번호 설정
root 계정에 대한 비밀번호 설정이 필요하다.1. sudo passwd root=> 최상위 계정에 대한 비밀번호 설정이 필요하다. 입력할 때는 텍스트가 뜨지 않는다.
2. su=> 확인 방법은 다음과 같이 su 명령어를 입력하고 이전 비밀번호를 입력해보면 된다.
그럼 다음과 같이 ubuntu에서 root로 바뀐것을 알 수 있다.
3. exit=> 다시 로그아웃하고 나올 때는 exit입력하면 된다.
ubuntu 계정에 대한 비밀번호 설정이 필요하다.
1. sudo passwd ubuntu
=> 마찬가지로 우분투도 진행해준다.
이 계정에 대한 비밀번호들은 절대로. 까먹으면 안되기에 잘 적어둬야한다.
화면 지울때는 clear 쓰면 된다.
서버에 대한 지역 설정
1. sudo locale-gen ko_KR.UTF-8=> 지역설정
2. sudo dpkg-reconfigure tzdata=> 시간 설정=> 이 명령어를 입력하면 아래와 같은 화면이 출력된다.
아시아로 선택해서 엔터
서울로 선택해서 엔터
3. sudo shutdown -r now
=> 서버를 한번 재부팅 해주자
(sudo의 의미는 관리자 권한으로 실행시키는 것이라고 알면됨)
nginX 설치
클라이언트가 서버를 요청을 하게 되면 바로 받는 애가 바로 nginx라는 웹서버이다.
웹서버는 프록시의 역할을 하거나 전달하는 등 중개인의 역할, 또한 정적 파일을 제공하는 주된 기능을 수행한다.
1. sudo apt-get install -y nginx
=> 엔진x 설치
2. 보안그룹 인바운드 규칙 추가
이 퍼블릭 ip주소를 복사해서
그 바로 옆에 있는 "보안"클릭
그 페이지의 보안그룹 및에 링크 클릭
=> 그럼 아래와 같이 인바운드 규칙을 추가할 수 있는 부분이 존재한다.
보안그룹은 윈도우로 생각하면 방화벽이다.
우분투라는 이 서버의 기준에서 인바운드, 즉 들어오는 것들에 대한 방화벽이다.
아웃바운드는 서버 입장에서 나가는 것, 어떤 ip로 데이터를 보내줄 것인지에 대한..
우리가 url로 이 서버에 접근하려면 추가적인 규칙을 추가해줘야한다.
이전 사진에서 보이는 "인바운드 규칙 편집" 클릭 > 위 사진에서 "규칙추가"클릭
유형: HTTP
범위는 0.0.0.0/0으로 드롭다운에서 선택
"규칙저장"클릭
그럼 이렇게 규칙이 하나 더 생겨서
80포트 http로도 접근이 가능할 수 있게 해두었다.
(22포트는 이전 우분투로하는 것 연결)
그럼 이제 우리가 아까 전에 복사했던
퍼블릭IPv4 주소를 복사해서 링크창에 넣어보자
다음과 같이 잘 접속되는 것을 알 수 있다. -> 인바운드 규칙 설정이 잘 된 것, 이제 외부에서도 접근이 가능하다.
엔진엑스의 목적 - 클라이언트가 서버에게 요청을 보내고 그걸 받자마자 처리해주는 1차적 서버이다.
장고가 연산을 해야하는 것들은 장고로 토스해주고, 장고가 굳이 연산하지 않아도 되는 static파일같은 경우
바로 엔진엑스가 응답을 해주는 것이다.
그 다음 시간엔 파이썬 설치를 하고 깃허브에서 프로젝트 코드 받아와서 프로젝트를 유니콘을 통해 실행하고
그 서비스를 엔진엑스와 연동시키는 과정을 진행할 것이다.
=> 이어서 계속 진행