본문 바로가기

Previous (20-22)/Development

AWS Python Django Application 환경설정

이번 글에서 다룰 부분은 AWS(Amazon Web Service)에서의 Python 설치를 다루도록 하겠습니다.

사실 AWS에서 Python을 설치하는 것은 자습서 상에서 매우 잘 나타나 있지만, 여러 페이지를 옮겨다니면서 확인해야 하기 때문에 번거로움이 있었습니다.

이에 따라, 제 블로그에서는 옮겨다니는 번거로움을 줄이는 대신, 연재글의 형태로 순서대로 진행할 수 있도록 할 예정이니 참고하시기 바랍니다.


※ AWS의 VPC 네트워크 구축, IAM 서비스, S3 Storage 서비스 구축 부분은 생략하겠습니다.

※ AWS Console 수행을 위한 계정은 이미 보유하고 있어야 하며, VPC, S3는 이미 구축이 사전에 되어 있어야 하니 참고하시기 바랍니다.

※ PUTTYXMING 미리 설치해주시기 바랍니다. (설치 링크는 왼쪽의 글자를 누르면 됩니다)


이전 글: 

2018/05/12 - [Onik Lab./AWS Python] - AWS EC2 (Ubuntu) 구축 및 접속

2018/05/19 - [Onik Lab./AWS Python] - AWS CLI, AWS EB CLI 설치



6. VirtualEnv 설치 및 가상환경 설정

이 부분은 Django Application을 Python 2.7로 실행된 Elastic Beanstalk 환경에  배포하는 방법을 나타내는 부분입니다.

이를 위해서는 먼저 가상환경을 설정한 후, 가상환경에 Django를 설치한 후, 실제 배포를 하는 순서로 이루어집니다.


참고문서: https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/create-deploy-python-django.html


가상환경 설정을 위해서는 virtualenv가 설치되어 있어야 합니다.

하지만, 이전 게시물을 통해서는 virtualenv가 설치되어있지 않으므로, 먼저 설치를 진행합니다.


$ pip install --user virtualenv

설치는 pip를 통해서 진행하도록 합니다.


설치가 완료되었으면, 이제 가상환경을 실제로 구현하도록 합니다.

이 글은 Ubuntu 기반이므로, 타 운영체제에서의 실행방법은 AWS 내의 문서를 참조해주시기 바랍니다.


이름이 eb-virt인 가상 환경을 만듭니다.

~$ virtualenv ~/eb-virt

가상 환경을 활성화합니다.

~$ source ~/eb-virt/bin/activate (eb-virt) ~$

pip를 사용하여 Django를 설치합니다.

(eb-virt)~$ pip install django==1.9.12

Django가 설치되었는지 확인하려면 다음을 입력합니다.

(eb-virt)~$ pip freeze


사실 이 바로 위부분은 AWS의 기술문서와 같은 내용입니다만, 특별히 제가 설명할 부분이 없는 관계로 그대로 붙여넣었으니 참고바랍니다.

다만, 실제 이를 실행했을 때의 결과는 다음과 같이 나타낼 수 있습니다(이건 당연히 제가 직접 한 내용입니다).



7. Django Project 생성

이제 Django 설치까지 끝났으면, 이제 애플리케이션을 생성하도록 합니다.

바로 상기에서 설치까지 모두 끝난 상태이기 때문에 가상환경 유지는 계속 되어 있을 것입니다.

하지만, 가상환경 유지가 되어있지 않을 경우도 있을 수 있으니, 이를 위해서 가상환경에 있는지를 확인해 봅니다.

하단과 같이 (eb-virt)라고 prompt 앞에 나타나 있으면 가상환경에 있는 상태이고, 그렇지 않을 때에는 가상환경이 아니니 참고바랍니다.


가상환경이 아닐 때에는 다음 명령어를 실행하면 됩니다.

~$ source ~/eb-virt/bin/activate
(eb-virt) ~$


이제 프로젝트를 생성합니다. 프로젝트명은 ebdjango로 합니다 (즉 다른 이름으로 해도 됩니다).

(eb-virt)~$ django-admin startproject ebdjango


사실 더 자세한 내용은 위 참고문서에 나타나 있지만, 제 블로그에서는 명령어 실행과 결과 위주로 순서대로 나열할 계획이므로, 세부 설명이나 부가 문서가 필요하다면 상단 참고문서를 참조바랍니다.


프로젝트가 생성되었으면, 기본 Django 웹 문서가 생성되었을 것이며, 이를 웹에서 조회할 수 있습니다.

웹에서 조회하는 방법은 로컬 서버를 manage.py를 실행해서 나타내는 것이며, 이에 따른 실행 결과는 다음과 같이 조회됩니다.

(eb-virt) ~$ cd ebdjango
(eb-virt) ~/ebdjango$ python manage.py runserver


그런데 솔직히 생각을 해봅시다.

이전 문서에서와 같이, Ubuntu 기반으로 AWS 환경구축을 하고,

Putty를 접속해서 커맨드 창에서 명령어를 실행해서 환경구축을 한 것이 대부분입니다.

그런데 위 예제는 Django 프로젝트 구현에 따른 웹 조회를 localhost에서 하도록 되어 있습니다.


그렇다면 위 웹브라우저는 어떻게 띄운 것일까요.

그것은 바로 이전 글 중 첫 번째 글인 Putty 설정의 X11을 통한 GUI 설정과 관련되어 있습니다.

다시 링크를 걸어드리니 참고바랍니다.

2018/05/12 - [Onik Lab./AWS Python] - AWS EC2 (Ubuntu) 구축 및 접속


8. XMING을 활용한 Firefox 구동

Putty에서의 X11 세팅은 상단 링크를 참고하시면 되며,

Firefox와 같은 GUI Program을 실행하기 위해서는 먼저, Putty를 실행했을 때 XMING도 실행해야 합니다.

(단, XMING이 아닌 XMING 설치 시 동시에 깔린 XLaunch를 실행시켜줘야 합니다.)


XMING을 설치하셨던 분들은 다른 블로그 등의 설치 방법을 보면서 파악하셨겠지만,

XLaunch를 실행했을 때 별다른 세팅을 하지 않습니다.

그저 작업 표시줄에 XLaunch가 있으면 됩니다.


그리고 나서, Ubuntu에서도 Firefox를 설치해야 합니다. (가상환경 여부는 상관없습니다)

$ sudo apt-get update
$ sudo apt-get install firefox

이게 apt-get을 Update해주지 않으면 에러가 나더라고요.

그래서 업데이트도 하게 되었습니다.


9. Django 웹페이지 Localhost 호출

Firefox 설치까지 끝났으면 실제 호출을 해보도록 합니다.

먼저 파이어폭스를 백그라운드로 실행시킨 후, Django 사이트를 로컬에서 실행시킵니다.

(사실 위에 있었던 명령어와 동일합니다. 가상환경에서 실행시켜주시기 바랍니다)


$ firefox &
$ python manage.py runserver


그런데 막상 실행하면 에러메시지가 납니다. 위에 써진대로 실행시켜줍니다.

$ python manage.py migrate



그리고 다시 실행.


이제 다음은 Django Application을 AWS Elastic Beanstalk에 배포하는 것을 다루도록 하겠습니다.