DigitalOcean에 Django 프로젝트 배포하기 (1)

2020. 03. 05 IT/컴퓨터 > Django

새로 블로그를 시작하면서 호스팅을 디지털오션으로 옮겼다. 이전 버전 블로그는 pythonanywhere.com 에서 배포를 했었다. pythonanywhere는 서버쪽 세팅을 알아서 다 해 주기 때문에 특별히 신경쓸 것 없이 하라는 대로 설정만 해 주면 배포가 가능하다. 초보자로서 시행착오를 많이 겪지 않고 처음 장고 프로젝트를 배포하기에 좋았지만, 조금 더 직접 서버 관련된 세팅을 공부해 보고 싶기도 했고, 다른 호스팅 서비스들은 어떤지 궁금하기도 해서 새 프로젝트는 새로운 곳에서 배포를 해 보기로 했다. 

DigitalOcean 은 클라우드 서비스 중에서도 개발자들을 위해 좀 더 특화된 곳이라고 하는데, 아마존이나 구글, 마이크로소프트같은 대형 사업자는 아니지만 나름 입지를 갖춘 곳이다. 

이번에도 복기 및 향후 프로젝트 배포를 위해서 참고할 겸 DigitalOcean 에서의 Django 프로젝트 배포 과정을 정리해 보았다.

 

#1. DigitalOcean.com 에 접속하면  보이는 화면. 별도 계정을 만들거나 구글이나 GitHub 계정에 연동해서 사용할 수 있는데, 지금 프로젝트를 진행하고 있는 GitHub 계정에 연동된 계정을 만들어 접속하였다.

 

#2. GitHub 계정을 이용해서 로그인한 경우에는 자동으로 github 계정 이름이 프로젝트 이름으로 뜬다. 프로젝트는 필요하면 새로 만들어주어도 된다.

디지털오션에서는 서비스하는 독립된 하나의 클라우드 서버를 Droplet 이라고 부른다. 첫 화면에 보이는 왼쪽 메뉴 바에서 droplet을 선택하면 현재 만들어진 Droplet 현황을 볼 수 있고, 아직 하나도 만들어지지 않은 경우에는 새로 만들 수 있는 화면이 나온다.

 

#3. 현재 이미 만들어 둔 Droplet들이 있는 경우 관리할 수 있는 메뉴가 뜨지만, 하나도 없는 경우 새로 만들 수 있는 메뉴가 보일 것이다. 또는 오른쪽 위의 초록색 Create 버튼을 이용해서 만들 수도 있다.

 

 

#4. 서버를 구동하기 위해 원하는 운영체제를 고를 수 있다. 선호하는 운영체제가 있다면 선택해 주면 된다. 가장 많이 쓰는 Ubuntu 18.04 버전을 선택하였다.

 

 

#5. 이용 요금제를 선택해야 한다. 아쉽게도 무료 체험판 서버는 만들 수 없다. Pythonanywhere 같이 간단히 시험할 수 있는 무료 서버를 구동할수 있으면 좋을텐데. 일단 세팅을 해 보고 되는지 안 되는지 확인은 하고 실제 서버를 구동할 수 있게 하면 좋을것 같다.

하지만 기본 플랜은 월 5달러이니 큰 부담은 없다. 그것도 시작하자 마자 5달러가 결제되는 것이 아니고, 리소스 사용분만큼만 조금씩 누적되어 금액이 올라간다. 중간에 droplet 을 없애거나 하면 그 때까지 쓴 만큼만 비례해서 계산되는것 같으니 잠깐 실험해 보는 정도로는 1~2달러 아래로 해결이 가능할 듯하다. 

어쨌든 결과적으로 세팅이 매우 쉽고 매끄럽게 돼서 결국은 돈 내고 실제 서버를 돌리게 될 것같긴 하다. 별 시행착오 없이 쉽게 진행이 된다. 가장 저렴한 매월 5$ 짜리 플랜으로도 간단한 블로그를 운영하는 데는 아무 문제 없으니 마음에 든다면 5달러짜리로 시작하면 되겠다.

 

아래쪽에 block storage 를 추가할 수 있는 옵션이 있는데, 당장 저장소 공간이 부족할 일은 없으므로 나중에 해도 될 것 같다.

 

 

#6. 데이터 센터는 각각 테스트해보지는 않았지만 싱가폴이 거리가 가까워 조금이라도 전송 속도가 빠르지 않을까 싶어 싱가폴로 선택해 보았다. 

 

#7. 서버 관리자 인증 방법을 선택할 수 있는데, 보안상 SSH key 를 강력하게 추천한다고 하지만 당장은 해킹당할 내용도 없으므로 password 방식을 선택해도 무방하지 않을까 싶다. SSH key 사용하는 법은 나중에 배우기로...새로 배울것이 많다.

 

 

#8. 동시에 여러 개의 droplet 을 생성할 수도 있다. 지금은 하나만 선택.

Hostname 은 대시보드에 표시되는 이름인데, 그냥 알아보기 쉬운 이름으로 임의로 지정해 주면 된다. 서버 설정등에 사용될 일은 없는 완전히 독립된 이름이다.

그 아래로 tag 지정을 해주거나 백업을 활성화시킬 수 있는 메뉴도 있는데, 당장 하지 않아도 상관 없다.

 

설정을 다시 확인해 보고 맨 아래의 Create Droplet 버튼을 눌러 주면 droplet 이 만들어진다.

 

 

#9. 만들어진 droplet 을 클릭해보면 기본 정보가 나오는데, 지금은 다른 것은 건드릴 필요 없고 IP 주소만 알고 있으면 된다. IP 주소 위에 마우스를 가져가면 클릭해서 바로 복사할 수 있도록 되어 있다.

 

이후의 설정은 만들어진 서버에 SSH 콘솔을 이용해서 접속한 후 진행해 주게 된다. 

Droplet 화면의 오른쪽 끝에 있는 Console 을 클릭하면 웹 상에서 바로 접속되는 콘솔 창이 뜨니 이것을 이용해서 작업해도 된다. 그렇지만 써 보니 동작이 약간 버벅대는 것이 쾌적하지가 않아 별로 추천하고 싶지는 않다. PuTTY 등의 전용 SSH 클라이언트를 이용하는 것이 좋을 것 같다. 

다만 회사에서 PuTTY를 이용해 Droplet의 IP에 접속하려고 하니 방화벽에 막히는지 접속이 안 되었는데, 이런 경우에 웹 콘솔이 대책이 될수는 있겠다. 하지만 회사에서는 할 일을 하자..

 

서버 설정은 다음편에.

DigitalOcean에 Django 프로젝트 배포하기 (2)



최근 글 목록