<UR-Type> EC2+RDS+Django 2

이시우·2021년 4월 12일

프로젝트 : UR-Type

목록 보기
9/11
post-thumbnail

지난주 진행도

AWS EC2 서버에 Maria DB를 설치 후 구동 확인까지 했다.
일주일간 프로젝트를 조금씩 수정하며 도메인 연결까지 했는데 그 과정에 대한 얘기를 정리한 내용입니다.



Django 프로젝트 git에서 가져오기

우선 내 프로젝트가 git에 올라가 있어야한다.
나는 미리 git에 올려두었고 몇몇 설정 파일은 json 파일로 따리 관리해 git에 올리지 않았다.
EC2에는 기본적으로 파이썬과 git이 설치되어 git은 설치하지 않았고 Django는 추가로 설치해줬다.

cmd나 주피터 노트북을 이용해 EC2 서버에 접속한 후

  1. sudo apt-get update
    [설치할 수 있는 패키지의 정보를 불러오는 것]
  2. sudo apt-get upgrade
  3. sudo apt-get install python3-pip
    python3 모듈을 관리하는 python3버전의 pip 설치
  4. sudo pip3 install django
  5. pip3 install --upgrade django
  6. git clone [깃헙 레포 링크]

순서대로 입력해줬다.
가져온 Django 프로젝트의 설정 파일에 ALLOWED_HOSTS에 퍼블릭 IP주소를 추가해줬다.
설정 정보가 담겨있는 json파일은 파일질라 프로그램을 통해 내 로컬 pc에서 받아왔다.



Django 프로젝트 실행하기

git을 이용해 내 프로젝트를 가져온 후 서버를 켜줘야한다.
내 프로젝트의 manage.py가 있는 폴더로 이동 후

python3 manage.py runserver 0:8000

명령어를 입력해준다. cmd창을 통해 정상적으로 서버가 켜진 것을 확인하면 퍼블릭IP주소:8000을 주소창에 입력해 내 프로젝트에 접속할 수 있다.
나는 지난주에 이 과정에서 엄청 고생했었다.😭😭
구글링을 하며 공부할 때 0:8000이라고 써져있는게 0 자리에 내 퍼블릭IP를 넣고 쓰면 되겠지?라는 이상한생각을 하는 바람에 접속을 못했었다.
나는 사람들이 공란의 의미? 비슷하게 0이라고 쓴 줄 알았는데 알고보니 0을 입력해야 모든 IP에서 접속할 수 있는거였다.
지난주에 아침부터 시작해서 다음날 새벽까지 거의 15시간 컴퓨터 앞에 앉아있었더니 혼자 이상한 착각에 빠져가지고... 엄청 고생했었다.

명령어 입력 후 서버에 접속이 안되는경우 AWS EC2 인스턴스 보안그룹의 인바운드 그룹을 확인해줘야한다.
내 인스턴스 보안그룹의 8000번 포트를 열어줘야 Django에서 접속할 수 있다.
위치무관으로 설정해줘야 모든 사람들이 접속을 해볼 수 있다.



도메인 등록하기

freenom이라는 도메인 사이트를 이용했다.
내가 원하는 주소로 1년간 무료로 사용할 수 있다는 메리트가 있었다.
.com같은 유명 도메인을 이용하려면 돈을 지불해야 하지만 나는 프로젝트용이라 .com을 사용할 필요가 없어서 무료 도메인을 이용했다.
freenom을 이용하려면 회원가입을 해야 하는데 처음에 회원가입창이 없어서 좀 당황했다.
구글링을 해보니 첫 이용자는 장바구니에 넣고 구매하는 과정에서 회원가입할 이메일을 입력하라는 창이 나온다고 한다.

freenom 사이트를 이용하는 순서는

  1. 내가 원하는 도메인을 검색한다.
  2. 추천된 이름 중 원하는 도메인의 get in now!버튼을 누른 후 checkout을 누른다.
    간혹 Not available이 나오는 경우가 있는데 도메인명.ga처럼 뒷부분까지 입력하면 정상적으로 진행된다.
  3. 원하는 사용 기간을 정한 후 email을 입력한다.
  4. email 인증 후 정보를 입력한다.
  5. freenom 사이트의 services 탭에서 my dmains을 누른다.
  6. Manage Domain을 누른다.
  7. Manage Freenom DNS 탭에서 TargetEC2의 퍼블릭IP주소를 입력 후 SAVE한다.

이렇게 해주고 잠시 기다리면 내 프로젝트에 도메인이 생성된다.
기쁜 마음으로 도메인명을 입력하면 접속인 안될 것이다 ㅎ
아직 우리에겐 2개의 작업이 남았다.



Django 프로젝트 settings.py 수정하기

settings.py 파일 ALLOWED_HOSTS에 퍼블릭 IP주소가 입력되어있을텐데 이 부분을 도메인 명으로 바꿔주어야한다.

ALLOWED_HOSTS = [
                '퍼블릭 IP주소를 freenom에서 받은 도메인 명으로 바꿔주세요'
                 ]



Django 프로젝트 80포트로 설정하기

기존에 장고 프로젝트의 서버를 오픈할 때 8000번 서버로 오픈했기 때문에 IP주소:8000입력해야 접속이 된다.
웹의 표준 포트는 80포트이기 때문에 도메인 주소만 입력했을 때 내 프로젝트에 접속이 되게 하려면 Django프로젝트도 80포트로 서버를 열어줘야한다.
기존에 열려있던 서버를 닫고 manage.py가 있는 위치에서

sudo python3 manage.py runserver 0:80

를 입력해 80포트로 서버를 열어준다. sudo 명령어를 사용하지 않으면 오류가 발생하니 꼭 sudo 명령어를 사용해주자.
서버가 정상적으로 열리면 로컬 pc가 아닌 다른 곳에서도 도메인명을 이용해 내 프로젝트에 접속할 수 있다.



배포 느낀점 ..

중간중간 시행착오를 많이 겪었지만 구글링의 대단함을 다시 느낄 수 있었다...ㅎ
유튜브도 많이 참고했지만 대부분 구글의 다양한 글들을 통해 문제를 해결할 수 있었다.
아직 데이터가 좀 모자라고 카카오톡 공유하기 API를 넣을 예정이라 프로젝트가 완성 단계는 아니지만 내가 스스로 사람들이 접속할 수 있고, 누군가 필요해하는 서비스를 만들어 간다는게 너무 재밌고 뿌듯하다.
언젠가 취준이 끝나고 취뽀했을 때 느끼는 쾌감이나 성취감은 얼마나 클지 기대된다 !

0개의 댓글