본문 바로가기
개인작업/정리

프로젝트 환경 및 배포 클라우드 모색 삽질기

by 양히◡̈ 2024. 6. 12.

사이드 프로젝트를 시작하려고 한다.
기획자도, 퍼블리셔도 없이 고작 지인 디자이너 한 명과 무작정 스타트를 끊었는데, 아무래도 대부분 SM 프로젝트 위주로 실무를 경험했다보니 프로젝트 구축 경험이 없어서 프로젝트 환경을 정하는 것부터 애를 먹었다..

데이터베이스

우선 진행하려는 프로젝트의 성격 상 관계형 데이터베이스가 필수적이었으므로 가장 무난한 OracleDB, MySQL/MariaDB, PostgreSQL 중에 고민해보았다. 다행히 실무에서 모두 사용해본 경험이 있기 때문에 무얼 선택해도 크게 어려울 것 같진 않아서 클라우드 서비스를 정하고 호환에 따라 정할까 싶었지만, 오라클 클라우드를 사용할 것도 아니기 때문에 사용할 때도 가장 편했고 가장 최근 회사에서 사용하기도 했던 MariaDB로 어느정도 정해졌다.

프로그래밍 언어와 프레임워크

회사에서는 줄곧 Java와 Spring(Spring Boot)으로만 백엔드 개발을 해왔었는데, 최근(이라고 하기엔 뭐하지만...) node.js의 인기도 어느정도 올라오면서 관심이 생겼다. 어짜피 웹 개발자로 발담고 있는 이상 언젠간 실무에서도 개발할 일이 생길 거기도 하고, 대기업보단 스타트업에 더 잘 맞는다고 느껴서 이 참에 제대로 써보고 싶었다.
보통 node.js는 프론트엔드도 javascript 기반 프레임워크를 꼭 쓰기 때문에 프론트엔드가 좀 고민이었는데, 마침 이번에 투입된 프로젝트에서 vue.js 3를 사용해서 어느정도 학습이 된 것도 있었고 react보단 좀 더 html 친화적이라고 느꼈기 때문에 비교적 쉽게 배울 수 있는 vue.js를 선택했다.

프로젝트 배포

자 이제 대망의 배포 클라우드 찾기... 내가 만들 프로젝트는 더더욱 배포가 필수적인 프로젝트였기 때문에 git repository를 생성하기도 전에 배포할 클라우드부터 정하고 갈 생각이었다. 사실 프로그래밍 언어나 DB에 대해서는 고민조차 깊게 하지 않았는데 여기서 꽤 많은 시간과 노력이 할애되었다.
우선 직장을 다니면서 가볍게 내가 직접 사용할 서비스를 만들어 보자는 의의와 학습 개념의 프로젝트였기 때문에 큰 돈을 들여 서버를 유지해오고 싶진 않았다. 그래서 프리티어의 프로젝트 위주로 여러가지 탐색해보기 시작했다.

클라우드타입(cloudType)

처음으로 들여다본 곳은 클라우드타입. 프리티어가 1년 정도의 기간이 정해져 있는 다른 플랫폼과는 달리 용량 제한은 있어도 기간 제한이 없는 게 좋았고, 한국에서 만든 서비스다보니 한국어 매뉴얼이나 지원도 아주 잘 되어있었다. 무엇보다 github와의 호환이나 git actions를 이용한 CI/CD 또한 굉장히 잘 되어 있었다. 실제로 클라우드타입 템플릿으로 node.js로 구성된 git repository를 바로 생성하고 git actions를 이용해 자동으로 배포되도록 하는 작업이 불과 몇 시간도 안 되어 빠르게 가능했고, 그 과정에서 약간의 어려움이 있었지만 디스코드를 통해 밤늦은 시간에도 실시간으로 도움을 받아 해결할 수 있었다.
하지만 역시 프리티어에게 완벽한 플랫폼은 있을 수가 없는 건지... 다음날 배포 성공한 프로젝트에 다시 접속해보니 서버가 꺼져 있었다. 1GB의 용량 제한만 있는줄 알았는데 매일 새벽이 되면 서버가 자동으로 꺼진단다..ㅠㅠ 거기다 생각해보니 DB와 스토리지도 필요한데 이것까지 다 구축하기엔 컨테이너가 모자라는 문제도 있었다.
아주아주 간단한 프로젝트를 만들거나 하비티어(월 5,500원) 결제를 할 사람들에겐 정말 괜찮은 플랫폼이겠지만 우선 프리티어로 쓰다가 이후 어느정도 개발이 되고 나서 유료를 사용할 계획이었던 나에겐 정말 쓸모가 없었으므로 아쉬움을 뒤로하고 다른 서비스를 알아볼 수밖에 없었다.

오라클 클라우드

오라클 클라우드는 프리티어에게 관대해서 무료로 서버를 구축하고자 하는 사람들에게 꽤나 알려져 있었다. 하지만 이미 몇 년 전부터 이슈가 있었다. 가입하기가 굉장히!어렵다는 것... 심사가 까다롭다거나 선착순이라거나 그런 것도 모르고 그냥 냅다 오류를 뱉어 버린다. 나도 가입 이슈를 겪어 이것저것 나와 같은 사례를 찾아보니, 심지어 오라클 측에서는 문제에 지원을 받고자 했던 여러 사람들에게 냉대한 응답을 주고 있었다. 거기다 잘 서비스되던 프로젝트가 하루아침에 이유도 모른 채 삭제된 이슈도 있었다고 한다.
이런 사례들을 보고 오라클 클라우드는 아예 머릿속에서 지워버렸다.

AWS

그렇게 돌고 돌아 AWS.... 사실 이번 프로젝트는 인프라 보다는 개발에 더 힘을 싣고 싶었으므로 Iaas보다는 Paas를 선호한 것도 있었지만, 다른 선택지가 모조리 소거되어 결국 AWS를 선택할 수밖에 없었다. EC2로 우분투 인스턴스를 생성하여 배포하고, 첨부파일을 업로드할 S3와 DB 관리를 위한 RDS까지 사용해보려고 한다. 이참에 AWS 공부도 같이 하지 뭐...ㅠㅠ 이번 프로젝트는 공부할 게 꽤 많아서 얼마나 길어질지 걱정이다.

'개인작업 > 정리' 카테고리의 다른 글

macOS Catalina(M1,M2) 환경에서 git 설치  (0) 2023.03.22
[Node.js] 환경구축(VS Code/Express)  (0) 2023.03.03
학습계획  (0) 2023.03.03

댓글