저가형 웹호스팅 위에서 php, mysql을 사용하다가 성능(페이지 로딩 등..)에 만족하지 못하고 대대적인 마이그레이션은 진행하게 되었습니다. 성능에 문제가 된 부분은 몇 가지가 있는데 최근 늘어난 방문자 수도 이유였지만 AngularJs를 적용하면서 데이터 조작의 방식이 서버렌더링에서 클라이언트 방식의 많은 api 호출이 필요했기 때문입니다. 비동기 방식에 좀 더 유리한 서버 환경이 필요하게 되었죠. 그래서 최종 구축된 새로운 서버 환경은 다음과 같습니다.

  • Cloud 방식의 AWS 아마존 웹서비스 사용
  • Python 사용
  • Flask 프레임워크
  • wsgi 미들웨어 구축
  • nginx 웹서버

기존에 경험했던 것들이 전혀 없는 완전히 새로운 환경으로 이전하면서 수 많은 시행착오가 있었지만 현재는 잘 동작하고 있습니다. 그럼 아래부터는 그 과정들입니다.



# 새로운 서버환경 구축 및 이전하기AWS는 다양한 방식으로 어플리케이션을 구동할 수 있는데 저는 가장 일반적인 EC2 서비스를 사용하였습니다. 먼저 인스턴스를 하나 만들면서 원하는 환경을 구축합니다. 가장 많이 사용되는 Ubuntu가 일반적이나 상황에 따라 Amazon Linux 역시 고려대상이었습니다. 다만 Amazon Linux를 선택할 경우 개발환경의 리눅스 역시 동일하게 맞추어줘야 합니다.

! 리눅스에 nginx를 설치 및 설정하는 방법
가장먼서 서버를 구동하기 위해서 리눅스 환경에서 nginx를 설치, 실행하는 방법을 알아야합니다. 아래 링크를 참고하시기 바랍니다.
https://webisfree.com/2017-07-04/linux-환경에서-nginx-웹서버-설치-및-실행하기



# Python 및 기타 개발환경 구축하기우선 가장 기본이 되는 Python을 설치하고 어떤 프레임워크를 사용할 것인지 결정해야합니다. Python의 경우 프레임워크가 워낙 다양하고 어플리케이션의 용도 및 필요에 맞는 프레임워크를 선택해야합니다. 아무래도 가장 알려진 Python 프레임워크는 Django이나 API 위주의 비교적 가벼운 프레임워크인 Flask를 선택하고 설치하였습니다.

Flask 사용 예제보기 >
https://webisfree.com/2017-05-25/파이썬-flask를-사용한-간단한-예제보기

​​​​​​​

# Database의 구축기존 RDBMS에서 NoSQL로 바꾸길 원했으며 이에 MongoDB를 설치 후 마이그레이션하였습니다.