많은 개발자들은 반복적인 회사 업무에 만족 하지 못하고, 토이 또는 사이드라고 불리는 프로젝트들을 한다. 하지만 토이 프로젝트를 하기 위해서는 "$" 돈이 필요 하다.
Why? 단순이 로컬 환경에서 구축하고 혼자만 보기 위함이라면 문제가 없지만 그렇지 않다면, FE앱, BE서버 DB, 기타 인프라에 대한 유지 비용이 필요하다. 이러한 비용들에 대한 최소 한의 절감과 극강의 가성비 위한 방법에 대해 고민을 해봤다.
React 웹앱, Nest,js 서버, mysql 디비가 필요하다는 가정을 해보겠다. 가장 일반적인 방법으로는 AWS EC2라는 클라우드에 컴퓨터를 빌려서 React, Nest, mysql를 모두 돌리는 방법이 있다. 첫 가입 시 12개월 동안 최하 옵션을 무료로 이용 가능하다. 하지만 이 방법은 성능적으로 매우 낮은 퍼포먼스를 보여줄 것이다. 그럼으로 다음에 나오는 방법들을 추천한다.
FE React App
AWS S3의 정적 웹 호스팅 기능을 이용하고 CloudFront의 DNS 기능을 이용한다면 유지 비용이 거의 0원에 수렴하는 것을 기대 할 수 있다. 또한 토이 프로젝트의 사이즈를 확장하게 되어도 유연하고 자동적으로 대응 할 수 있다.
React App을 Serverless Framework를 사용해서 S3에 CloudFront를 적용하여 매우 쉽게 배포하는 방법
BE Nest.js Server
AWS Lambda와 API GateWay를 이용한다면 Nest.js는 물론이고, Express, Graphql Server 심지어 Python, NodeJS, Go등으로 작성된 API서버를 구축 할수 있다. 물론 토이프로젝트 수준의 사용량에서는 1달에 1$도 비용이 발생하지 않음을 기대 할수 있다.
NestJS Lambda에 배포하기
RDB
안타깝게도 RDB는 내가 찾아본 결과로는 무료 또는 가성비로 이용 할수 있는 서비스가 없다. (만약 좋은 방법을 아시는 분은 공유 부탁드려요...) 하지만 AWS는 12개월 동안 무료로 RDS를 이용 하게 해준다.
위와 같은 방법들은 대부분 Serverless와 관련된 서비스들이다. 사용 한만큼만 지불하고, Full Management한 AWS의 서비스들을 조합 한다면 토이프로젝트의 유지 비용을 절감 할수 있다.
오라클 프리티어 이용하시면 DB 무료 가능합니닷..