Skip to main content
ragedaisy

서버비 월 4달러로 버티는 중

AWS 프리티어 끝나고 청구서 왔는데 47달러.

처음엔 뭔가 잘못된 줄 알았다. 프리티어 쓰고 있었으니까 공짜일 줄 알았는데. 알고 보니 프리티어 1년 지났더라. 가입한 지 벌써 그렇게 됐나 싶었다.

사이드 프로젝트 수익은 0원인데 서버비가 47달러. 말이 안 됐다.

뭐가 47달러였나 #

AWS 비용 분석을 해봤다.

EC2는 24시간 돌리니까 그렇다 치고, RDS가 생각보다 비쌌다. 프리티어 끝나면 제일 작은 인스턴스도 꽤 나온다.

웃긴 건 내 서비스 일일 활성 유저가 5명이었다는 거다. 5명한테 보여주려고 월 47달러 쓰고 있었다. 유저당 월 9달러꼴이다.

다 갈아엎었다 #

일단 아키텍처를 다시 생각했다.

내 서비스가 뭘 하는지 보자. 간단한 CRUD 앱이다. 유저가 데이터 입력하면 저장하고, 조회하면 보여주고. 트래픽? 하루 100 요청도 안 된다. 이걸 위해 EC2 24시간 돌릴 필요가 있나?

프론트엔드: Next.js로 만들어놨다. Vercel로 옮겼다. 연결하면 알아서 빌드하고 배포한다. 설정할 것도 없다. GitHub 연동하면 끝.

# 이게 끝이다
git push origin main
# Vercel이 알아서 빌드하고 배포함

Vercel 무료 범위가 넓다. 월 100GB 대역폭, 서버리스 함수 100만 회 호출. 내 트래픽 수준에서는 평생 무료다.

백엔드: 서버리스로 바꿨다. Next.js API Routes 쓰면 백엔드 따로 안 만들어도 된다. 어차피 간단한 CRUD인데 굳이 Express 서버 돌릴 이유가 없었다.

복잡한 로직이 필요하면 Railway를 쓴다. 월 5달러 크레딧 준다. 내 수준에서는 그 안에서 해결된다. 초과하면 쓴 만큼만 내면 되니까 예측 가능하다.

데이터베이스: Supabase 무료 티어. PostgreSQL인데 무료로 500MB까지 준다. 내 데이터 다 합쳐도 10MB도 안 되니까 충분하다.

// Supabase 쓰는 거 진짜 간단하다
import { createClient } from '@supabase/supabase-js'

const supabase = createClient(url, key)

// 데이터 가져오기
const { data } = await supabase
  .from('posts')
  .select('*')

// 데이터 저장
await supabase
  .from('posts')
  .insert({ title: '제목', content: '내용' })

현재 비용 구조 #

지금 월에 나가는 돈:

총 월 3-4달러. 커피 한 잔도 안 되는 돈.

47달러에서 4달러로. 90% 넘게 줄었다.

각 서비스 장단점 #

Vercel

Supabase

Railway

PlanetScale (MySQL 쓰면 이것도 좋음)

예전에 왜 그랬을까 #

예전에 EC2에 RDS에 S3에... 뭘 그렇게까지 했는지 모르겠다.

솔직히 말하면 "제대로 된 아키텍처"를 만들고 싶었던 것 같다. 블로그 글 보면 다들 EC2 쓰고, 로드밸런서 붙이고, RDS 쓰고 그러니까. 그게 "진짜" 배포인 줄 알았다.

유저 100명도 없으면서 스케일업 걱정하고 있었다. "나중에 유저 늘면 어떡하지?" 나중은 안 왔다. 오히려 서버비 때문에 접을 뻔했다.

요즘은 이렇게 생각한다. 유저 1000명 될 때까지는 무료 티어로 버텨라. 그 정도 트래픽이면 대부분 무료로 감당된다. 1000명 넘어서 서버비 걱정할 정도면 그때는 수익도 있을 거다.

마이그레이션 팁 #

AWS에서 Vercel/Supabase로 옮기는 거 어렵지 않다.

  1. DB 먼저 옮긴다: pg_dump로 백업하고, Supabase에 import. 테이블 구조 같으면 그냥 된다.

  2. 환경변수 정리한다: AWS 쓸 때 하드코딩한 거 있으면 다 환경변수로 빼놓는다.

  3. API 엔드포인트 바꾼다: 프론트에서 호출하는 URL만 바꾸면 된다.

  4. DNS 바꾼다: 도메인 연결. Vercel 대시보드에서 하면 쉽다.

나는 토요일 오후에 시작해서 일요일 저녁에 끝냈다. 하루 반 정도 걸렸다. 생각보다 금방이었다.

지금은 서버비 스트레스 없다. 수익 없어도 그냥 돌릴 수 있으니까. 사이드 프로젝트는 이래야 한다. 돈 안 들어가야 부담 없이 오래 할 수 있다.