내가 사용하는 서버 설정 순서(Ubuntu, Nginx, Django)
아마존 라이트세일을 자주 사용한다. 그 이유는 저렴한 플랜이 있고, 한국 리전이 있기 때문이다. 최저 플랜 가격은 월 3.5달러이다. 성능이 좋은 편은 아니지만, 소규모의 텍스트 기반 웹사이트 운영에는 문제없다.
내가 사용하는 서버 구성은 Ubuntu, nginx, Django, postgresql 이다. 라이트세일 인스턴스 생성 시에 우분투로 생성한다. 그 후 nginx와 postgresql을 설치하고, pyenv를 깃허브에서 받아서 설치한다. pyenv는 서버 상에 여러 버전의 파이썬을 설치하고, 선택할 수 있게 해준다. 또한, 가상환경을 쉽게 구성할 수 있다. pyenv로 가상환경을 만든 후, pip로 django 관련 패키지를 설치한다. nginx와 uwsgi 연동을 해서, django와 통신할 수 있게 설정한다. 그리고 https로 접속할 수 있게 let’s encrypt 관련 패키지도 설치하고, ssl 인증서를 설치한다. 이 정도하면 기본 서버 설정은 끝난다.
그 후 postgresql 데이터베이스와 사용자 계정을 생성하고, django 프로젝트의 데이터베이스를 마이그레이션한다. let’s encrypt 인증서는 90일 밖에 사용할 수 없기 때문에 90일 전에 인증서 갱신을 알아서 처리할 수 있도록 crontab에 ssl인증서 갱신 관련 스케줄을 추가해준다.
아마존 라이트세일은 서버 전체를 백업할 수 있는 스냅샷 기능이 있어서, 나중에 트래픽이 증가해서 현재 플랜에서 서버 운영이 어려워진다면 스냅샷을 이용해서, 상위 플랜으로 간단하게 업그레이드할 수 있다.