RSS

일로와 서비스 배포 비용

웹과 모바일 앱을 함께 제공하는 서비스를 배포할 때는 화면을 올리는 비용만 계산해서는 안 됩니다. 데이터베이스, 캐시, 실시간 통신, 백그라운드 작업, 이미지 저장소까지 포함해야 실제 운영비에 가까워집니다.

이 글은 일로와처럼 웹·관리자·모바일 API와 실시간 기능을 가진 서비스를 Vercel과 Supabase 중심으로 배포할 때 필요한 구성을 살펴봅니다. 실제 내부 서버 주소나 운영 설정은 제외하고, 비슷한 규모의 서비스를 준비하는 팀이 참고할 수 있도록 일반화했습니다.

가격과 제공량은 2026년 7월 기준이며, 부가세와 환율, 외부 API 사용료는 별도입니다.

먼저 결론부터

최대 동시 접속자가 약 50명이고 월간 사용자가 수천 명 이하인 초기 서비스라면 다음 구성이 현실적인 출발점입니다.

항목 권장 구성 월 예상 비용
웹·관리자·모바일 API Vercel Pro 20달러부터
PostgreSQL Supabase Pro Small 30달러
Redis 사용량제 또는 250MB 고정형 10달러 안팎
워커·실시간 서버 소형 상시 컨테이너 10~30달러
이미지·인증·AI 번역 S3, Firebase, AI API 등 사용량에 따라 변동

기존 구조를 크게 바꾸지 않는다면 고정비는 월 7090달러 정도입니다. 1달러를 1,400원으로 단순 계산하면 약 10만13만원입니다.

다만 이 숫자는 등록 사용자 50명이 아니라 동시 접속자 50명을 가정한 값입니다. 등록 사용자만 50명이고 동시에 사용하는 사람은 더 적다면 여유는 훨씬 큽니다.

웹 서버 하나만으로 끝나지 않는 이유

일로와 같은 서비스에는 보통 다음 역할이 함께 필요합니다.

  • 웹사이트와 관리자 화면
  • 모바일 앱이 사용하는 REST API
  • PostgreSQL 데이터베이스
  • 조회수, 캐시, 전송 제한, 작업 큐에 사용하는 Redis
  • 채팅이나 알림을 전달하는 실시간 연결
  • 이미지 리사이즈와 번역 같은 백그라운드 작업
  • 원본 이미지와 변환 이미지 저장소
  • 로그인과 푸시 알림 서비스

Vercel은 Next.js 웹과 API를 배포하는 데 잘 맞지만 PostgreSQL과 Redis를 직접 제공하는 서버는 아닙니다. Supabase는 PostgreSQL을 관리해 주지만 Redis와 임의의 상시 실행 프로세스를 대신하지는 않습니다. 따라서 두 서비스의 기본료만 더하면 운영에 필요한 비용이 빠질 수 있습니다.

Vercel Pro는 월 20달러부터

Vercel Pro는 월 20달러이며 같은 금액의 사용 크레딧을 제공합니다. 현재 요금표에는 월 1,000만 Edge Request와 1TB Fast Data Transfer가 포함되어 있습니다. 초기 서비스라면 웹과 API 실행 비용이 기본 크레딧 안에서 시작할 가능성이 높지만, 이미지 전송량과 API 실행 시간이 늘면 추가 비용이 발생합니다.

중요한 점은 Vercel 개발자 좌석과 서비스 최종 사용자를 구분하는 것입니다. 앱 사용자 50명이 Vercel 좌석 50개를 의미하지 않습니다. 배포와 프로젝트 설정을 변경하는 개발자 수가 좌석 비용에 영향을 줍니다.

Vercel 요금표

데이터베이스는 Supabase Small부터

Supabase Small은 공유 2코어, 메모리 2GB, 권장 데이터베이스 크기 50GB를 제공합니다. 권장 연결 한도는 직접 연결 90개, 풀러 클라이언트 400개입니다.

유료 조직의 기본 Pro 요금은 25달러이고 Small 컴퓨트가 약 15달러입니다. 매월 제공되는 10달러 컴퓨트 크레딧을 적용하면 Small 프로젝트 하나의 월 비용은 약 30달러입니다.

Micro도 기술적으로 실행할 수 있지만 메모리가 1GB이고 연결 여유가 더 작습니다. API, 관리자, 실시간 서비스, 워커가 같은 데이터베이스를 사용하는 초기 운영 환경이라면 월 5달러 차이로 Small의 여유를 확보하는 편이 낫습니다.

Supabase 컴퓨트 사양
Supabase 컴퓨트 요금 계산

서버리스 환경에서는 연결 풀링이 필수

Vercel Functions는 트래픽에 따라 인스턴스가 늘어날 수 있습니다. 각 인스턴스가 PostgreSQL 직접 연결을 여러 개 만들면 작은 데이터베이스의 연결 한도를 빠르게 소진할 수 있습니다.

Supabase는 서버리스와 Edge Function에 transaction pooler 사용을 권장합니다. 애플리케이션 트래픽은 transaction pooler로 보내고, 마이그레이션과 백업은 direct connection 또는 session mode로 분리하는 구성이 안전합니다.

Supabase 데이터베이스 연결 방식

Redis 비용을 빼먹지 말아야 한다

Redis는 단순 캐시 외에도 다음 용도로 사용될 수 있습니다.

  • 실시간 메시지 전달을 위한 Pub/Sub
  • 접속 상태와 짧은 수명의 데이터
  • 조회수 모으기
  • API 전송 제한
  • 번역과 이미지 작업 큐

초기 트래픽에서는 Upstash 같은 사용량제 Redis로 시작할 수 있습니다. 무료 구간은 월 50만 명령과 256MB이지만, 짧은 간격으로 큐를 확인하는 워커가 있으면 사용자 요청이 적어도 명령 수가 쌓일 수 있습니다. 운영 예산에는 월 10달러짜리 250MB 고정형 또는 사용량제 비용을 반영하는 편이 안전합니다.

Upstash Redis 요금표

실시간 통신과 워커는 두 가지 선택지가 있다

첫 번째는 기존 구조를 유지하는 방법입니다. 웹과 API는 Vercel에 배포하고, 실시간 서버와 백그라운드 워커만 메모리 12GB의 소형 상시 컨테이너에 둡니다. 변경 범위가 작고 장애 원인을 분리하기 쉽습니다. 제공 업체에 따라 월 1030달러 정도의 예산을 잡을 수 있습니다.

두 번째는 Vercel 방식으로 재구성하는 방법입니다. 실시간 연결은 Vercel WebSocket 지원에 맞추고, 워커는 Cron과 Queues로 나눕니다. Vercel의 WebSocket 연결은 Function 최대 실행 시간에 영향을 받으므로 클라이언트 재연결과 외부 상태 저장소가 필요합니다. Queues와 Services는 현재 Beta 기능이 포함되어 있어 도입 전 운영 요구사항을 확인해야 합니다.

Vercel WebSocket 안내
Vercel Queues

초기에는 첫 번째 방법이 비용 예측과 안정성 면에서 단순합니다. 트래픽 형태를 파악한 뒤 큐와 실시간 계층을 재구성해도 늦지 않습니다.

이미지는 애플리케이션 서버를 거치지 않게 한다

Vercel Function의 요청과 응답 본문은 크기 제한이 있습니다. 사용자가 올린 원본 이미지를 API 서버가 받아 다시 저장소로 전송하는 방식은 큰 파일에서 실패하거나 서버 비용을 높일 수 있습니다.

클라이언트가 서명된 업로드 URL을 받아 S3 같은 오브젝트 스토리지로 직접 전송하고, 워커가 썸네일과 WebP 이미지를 생성하도록 분리하는 편이 좋습니다. 이렇게 하면 웹 서버는 업로드 권한과 메타데이터만 관리하고 대용량 파일 전송은 저장소가 담당합니다.

Vercel Functions 제한

서울 리전을 맞추는 것이 중요하다

Vercel Functions의 기본 실행 리전은 미국 워싱턴 D.C.입니다. 데이터베이스를 서울에 두고 함수 리전을 바꾸지 않으면 API 요청마다 먼 거리를 왕복하게 됩니다.

한국 사용자가 중심이라면 Vercel은 서울 리전인 icn1, Supabase는 서울 리전인 ap-northeast-2를 선택하는 것이 좋습니다. 정적 파일은 CDN에서 가까운 위치로 전달되지만 데이터베이스를 조회하는 함수는 데이터베이스와 가까워야 합니다.

Vercel 리전
Supabase 리전

운영 시나리오별 예상 비용

1. 초기 운영 환경 하나

  • Vercel Pro: 20달러
  • Supabase Pro Small: 30달러
  • Redis: 약 10달러
  • 실시간 서버와 워커: 10~30달러
  • 합계: 월 70~90달러

이미지 저장과 전송, 문자 인증, AI 번역 비용은 실제 사용량에 따라 추가됩니다.

2. 운영과 스테이징을 함께 유지

운영 DB는 Small, 스테이징 DB는 Micro로 구성하고 개발 DB는 로컬에서 사용하는 방식입니다.

  • Vercel Pro: 20달러부터
  • Supabase Small 1개와 Micro 1개: 약 40달러
  • Redis와 상시 프로세스: 20~50달러
  • 합계: 월 80~110달러

미리보기 배포가 운영 DB에 연결되지 않도록 환경변수와 마이그레이션 권한을 분리해야 합니다.

3. 데이터베이스를 Medium으로 확장

Supabase Medium은 공유 2코어와 메모리 4GB이며, 한 프로젝트의 월 비용은 컴퓨트 크레딧 적용 후 약 75달러입니다. 전체 고정비는 월 115~150달러 정도로 올라갑니다.

사용자 수만 보고 Medium으로 올리기보다 다음 신호를 확인하는 편이 정확합니다.

  • 데이터베이스 CPU와 메모리가 지속적으로 높은가
  • 연결 풀 대기가 늘어나는가
  • 인덱스와 쿼리를 점검한 뒤에도 응답 시간이 느린가
  • 이미지나 번역 작업이 사용자 요청 처리와 경쟁하는가
  • 디스크 I/O 사용량이 지속적으로 증가하는가

Supabase도 작은 컴퓨트에서 시작하고 대시보드 지표와 부하 테스트 결과를 보고 확장하는 방식을 권장합니다.

배포 전에 확인할 항목

  1. Vercel 함수와 Supabase 데이터베이스를 같은 서울 리전에 둔다.
  2. 서버리스 API는 transaction pooler를 사용한다.
  3. 마이그레이션과 백업용 연결을 애플리케이션 연결과 분리한다.
  4. 이미지 업로드는 오브젝트 스토리지로 직접 보낸다.
  5. 실시간 연결은 재접속과 상태 복구를 지원한다.
  6. 워커 작업은 중복 실행되어도 결과가 깨지지 않게 만든다.
  7. 운영과 스테이징의 데이터베이스와 비밀값을 분리한다.
  8. 비용 알림과 사용 한도를 설정한다.

듀오랩스가 보는 관점

초기 서비스에서 중요한 것은 처음부터 큰 서버를 고르는 일이 아닙니다. 역할을 분리하고, 어디에서 비용이 늘어나는지 측정할 수 있게 만드는 일이 먼저입니다.

일로와 정도의 서비스라면 Supabase Small과 Vercel Pro로 충분히 시작할 수 있습니다. 다만 Redis, 실시간 연결, 백그라운드 워커를 비용표 밖에 두면 실제 청구액과 운영 난이도를 잘못 예상하게 됩니다. 월 70~90달러를 초기 기준선으로 잡고, 스테이징과 사용량 기반 비용을 더하는 방식이 가장 현실적입니다.