Back to Posts

Django MS Azure에 Fabric으로 배포하기

Posted in Django, Fabric

If you looking for English version, goto Deploy Django to MS Azure with Fabric3.

이번 가이드에서는 DjangoGirls Tutorial를 Fabric으로 Azure 가상 컴퓨터(Ubuntu16.04LTS)에 올리는 과정을 다룹니다.

지금 이 글을 읽고 있는 분들은 아마 장고걸즈 워크숍에 참가해 DjangoGirls Tutorial을 따라가다 이제 배포를 해볼 단계에 도착하셨을거에요.

오늘 우리가 만들어본(만들고 있는) Django 프로젝트를 MS가 서비스하는 Azure(애저)에 배포해보는 시간을 가져볼거에요.

만약 여러분이 AzurePass를 아직 계정에 등록하지 않았다면, Azure 가입하고 AzurePass 등록하기를 먼저 진행해 주세요.

(윈도우의 경우) cmder 설치하기

윈도우에서는 gitssh등의 명령어를 cmd에서 바로 사용할 수 없어요. 그래서 우리는 cmder라는 멋진 프로그램을 사용할 거에요.

우선 cmder.zip을 클릭해 cmder를 받아주세요. (84MB정도라 시간이 조금 걸릴거에요.)

다운받은 cmder.zip 파일의 압축을 풀어주세요.(이것도 시간이 조금 걸릴거에요.) 그러면 다음과 같은 내용이 보일거에요.

여기 있는 cmder.exe 파일을 실행해주세요. 실행하면 아래와 같은 Security Warning이 뜰 수 있어요. RUN을 눌러주세요.

만약 여러분이 cmder를 처음 실행하신다면 아래와 같은 워닝이 뜰거에요. 제일 첫번째 옵션인 “Unblock and continue”를 눌러주세요.

첫 실행시 아래 화면에서 약간 시간이 걸릴 수 있어요. 다음번 실행부터는 뜨지 않을테니 잠시만 기다려주세요!

아래 화면이 뜨면 여러분이 멋진 cmder를 쓸 준비를 마친거랍니다!

장고걸즈 튜토리얼을 따라오는 중이시라면 djangogirls라는 폴더를 만드셨을거에요.

폴더로 이동하는 명령어가 cd입니다! cd djangogirls라고 입력해주세요.

이제 배포를 진행해볼게요.

Azure 가상컴퓨터 만들기

Azure Portal에 들어가 로그인 하시면 아래와 같은 화면을 볼 수 있습니다.

Azure Portal 초기 대시보드

이제 대시보드 왼쪽의 메뉴에서 가상 컴퓨터를 눌러보시면 아래와 같은 화면이 나옵니다.

이제 가상 컴퓨터를 추가해봅시다.

+ 추가 버튼을 눌러주시면 아래와 같은 수많은 선택지가 나오는데요, 우리는 그 중에서 Ubuntu Server(우분투 서버)를 사용할거랍니다. Ubuntu Server를 클릭해주세요.

우분투 서버를 클릭하면 아래와 같이 서버 버전들이 나옵니다. 우리는 오늘 Ubuntu Server 16.04 LTS를 사용할거에요.

우분투 서버 16.04를 선택하고 나면 아래와 같이 만들기 버튼이 나올거에요. 버튼을 눌러주세요.

만들기 버튼을 누르면 아래 사진처럼 기본 사항을 설정하는 창이 나올거에요. 내용을 화면 사진 그대로 채워주세요.

사용자 이름은 가이드 다음부분에서 이용할 django로 하셔야 합니다.

암호는 각자 사용하는 암호를 입력하시면 되는데요, 12자리 이상을 요구하기 때문에 약간 어려우실 수 있어요!

위치는 대한민국 중부/남부로 해주세요. (안되는 경우 아시아 남동부로 해주세요!)

이제 서버의 크기를 골라야 하는데요, 오늘 우리는 장고 서버만을 띄울 것이기 때문에 가장 왼쪽에 있는 DS1_V2를 이용할거에요.

AzurePass를 등록하면 돈을 지불하지 않아도 되니 걱정하지 마세요!

이제 다음으로 넘어가면 저장소 설정을 해야 해요. 이부분에서는 ‘관리 디스크 사용’을 ‘예’로 클릭해주세요.

그 다음으로는 아래쪽의 네트워크 보안 그룹(방화벽)을 클릭해 주세요. 클릭하시면 아래와 같이 SSH (TCP/22)만 인바운드 규칙에 들어가 있는 것을 확인할 수 있어요. 우리는 여기서 HTTP (TCP/80)을 추가해 줄 거에요.

+ 인바운드 규칙 추가 버튼을 눌러주시고 사진과 같이 칸을 채워주시고 확인 버튼을 눌러주세요.

이제 설정이 모두 끝났어요! 아래쪽의 확인버튼을 눌러주세요.

다시 한번 확인 버튼을 눌러주세요.

이제 정말로 다음 확인버튼만 누르면 서버 설치가 끝나요!

이제 조금만 기다려주시면 서버 설치가 끝난답니다!

아이콘의 설명이 Creating에서 Running으로 바뀌면 설치가 끝난거에요.

Azure 설정 확인하기

Running으로 바뀐 아이콘을 클릭해주시면 아래 화면으로 들어올 수 있어요.

애저에서 가상컴퓨터가 생기면 공용 IP 주소라는걸 하나 갖게 된답니다. ip라는 것은 서버나 컴퓨터가 인터넷에 접속할 수 있게 해주는 일련의 번호인데요, 우리는 이 ip를 통해 우리 장고 프로젝트를 서버에 올리는 작업을 진행할 수 있어요.

지금 화면에 보이는 가상컴퓨터의 ip는 52.231.30.148인데요, 이렇게 숫자로만 되어있으면 우리는 기억하기가 어려워요.

그래서 djangogirls.com와 같이 사람이 이해하고 외우기도 쉬운 도메인을 저 ip주소에 붙여줄거에요.

자, 우선 여러분의 가상 컴퓨터의 ip를 복사(Ctrl+C / CMD+C)해두세요!

무료 도메인 얻어 가상컴퓨터에 연결하기

.com, .net와 같이 유명한 도메인은 돈을 주고 사야한답니다.(1년에 만원정도 나가요) 하지만 우리는 오늘 무료 도메인을 연결해 볼 거에요.

우선 Dot.tk로 들어오세요.

이 Dot.tk에서는 .tk 도메인을 무료로 제공하고 있어요. 우선 djangogirls-seoul-tutorial이라는 이름으로 찾아볼게요. 값을 입력하고 Check Availability를 눌러주세요!

여러분은 여러분이 원하는 주소를 검색해보세요! (ex: myfirstdjango 등등)

오, 다행히 주소가 남아있어요. 이제 Get it now!버튼을 눌러 장바구니에 담아볼게요.

장바구니에 담은 도메인을 Checkout버튼을 눌러주면 아래 화면으로 넘어올거에요. Use DNS버튼을 눌러주신 후에 IP address 칸에 아까 애저 가상컴퓨터의 ip를 입력해주신 후 Continue를 눌러주세요.

Continue를 누르면 로그인 화면이 나와요. 구글이나 페이스북의 소셜 로그인을 이용할 수 있어요!

페이스북은 가끔 오류가 나기도 해요. 그럴때는 구글이나 MS Live계정으로 다시한번 시도해주세요.

로그인이 완료되면 아래와 같이 자신의 정보를 입력하는 부분이 나와요. 꼭 다 채울필요는 없어요!

주문 거래 동의 체크상자를 클릭한 후 계속 버튼을 누르면 주문이 완료된답니다! 좋아요!

Fabric3 설치하기

이제 여러분의 서버는 여러분이입력한이름.tk라는 인터넷 주소로 연결되었어요.

하지만 아직 여러분의 서버에는 아무것도 설치되어있지 않아요. 물론 장고도 설치되어있지 않아요.

이제 Fabric3이라는 멋진 자동화 도구를 통해 명령어 한 줄로(마치 startapp처럼) 진짜 서버에 배포하는 멋진 작업을 해볼거에요!

우선 여러분의 가상환경에 fabric3을 설치해줘야 해요. fabric3은 아래 명령어를 통해 설치할 수 있어요.

fabric이 아니라 fabric3입니다! 3을 빼먹지 마세요. 그냥 fabric은 파이썬2용이랍니다.

pip install fabric3

deploy.json 수정하기

이제 Fabfile for Django를 클릭해 압축파일을 받아 풀어주세요.

안에 deploy.jsonfabfile.py가 보일거에요. 이 두 파일을 여러분의 장고 폴더(manage.py파일이 있는 곳)안에 넣어주세요.

deploy.json파일 안에는 우리 서버의 정보를 적어넣을 수 있어요.

{
  "REPO_URL":"깃헙Repo주소",
  "PROJECT_NAME":"프로젝트폴더(settings.py가있는 폴더)의 이름(ex: mysite)",
  "REMOTE_HOST":"여러분이 만든 도메인주소(ex: djangogirls-seoul-tutorial.tk )",
  "REMOTE_USER":"django",
  "STATIC_ROOT":"static",
  "STATIC_URL":"static",
  "MEDIA_ROOT":"media"
}

파일에 있는 REPO_URL, PROJECT_NAME, REMOTE_HOST 부분을 채워주세요. 나머지 값은 우리가 따라한 튜토리얼에서 이미 설정되어있어요.

모든 값은 “큰 따옴표” 안에 들어가야 한다는 것을 주의하세요!

Fabric으로 서버에 올리기

Fabric을 사용하기 위한 명령어는 fab이라는 명령어입니다. 이 fab뒤에 new_server, deploy, createsuperuser등을 덧붙여 실제로 원격 서버에 명령을 내리는거에요.

서버에 처음 올릴 때는 fab new_server 명령어를 이용하세요. 파이썬3 설치부터 Apache2설치와 mod_wsgi설치까지 완료해준답니다.

fab new_server

만약 여러분이 장고 소스를 수정(커밋&푸시)후 서버에 올리고 싶으시다면 fab deploy 명령어를 이용하세요. 장고 앱을 새로 실행해주고 manage.py migrate, manage.py collectstaticfiles등의 명령을 서버에 실행해 준답니다.

fab deploy

우리가 진행하는 튜토리얼에서는 슈퍼유저 만들기 항목이 있어요. 여러분의 컴퓨터에서는 manage.py createsuperuser를 통해 만들었지만 서버에 띄운 장고에 슈퍼유저를 만들어 주려면 fab create_superuser를 이용해주세요.

fab create_superuser

짜잔!

여러분은 이제 Azure에 올라간 진짜 웹 서비스 하나를 만들었어요! 이제 여러분은 장고로 웹 서비스를 만드는 것의 처음부터 끝까지를 모두 알게되었어요! 축하합니다 :D

Python을 사랑하는, Django로 이것저것 만드는걸 좋아하는 초등교육 전공 대학생입니다.
DjangoGirls Seoul에서 활동하고 있습니다.

Read Next

배포한 Django 서비스 Exception Sentry로 받아보기