현재 운영은 아니지만 사이드 프로젝트로 제작하고 있는 프로그램을 Iwinv에서 AWS Lightsail 과 EC2로 이전하고자 한다.
처음에 Iwinv를 택했었던 이유
처음 사이드 프로젝트를 시작할 때 세가지 착오가 있었다.
1. 빠르게 제작할 수 있을 것 같다.
2. 값이 저렴한 서버로도 충분할 것 같다.
3. 빠르게 오픈해서 광고수익으로 서버비용보다 더 수익을 벌 수 있을 것 같다.
위 예상에 따르면 굳이 고환율시기에 AWS EC2나 Lightsail을 쓰지 않아도 될 것이라고 생각했고
Iwinv가 서버적인 측면에서 확실하게 AWS보다 저렴하다.
이제와서 AWS로 이전하려는 이유
위 세가지 착오는 나로하여금 오버엔지니어링을 야기하게 하였다.
사실 오버엔지니어링이라고 할 수도 있고 아니라고 할 수도 있을 것 같다.
다만 확실한건 개발서버 치고는 과하다.
첫번째 착각
1. 빠르게 제작할 수 있을 것 같다.
나는 3개의 가상서버를 운영을 하게 되었다.
1번: 프론트엔드 API서버
2번: 백그라운드 서버
3번: 데이터베이스 서버
그렇다 개발서버 치고 과하다.
금방 만들 수 있을것같다라는 생각에 서버 세팅을 굳이 다시 하고싶지 않았던 나는 미리 분리시켰다.
두번째 착각
2. 값이 저렴한 서버로도 충분할 것 같다.
처음에는 저렴한 서버(1core, 1GB ram)로 세팅을 하고, 백그라운드 서버 작업을 진행하다 보니, 데이터 후처리작업을 하는데에 메모리가 예상보다 많이 사용되었다.
또한 속도적인 측면까지 고려하게되다보니 수평적인 작업(Concurrency)을 사용하니 배로 메모리를 사용하게 되었다.
조금씩 서버비용이 증가하더라..
세번째 착각
3. 빠르게 오픈해서 광고수익으로 서버비용보다 더 수익을 벌 수 있을 것 같다.
광고를 달기에 먼저 개발을 해야하고, 쉽고 빠른 개발은 없더라.
처음에는 프론트엔드, 백엔드 개발을 동시에 혼자 진행을 했었다.
실제 백엔드 개발자인 나는 데이터 후처리에서 작업해야할 내용도 무척이나 많은데, 프론트엔드를 무려 JQuery로 작업을 하려니 이게 정말 쉬운일이 아니였다.
특정 기능 하나를 구현까지는 하였지만, 업그레이드나 유지보수에서 무척이나 취약했다.
또한 페이지 하나만으로 AdSense를 신청한들 받아들여질 리 없었다.
시간이 늘어지기 시작했다.
논외지만, 운이 좋았던 덕분에 뜻이 맞았던 프론트엔드 개발자분과 협업을 하게 되었다.
그분께서 프론트엔드부분을 전적으로 맡아 NextJS를 활용하여 작업해주시기로 하였고,
덕분에 나는 전적으로 백엔드에만 집중을 할 수 있게 되었다.
추가적인 이유
Iwinv가 싸지만 기능적인 측면에서 부족한 부분이 너무 많다
예를 들어 가상서버, DB의 서버 Metric 정보를 AWS처럼 볼 수 없다.
이말은 직접 구현을 해야한다는것이다.
DB서버의 경우에는 DBMS(링크)라는 서비스를 활용했는데 기똥찼다.
재시작이라는 기능도 없고 Storage 추가도 안된다. 그리고 DB 스펙 업그레이드/다운그레이드는 하루에 한번만 가능하다.(???)
방화벽 정책(AWS- Security Group)추가적으로 말로 표현못하는 불편함들이 많았다.
비용적인 측면에서는
Iwinv 가상서버2대 + DB서버1대 = AWS 가상서버2대
이다.
하지만 아래의 항목을 고려해보면 나로서는 Iwinv를 지속적으로 사용 할 이유가 없다고 판단했다.
- 서버 Metric 정보를 쉽게 볼 수 있는점
- 내가 다니는 회사에서 AWS를 사용하고 대부분 업체에서는 AWS를 사용하는점
- AWS 인프라에 따른 기능 등의 확장성도 AWS가 훨씬 뛰어난점
- 비용적인측면에서 비쌀 수 있으나, 중고나라에서 20% 가량 저렴하게 AWS Credit을 구매할 수 있는점(중요 - 이렇게 되면 정말 Iwinv를 쓸 이유가 없다.)
- 11월달부터 iwinv 비용 인상(링크)
- 동일 가격 서비스에서 기본제공 트래픽의 차이
* AWS: 월 2~3TB(추가시 1GB당 $0.126 = 환율 1400원 계산시 176원)
- 여러개의 Lightsail 서버를 운영중인 경우 사용가능 트래픽이 합산된다.(참고)
* Iwinv: 월 600GB(추가시 1GB당 70원)
현재 개발중인 서버에 AWS Code Build 와 Code Deploy을 활용하여 CI/CD또한 구현해보고자 한다.
다음에는 어떻게 이전할지에 대해 작성해보도록 하겠다.
'서버 > AWS' 카테고리의 다른 글
AWS EC2 스토리지 용량 추가하기(EBS Volume) (0) | 2022.11.12 |
---|---|
[NestJS]AWS CodePipeline CodeBuild CodeDeploy 를 활용하여 CI/CD 구축하기(작성중) (0) | 2022.11.06 |
Ubuntu 22에 CodeDeploy 에이전트 설치 문제 해결하기(Ruby 3) (0) | 2022.11.05 |
개꿀 Lightsail과 EC2와의 Private ip로 내부 통신하기(VPC peering) (0) | 2022.11.05 |
Iwinv 에서 AWS Lightsail 과 EC2로 서버이전하기2 (0) | 2022.11.05 |
댓글