와이유스토리

[캡스톤A] 6. Django프로젝트 AWS에 배포하기 본문

프로젝트/백엔드

[캡스톤A] 6. Django프로젝트 AWS에 배포하기

유(YOO) 2022. 1. 20. 21:22

이번 블로그에서는 Django프로젝트를 AWS에 배포하는 내용을 다루어 보려고 합니다.
 


1. Django 프로젝트 준비

Github에 본인이 호스팅할 Django 프로젝트를 최신 버전으로 업로드합니다.
 

2. AWS 회원가입

AWS 사이트에 접속하여 회원가입하면 프리티어로 EC2 서버를 무료로 사용할 수 있습니다. 단, 사용 기간이나 용량에 제한이 있으니 과금 정책에 대해서 주의하시면 좋을 것 같아요. 주기적으로 Cost Explorer탭에서 확인하시는 것도 방법입니다.
 

3. AWS EC2 인스턴스 생성

아래 링크나 EC2 탭에 들어가서 인스턴스를 생성합니다.
https://aws.amazon.com/ko/ec2/?nc2=h_ql_prod_fs_ec2&ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc 

아마존 클라우드 서버 호스팅 | Amazon Web Services

다양한 구매 모델 온디맨드, 스팟 인스턴스, Savings Plan과 같은 여러 가지 구매 모델을 제공합니다. 스팟 인스턴스를 사용하면 내결함성을 갖춘 워크로드 요금을 90%까지 절감할 수 있습니다. Saving

aws.amazon.com

4. AWS 키 페어/포트 열기

5. SSH 서버 접속

ssh -i ./.ssh/key.pem ubuntu@ec2-3-144-80-205.us-east-2.compute.amazonaws.com

6. django 및 djangorestframework 설치

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
sudo pip3 install django
sudo pip3 install djangorestframework
pip3 install --upgrade django

7. 서버 작동

python3 manage.py runserver 0:8000

8. 터미널 종료해도 백그라운드에서 실행하기

bg
disown -h
ps -l

※ 다음은 AWS 서버가 정상적으로 작동하지 않을 때 해결방안입니다. 헤매다가 아래 방법을 통해 해결할 수 있었습니다.

1. 포트 확인

AWS는 보안 그룹 규칙에 따라 접속가능한 포트가 다르므로 보안 규칙을 확인해야 합니다.

2. 방화벽 확인

본인 컴퓨터가 방화벽으로 해당 포트를 막지는 않았는지 확인해야 합니다. 인바운드 규칙에서 8000포트 연결 항상 허용

3. Django 프로젝트에서 settings.py의 ALLOW HOST 확인 

ALLOW HOST = ["*"] 를 이용해 모든 호스트를 허용합니다.

Comments