Amazon EC2에 Django 서버 구축하기

yunyoung·2021년 1월 5일
1

KF99 프로젝트

목록 보기
10/20
post-thumbnail

2020년 12월 04일 기록

EC2 인스턴스 생성

이미지 3

Ubuntu Server 18.04 LTS - t2.micro

이미지 5

생성하는 과정에서 나오는 키 페어 파일은 다시 생성할 수 없으므로 잘 보관해둔다.

시작을 누르고 조금 기다리면 생성된다!

이미지 7

EC2 인스턴스는 키고 끌 때마다 IP 주소가 변경되기 때문에, 고정 IP를 위해서 elastic IP 주소를 할당해준다.

이미지 8

이미지 10

할당받은 IP 주소를 EC2에 연결해준다.

이미지 11

이미지 12

SSH 접속을 위해 Bitvise SSH Client를 사용했다. 키페어를 import해주고, 할당받은 IP 주소와 22번 포트, username을 ubuntu로 입력해준다.

EC2 환경 구성

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python3-pip
$ sudo pip install django

virtualenv를 사용하기 위해 EC2에서 virtualenv를 구성해준다.

# virtualenv 설치
$ pip install virtualenv
# virtualenv 생성
$ virtualenv -p python3 venv_for_django
# virtualenv 활성화
$ source venv_for_django/bin/activate

로컬에 django 구축

python3, django가 설치되어있다고 가정한다.

프로젝트를 저장할 디렉토리로 이동한 후 다음 명령어를 입력한다.

$ django-admin startproject [프로젝트 이름] 

앱 생성

$ python manage.py startapp [앱 이름]

migrate

$ python manage.py migrate
$ python manage.py runserver 8000

나는 REST로 POST 요청만 받아 처리해주면 되기 때문에 간단하게 url과 view를 구성해놓았다.

EC2에 django 배포하기(동기화)

PyCharm Professional 버전에서는 원하는 곳으로 바로 배포할 수 있다!

상단 메뉴 Tools - Deployment - Configuration

+버튼을 눌러 추가해주고, Type을 SFTP로 설정해준다.

SSH configuration은 다음과 같이 설정해준다.

이미지 14

EC2의 IP 주소, 포트번호, username, 키페어를 설정해주고 Test Connection을 눌러 테스트한다.

다시 Deployment 창에서 Mappings 탭을 설정해주어야 한다.

이미지 15

Local Path는 현재 로컬의 프로젝트 경로, Deployment Path는 EC2에 프로젝트를 배포할 경로이다. 나는 편하게 그냥 /home/ubuntu로! -> 나중에 /home/ubuntu/DjangoServer 로 수정

OK를 누르고, 프로젝트 루트 폴더에서 오른쪽 클릭 - Deployment - Upload to kf99를 클릭하면 EC2 서버에 배포가 완료된다.

자동으로 배포하기 위해서는 Tools - Deployment - Automatic Upload를 체크해준다! 그럼 저장할 때마다 EC2에도 동기화된다.

SSH Client로 EC2에 접속해서 /home/ubuntu에 보면 프로젝트가 배포된 것을 확인할 수 있다!

Django 실행시키기

필요한 패키지를 venv에 설치하고 runserver를 해본다.

$ python manage.py runserver 0:8000

8000번 포트로 접속하기 위해서 EC2의 8000포트를 열어주어야 한다.

EC2 인스턴스의 보안 그룹 - 인바운드 규칙 편집에서 8000번 포트를 다음과 같이 추가해준다.

이미지 2

EC2를 통한 접속을 허용하기 위해 settings.py의 ALLOWED_HOSTS에 EC2 IP 주소를 추가해준다.

ALLOWED_HOSTS = ['3.35.94.100']

그럼 퍼블릭 IP 주소 또는 퍼블릭 DNS 주소 뒤에 포트 번호를 붙여 브라우저에서 접속할 수 있다.

http://3.35.178.102:8000/
profile
🌈TIL과 개발 노트

0개의 댓글