본문 바로가기
Programming

AWS Heroku 웹서비스 어떤 걸로 시작하면 좋을까?

by 하하호호 2022. 2. 5.
반응형

 

AWS EC2 vs Heroku

많은 개발자들이 자신의 웹 서비스 코드를 다 작성해놓고 테스트까지 다 돌리고 나서 고민하는게 있다. 서버를 어떤 서비스를 이용할 것인가에 대한 문제다. 우리의 선택지는 크게 3가지 정도가 있다. 서버랙을 설치해서 물리적인 서버를 구성하는 것, AWS를 이용해서 서버 셋팅을 직접 해주는 것, 마지막으로 Heroku를 통해 간편하게 서버를 돌리는 것.

 

 

직접적인 서버랙을 설치할 생각이 없다면 Cloud 서버를 이용한다. AWS은 EC2서비스를 제공한다. Heroku는 Cloud 서버에서 서비스를 추가해서 서버를 돌릴 수 있는 서비스를 제공하는 것이다. 클라우드 서버는 크게 3가지로 나뉜다.

 

 

웹 애플리케이션 개발하기 웹 호스팅 vs 서버 호스팅 차이점?

웹서버를 사용하기 위한 최적의 방법은 무엇인가? 웹 애플리케이션을 개발하고 나면, 실제 서비스를 하기 위해 서버를 구축해야 한다. 클라이언트가 서버에게 자료를 요청 하고, 서버는 요청된

incomeplus.tistory.com

 

1. 플랫폼으로서의 서비스(Platform as a Service) 서비스가 최종적으로 추가된 클라우드 서버를 말한다. Heroku는 여기에 속한다.

2. 인프라로서의 서비스(Infrastructur as a Service) 여기에 AWS EC2가 속한다.

 

Heroku의 장점

Heroku로 서버를 돌린다고 하면 서버를 셋팅하는 시간이 상당부분 줄어든다. 서버프로그램을 따로 설치할 필요도 없을 뿐더러 소켓프로그램도 필요없다. 만약 Django Framework로 프로그램을 제작해서 Heroku Git Repository에 push하면 끝이다. Heroku에서는 herokuapp.com으로 끝나는 DNS를 줄것이다. 웹애플리케이션 배포가 끝난 것이다.

 

Heroku에서 웹애플리케이션을 배포하는 과정에서 Procfile에 Django에서 사용하는 wsgi 웹 서버 인터페이스 설정을 추가해주는 것이다. python 빌드팩은 이미 Heroku에 설치되어 있기 때문에 빌드팩을 파이썬으로 설정만 해주면 서버 배포가 완료되는 것이다. 

 

 

 

 

[Web app 배포 HEROKU] HEROKU 기본 셋팅 및 Django app 배포하기

서비스를 배포하기 위해서는 서버환경이 필요하다. 웹사이트가 실행될 수 있는 컴퓨터 하드웨어(IaaS)를 사용하거나, 플랫폼 형식으로 호스팅 서비스를 제공 하는 (PaaS)를 사용해야 한다. 물론 호

incomeplus.tistory.com

 

AWS EC2의 장점

반면 AWS EC2에서 서버를 돌리기 위해서는 먼저 서버 컴퓨터를 할당받아야 한다. 우분투 서버를 할당받았다고 하면 Git을 설치해주고, Nginx, uWSGI 소켓프로그램도 설치해줘야 한다. 기타 필요한 프로그램들을 다 설치해주고, 프로그램에서 만든 requirements.txt에 있는 모듈들까지 다 설치해주고, 등등 설치해줘야 하는 내용이 굉장히 많다.

 

한 마디로 복잡하다는 것이다. Heroku에서 서버 배포하는 것 만큼 빨리 진행하기 힘들다. 최소 하루는 배포일정을 잡아야 할 정도로 챙겨야 할 내용들이 많아진다. 

 

 

 

Django AWS 배포하기 1

step 1 기존 프로젝트 정리 pip freeze > requirements.txt 현재 프로젝트에서 필요한 모듈들을 requirements.txt 파일에 저장한다. 작업을 완료한 프로젝트 파일을 Git에 push해준다. AWS를 통해 배포하는 작업..

incomeplus.tistory.com

 

 

AWS EC2 vs Heroku

 

그럼에도 불구하고 우리가 생각해봐야 할 문제는 3가지다. 본인의 프로젝트 상황에 맞게 Heroku를 사용할지 AWS EC2를 사용할지 결정하면 된다. 시간, 자유도, 가격 면에서 두가지 서비스를 비교해보자.

 

자유도

AWS EC2는 내가 직접 서버를 할당받아서 사용한다. 즉, 파이썬의 버전을 어떤걸로 할지 결정할 수 있다. 그럴일은 없겠지만 파이썬 2.x를 사용해야 하는 경우도 AWS EC2에서는 가능하다는 것이다. 반면 Heroku에서는 불가능하다. 이미 빌드팩이 설치되어 있는 파이썬의 버전을 사용해야 한다. 추가적으로 설정을 더 해줘야 하는 프로젝트의 경우 AWS EC2 압승이다.

 

가격

Heroku를 사용해본 사람은 알것이다. Heroku에서 제공하는 database 서버가 AWS로 되어 있다. 즉 Heroku도 AWS위에서 돌아가는 서비스일 뿐이다. AWS EC2를 직접 사용하는 것보다 절대 저렴할 수가 없다는 것이다. 심지어 AWS EC2는 1년 Free Tier가 있기 때문에 가격이 부담되는 학생, 프로그램 초보자들에게는 공부도 할겸 AWS EC2가 압승이다.

 

시간

만약 프로젝트를 업로드하고 배포하고 MVP를 뽑아내는데 시간이 촉박하다면 당연히 Heroku를 통해서 프로젝트를 배포해야 한다. 먼저 Heroku를 통해서 클라이언트에게 본인의 프로젝트를 시연해볼 수 있다. 반면 AWS EC2로 서버를 배포하기 위해서는 많은 시간이 소요된다. 만약 시간이 부족하다면 Heroku 압승

 

 

 

반응형

댓글