본문 바로가기

IT/Django

장고(Django)와 다프네(Daphne) 서비스 구축을 위한 기본 준비 사항

이번에 새롭게 진행한 프로젝트가 IOT관련 프로젝트였습니다.

가정의 수족관에 수온측정, 미세먼지 측정, 그리고 수족관을 제어하는 컨트롤러를 수족관에 설치 한 후

측정된 데이타를 서버에 저장한 후, 사용자가 스마트폰 어플에서 수족관의 상태 등을 확인하고 수족관의 

작동을 제어하는 프로젝트였습니다.

 

간략한 프로젝트의 구성은 아래와 같습니다.

나는 이 프로젝트 중에 저는 자료전송 받아 저장하는 서버부분, 자료 검색과 수족관 제어 명령을 전송하는 스마트폰 어플 개발을 담당하였습니다. 

 

서버는 REST API 서버를 구성하여 아두이노 컨트롤러와 스마트 폰 어플과 자료전송 및 검색, 회원가입 등의 서비스를 구성하였습니다.

 

서버부분은 아래와 같은 구성을 구성하였습니다.

서버는 오라클 클라우드 서버를 이용하습니다. 일단 평생 무료로 두개의 서버를 사용할 수고, 처음 서비스를 시작하는 단계에서 큰 비용을 무료로 서버를 이용할 수 있다는 점이 장점인거 같습니다.

 

서버의 구성은 한대의 서버는 web 서버로 구성하였고 한대는 DB서버로 하였습니다.

 

서버 구성 및 개발 프레임워크

  web 서버

  - web 개발 프레임워크 : django, django channels, asgi 기반, 

  - nginx 

  - dapne, supervisord

 db 서버

  - mysql 서버 

 

django channels를 이용하여 실시간으로 수족관의 컨트롤러와 통신을 하도록 구성하다보니 ASGI기반 개발을 하였는데, 서비스 단계에서 서버 설정을 위하여 자료를 찾아보니 NGIX+UWSGI+DJANGO로 서비스를 구성하는 자료는 많이 있는데 Daphne를 이용하여 서비스를 하도록 서버 설정하는 자료는 많이 있지 않았습니다.

 

또한 자료가 있더라도 실제 서비스에 적용하기에는 부족한 점이 많이 있었고 설명도 부족한 경우가 많아 실제 서비스를 구현하기 위한 서버 설정하는데 많은 시간을 소비하였습니다.

저와 같은 시행착오를 겪지 않았으면 하는 마음과 다음에 다른 프로젝트를 진행하게 될 경우 서비스를 구현하기 위한 서버 설정을 수월하기 위하여 자료를 남길 목적을 글을 남겨둡니다.

 

 

먼저 오라클 클라우드 서버를 만드는 자료는 이미 인터넷에 많이 검색을 하면 많이 있기 때문에 굳이 따로 정리하지는 

않고 링크를 남겨두도록 하겠습니다.

 

오라클 클라우드 서버 사용하기

 

VM 서버 생성 - oracle cloud

SSH로 서버 접속하기

  위 ssh로 서버 접속하기로 ssh로 서버에 접속하기를 할 경우 좀 헤갈리는 부분이 있어 보충 이미지를 올립니다.

콘솔접속->로컬 접속 생성-> 공용키 붙여 넣기 순서로 하셔야 합니다.

 

서버에 접속할 때 제가 링크를 드린 글에서는 윈도우 cmd에서 접속을 하는 것을 설명했는데 제가 사용하는

mobaterm에서 ssh 접속을 위한 설정에 대하여 간단하게 설명 드리겠습니다.

 

위 Remote host에는 오라클 서버의 IP주소를 입력, Specify username은 오라클 클라우드의 경우는 기본 ubuntu입니다.

ssh로 서버 접속하기에서 설명 되었던 private key는 아래의 Use private key를 체크하고 다운받았던 private key파일의 경로를 선택하여 주면 됩니다.

 

그리고 중요한 한가지 ssh 세션을 만들고 한 후 바로 접속을 하면 접속이 안되는데 그때 당황하지 마시고 접속하기 위하여 열린 ssh 세션 페이지를 닫고 다시 접속하면 정상적으로 접속할 수 있습니다.

 

 

여기까지가 서버에 접속하기 위한 준비였습니다.