본문 바로가기
백엔드

AWS에서 GCP로 인프라 옮기기 #1 - 다양한 무료 클라우드 서비스들

by 수박통통 2023. 2. 7.

🚢배경

더보기

현재 잔잔하게 진행 중인 토이프로젝트에서 서버를 옮길 일이 생겼다..!

AWS 프리티어를 쓰고 있었는데, 아니 벌써 이 프로젝트를 시작한 지 어느덧 1년이 된 것이다.

 

처음 생각은...

그냥 쓸까...? 뭐.. 한 20000원 정도면 괜찮을 것 같은데...
이미 CI/CD 포함해서 다 연결해 놨는데 이걸 언제 또 옮겨? 
다시 아이디 하나 파서 프리티어 다시 한다고 해도, 1년 후면 또 옮겨야 하는 거잖아? 
물론 이 프로젝트가 평생 갈 거라고 생각은 안하지만, 지속적으로 옮길 가능성이 있다는 게 좀 그런데... 그리고 그때마다 계속 계속 인프라 옮겨야 하고.. 이러면 어차피 옮길 건데 인프라 구축 왜 해?라는 생각이 들 것 같아...
그리고 어느 정도여야 돈이 이 정도 나오는지 아는 것도 나에게 서버개발자로서 도움이 되지 않을까?

였다! 그래서 그냥 돈을 내자!!라고 생각을 하며 기획자님과 같이 의논을 해보았다.

 

하지만 기획자님은 6명이서 같이 하는 프로젝트고, 수익이 나오지 않는 프로젝트이기 때문에,

아무리 같이 돈을 나눠 내더라도 조금씩이나마 매달 돈이 나가는 게 모두에게 조금 부담이 되지 않을까?라는 생각이셨다!

 

그제야 내가 나만 생각했구나.. 조금의 돈이라도 계속적으로 내는 건데!!! 그거 귀찮다고..!!!ㅠㅠㅠㅠ

라는 생각이 들어,

1. 한 번 구축하면 계속 쓸 수 있고,

2. 돈이 많이 들지 않으며,

3. EC2 같은 서비스뿐만 아니라 전체적으로 CI/CD관련 인프라도 지원하며,

4. 레퍼런스가 많이 존재하는

클라우드 서비스를 찾기 시작했다.

 

AWS를 제외한 무료 클라우드 서비스들 비교

그래서 생각한 클라우드 서비스들은

GCP(Google Cloud Platform), Heroku, Oracle Cloud였다.

결국 이 중에서 GCP로 결정했으며, 나머지들을 왜 선택하지 않았는지에 대해 살짝 말해보겠다.

 

먼저, 내가 AWS 프리티어에서 쓰고 있던 큰 기능들은 아래와 같다.

  • EC2
  • S3
  • RDS
  • CodeDeploy

위에서 언급한 클라우드 서비스 셋 모두 EC2와 같은 Compute 기능은 제공을 하고 있었다.

또한 GCP는 위에서 언급한 기능들 중 RDS를 제외한 모든 것을 무료로 제공하고 있다.

EC2가 Compute Engine에 해당하고, S3가 Cloud Storage에 해당, CodeDeploy가 Cloud Build에 해당한다. 하지만 RDS에 해당하는 Cloud SQL은 무료로 지원하지 않는다.(GCP 프리티어에서 6개월 동안 쓸 수 있는 300$를 제공하지만, 이것은 결국 기간제라 생각하지 않겠다)

GCP 무료 제공 목록

 

 

 

 

그다음으로 Oracle Cloud는 EC2에 해당하는 컴퓨트와 S3에 해당하는 오브젝트 스토리지를 제공한다. 하지만 RDS에 해당하는 MySQL HeatWave와 CodeDeploy에 해당한다고 추정되는... Visual Builder Studio(가장 비슷한 기능이라고 생각하지만, 확실하지가 않다) 또한 지원하지 않는다.(이 또한 GCP와 마찬가지로 30일의 무료체험기간 동안의 크레딧으로 제공하지만 기간제라 생각하지 않겠다) 

프리티어 목록
프리티어

 

 

 

마지막으로는 Heroku.

Heroku는 Java, Node.js, Python 등 여러 언어를 지원하는 클라우드 Paas로, 일반적으로 앱을 개발하거나 구현할 때, 관련 인프라를 만들고 유지보수하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공한다. 하지만 여긴 기본적으로 무료 Compute 자체가 500MB까지를 제공한다. 하지만 현재 프로젝트는 AWS EC2에서 6.5 GB를 사용하고 있다. (아니 근데 왜 이렇게 크지? 쓰읍.. 이것저것 시행착오를 겪으며 해놓고 안지우고를 많이 하다 보니 그런가...) 

그래서 Heroku는 용량을 본 순간부터 사용하지 않기로 했다. 

 

현재 EC2에서 쓰고 있는 용량은 6.5G

 

 

 

그래서 초반 탈락한 Heroku를 빼면, Oracle Cloud와 GCP가 남는다. 여기서 GCP를 결국 선택하게 되었는데, 그 이유는 GCP가 아무래도 MySql를 제외한 기능들을 무료로 제공하고 있기 때문이고(NoSql은 무료제공), 레퍼런스가 Oracle Cloud보다 훨씬 많기 때문이다. 하지만 자세히 좀 더 살펴보면 Oracle Cloud가 용량면에서 굉장히 압도적이기 때문에 내가 MySql만 고집하지 않고, 인프라를 옮기는 게 급하지 않고, 좀 더 인프라에 대해 익숙하고 잘 알았다면 Oracle Cloud을 선택했을 것 같다. 이걸 지금 쓰는 지금도 고민되는 부분이지만, 나중에 이 프로젝트가 좀 더 커지면 그때 Oracle Cloud를 사용해 볼 것 같다. 

 

 

그래서 결국 DB를 제외한 기능은 GCP를 쓰기로 결정!!!

DB는 굳이 따로 서비스를 쓰지 않고, 서버에 따로 만드는 것도 생각을 해봤는데, 지금보다 더 아무것도 모를 시절에.. EC2에 mongoDB를 깔고 운영을 해본 적이 있었다. 처음엔 문제가 없다가 중간에 한 번 DB가 털리기 시작하더니, 그 뒤로는 비번을 바꿔도 바꿔도 계속 털렸던 적이 있어 꺼리게 되었다. 그런데 클라우드 DB는 알아서 보안까지 해주기 때문에 쓸 이유가 충분하다고 생각해 포기할 수가 없었다.

 

 

AWS RDS vs GCP Cloud SQL 가격 비교

따라서 나는 그다음으로 중요한 AWS RDS를 GCP Cloud SQL과 비교를 해보았다. 

기준도 모르겠고 그냥 너가 알아서 비교해주면 안될까? 너무 복잡하다구!! 하는 마음에 chatGPT에 물어봤던 나..ㅎ

 

먼저 내가 기존에 사용하는 AWS 프리티어가 제공하는 RDS의 스펙에서

내가 안 쓰는 설정들을 없앴다고 생각하고

요금을 계산해보자면,

 

AWS RDS

리전 : 서울
인스턴스 개수 : 1개
db.t2.micro(vcpu : 1, memory : 1GiB)
사용률 : 100%(프리티어가 월 730hours)
배포옵션 : Single-AZ
요금모델 : 온디멘드
여기까지 비용 18.98USD

 

RDS 프록시 : X
스토리지 : 범용ssd(gp2)
스토리지 20GB(ex. 5GB일 경우 0.66USD) 
이 부분은 2.62USD

백업스토리지 : 20GB

이 부분은 1.90USD

총 23.50USD

참고 : AWS 가격계산기 

 

AWS Pricing Calculator

 

calculator.aws

 

그렇다면 최대한 비슷한 조건으로 GCP Cloud SQL에서는 어떨까?

GCP Cloud SQL

인스턴스 개수 : 1
db-f1-micro (vcpu: shared , memory : 0.6) (가장 싼 걸로 했다)
리전 : 서울
스토리지 : ssd
스토리지 20 GIB(5GB 일경우 설정불가능! 최소 10GB)
백업 20GIB
730hours

총 16.50USD(스토리지가 10GIB일경우는 총 14.29USD)

 

참고 : Google Cloud 계산기

 

Google Cloud 가격 계산기

개수, 사용량, 서버 성능을 기준으로 Google Cloud를 통해 제공되는 제품의 커스텀 가격 견적을 만들어 보세요.

cloud.google.com

 

물론 위에서 리전을 미국 리전으로 하고, 스토리지나 백업을 조절하면 지금보다 가격이 더 낮아질 것이다.

하지만 우선적으로 기존 사용하던 RDS를 그대로 사용할 것 or 다른 DB 를 생각했기에 프리티어를 기준으로 했다.

우선 이 부분을 보면 내가 추정한 기준에서는 Cloud SQL 이 좀 더 싼 것을 볼 수 있다. 

 

아무튼 그래서 Cloud SQL을 사용할 것이냐구?

그건 아니다..

 

위 두 개보다 클라우드 DB 싼곳이 많기도 하고 RDS 만 한다면 일년에 한번씩 마이그레이션은 괜찮을 것 같기도하고..

해서 이 부분은 팀원들과 상의해서 결정할 것 같다! 

 

 

오늘은 인프라를 옮기기 위해 클라우드 서비스를 결정하는 시간을 가졌고,

다음부턴 본격적으로 DB를 제외한 인프라들을 GCP로 옮겨보겠다!