Django를 AWS의 EC2를 이용하여 배포하고 접속을 해보았습니다. 하지만 EC2에서 Django 서버를 실행시킬 때 runserver 명령을 통해 실행하였습니다. runserver를 사용한 실행은 개발용 서버를 실행하는데 적합하지 실제 서비스를 운영하는데 부적합합니다.
따라서 실제 서비스에서는 웹 서버를 이용을 합니다. 웹 서버는 다음 포스팅에서 다룰 것이고 이번 포스팅에서는 웹 서버를 사용하기 위해 WSGI를 먼저 알아보도록 하겠습니다.
[Django] WSGI 중 uWSGI를 통해 django 실행
WSGI는 Web Server Gateway Interface의 줄임말로 위키백과의 정의를 보면 웹 서버와 웹 애플리케이션의 인터페이스를 위한 python 프레임워크입니다.
다음 포스팅에서 다룰 웹 서버와 우리가 만든 웹 애플리케이션 Django는 상호간에 통신이 불가능하기 때문에 그 사이에서 WSGI가 인터페이스 역할을 하여 연결시켜줍니다.
사용자가 웹 서버에 요청을 보내면 WSGI가 Django로 넘겨주고 Django에서 일련의 과정을 거친 뒤 다시 WSGI를 통해 웹 서버로 전달이 됩니다.
<aside> 💡 user <-> 웹 서버 <-> WSGI Server <-> Django
</aside>
WSGI도 여러가지 방법으로 구현이 가능하지만 이번에는 uWSGI를 사용해보도록 하겠습니다.
먼저 ssh를 통해 AWS EC2 인스턴스에 접속합니다.
Ubuntu 환경에서 보안을 위해서 각 기능별로 유저를 새로 생성하는게 맞지만 이 부분이 중점이 아니기 때문에 생략하도록 하겠습니다. 만약, 이를 하고 싶다면 유저를 생성한 후 뒤에서 유저 이름을 설정하는 곳에 생성한 유저를 설정해주면 됩니다.
저는 Ubuntu라는 기본 유저로 진행을 계속 하겠습니다.
sudo adduser deploy-user