파이썬으로 장고(Django) 공략하기: 입문 강의를 정리한 내용입니다.
- 웹 앱을 호스팅할 서버를 AWS(Amazon Web Service)를 통해 생성해보자.
- AWS를 이용하면 웹 앱을 실행하고 인터넷에 공개하기 위한 서버 인스턴스를 손쉽게 생성할 수 있다.
서버 인스턴스 생성 후 IP 연결
- 로그인 후 AWS Management Console로 들어가 EC2를 클릭
- 우측 상단의 리전을 서울로 선택한 후 인스턴스 시작 버튼 클릭
- AMI 선택 : 할당받을 서버 컴퓨터의 운영체제를 선택하는 목록 중 프리 티어 사용가능으로 된 우분투 서버를 선택
- 인스턴스 유형 선택 : 연습용이기 때문에 프리 티어 사용 가능으로 된 것을 체크 후 다음: 인스턴스 세부 정보 구성을 클릭
- 인스턴스 구성 : 다음 클릭
- 스토리지 추가 : 프리 티어 사용 가능 고객은 최대 30GB의 EBS 범용(SSD) 또는 마그네틱 스토리지를 사용할 수 있습니다.라고 써있기 때문에 크기를 30으로 수정한 후 다음 클릭
- 태그 추가 : 다음 클릭
- 보안 그룹 구성 : 유형을 추가하고 검토 및 시작 클릭
- SSH : 터미널을 열기 위한 22번 포트
- HTTP : url을 치고 들어갔을 때의 기본 80번 포트
- 사용자 지정 TCP 규칙 : 장고 runserver의 기본 8000번 포트
- 검토 : 시작하기 클릭 후 새 키 페어 생성, 키 페어 이름을 지정 후 키 페어 다운로드 클릭. 키 페어 이름으로 된 서버 접속을 위한 마스터 키가 되어주는 pem 확장자의 파일이 다운된다. 인스턴스 시작 클릭
- 지금 인스턴스를 시작 중입니다.가 뜨면 성공! 인스턴스 보기를 클릭하면 방금 시작한 인스턴스를 조회할 수 있다.
- 외부에서 접속할 수 있는 고정된 IP를 할당받기 위해 탄력적 IP 메뉴로 이동한다.
- 새 주소 할당 > 할당을 클릭하여 탄력적 IP를 생성한다.
- 우클릭 주소 연결 : 10번의 인스턴스 목록에 있는 인스턴스 아이디를 입력하여 연결 클릭하면 인스턴스에 고정 IP가 연결된다.
PuTTYgen으로 .pem 파일을 .ppk 파일로 변환
- PuTTYgen에서 생성할 키 유형(Type of key to generate)에서 RSA를 선택한다.
- Load를 선택 후 .pem 파일을 불러오면 불러오는 데 성공했다고 뜨며, PuTTY에서 이 키를 사용하기 위해 Save private key를 클릭한다.
PuTTY로 생성한 서버 인스턴스로 접속
- Connection > SSH > Auth : Private key file for authentication에 ppk 파일을 등록한다.
- Sesstion : IP와 Saved Sesstions를 지정하고 Save한 후 Open
- 호스트 키 저장 팝업에서 ‘예’를 누른 후 login as : 에 ubuntu를 입력, ppk 암호를 입력하면 접속이 된다.
서버에 장고 웹 앱을 실행하기 위한 기본적인 구성요소와 파이썬3을 설치
- 우분투 서버에 필요한 패키지를 업데이트하는 명령어
- sudo : 최고 권한을 부여해서 명령어를 실행
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install python3
$ sudo apt-get install python3-pip
$ sudo pip3 install --upgrade pip
- 리눅스 환경에서 Github에 접속하기 위한 ssh-key를 생성, 비밀번호를 입력하라고 하면 입력 후 엔터
$ ssh-keygen -t rsa
- 키가 /home/ubuntu/.ssh/id_rsa.pub에 저장되었다고 뜨는데, 다음의 명령어를 입력하면 입력된 내용을 조회할 수 있다.
$ cat /home/ubuntu/.ssh/id_rsa.pub
- 조회한 내용을 복사하여 깃허브 저장소의 Settings > Deploy keys에 등록하면 깃허브에서 소스코드를 내려받을 수 있게 된다.
- 이제 www 폴더에 원격 저장소의 소스코드를 받는다. (Ssh 주소는 저장소 웹 페이지에서 Clone or download 드롭다운 메뉴 안에 Use SSH 링크를 클릭하면 git@으로 시작하는 ssh주소가 뜬다.)
$ mkdir www
$ cd www
$ git clone {clone ssh 주소}
- 이제 내려받은 프로젝트 폴더의 루트 폴더로 이동하여 virtualenv에 필요한 라이브러리 환경을 구성한다.
$ cd {프로젝트 폴더명}
$ sudo apt-get install virtualenv
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip install -r requirements.txt
- 장고 웹 앱 실행
$ python manage.py runserver 0.0.0.0:8000
- 실행 후 IP로 직접 접속했을 때 외부에서 서버로 접근할 수 없다는 오류가 뜨기 때문에 settings.py를 수정한다.
- 프로젝트 폴더로 이동한 후 명령어
vi settings.py
를 사용하면 해당 파일을 열 수 있다.- i 를 입력하면 입력모드
- ESE를 입력하면 이동할 수 있다.
- :wq를 입력하면 저장 후 종료
# 프로젝트 폴더의 settings.py
ALLOWED_HOSTS = ['*']