단일 Rails 앱 SaaS를 운영하는 데 실제로 드는 월간 비용
요약
단일 Rails 앱 기반 SaaS를 운영할 때 발생하는 실제 월간 비용과 호스팅 옵션을 비교 분석합니다. MVP부터 성장 단계까지 고려하여 Fly.io, Kamal+Hetzner, Hatchbox 등 네 가지 주요 인프라 구성 방식의 비용 효율성을 다룹니다.
핵심 포인트
- Fly.io는 데이터 전송 비용(egress)이 없어 소규모 앱 운영에 유리함
- Kamal과 Hetzner 조합은 운영 부담은 크지만 가장 저렴한 비용 실현 가능
- Hatchbox는 Kamal의 CLI 환경에 UI와 관리 편의성을 더한 옵션임
- SaaS 구축 시 단순 호스팅 비용 외에 스토리지 및 DB 통합 비용을 고려해야 함
AI와 함께 코딩하는 창업자들은 대개 동일한 지점에 도달하곤 합니다. 첫 번째 버전은 월 200달러 규모의 노코드 (no-code) 스택입니다. 페이지 빌더, 챗봇, 인증 게이트 (auth gate), 워크플로우 도구, 그리고 두세 개의 다른 SaaS 계정들을 서로 이어 붙인 형태죠. 두 번째 버전은 단일 호스트에서 실행되는 월 40달러 규모의 Rails 앱입니다. 이러한 전환은 클라이언트와의 대화에서 계속해서 등장하며, 재구축을 결정하는 날 계산 방식이 완전히 달라집니다.
그 계산이 실제로 어떻게 되는지에 대한 대부분의 온라인 답변은 불완전합니다. 호스팅 관련 글들은 호스트의 월간 비용만 나열하고 끝납니다. 스택 (stack) 관련 글들은 가격 없이 도구들만 나열합니다. 아무도 이를 합산하지 않습니다.
여기 MVP (Minimum Viable Product) 단계부터 검증 단계를 거쳐 성장 단계에 이르기까지, 단일 Rails 앱 SaaS에 대한 계산법이 있습니다. 실제 수치, 모든 항목, 그리고 제가 오늘날 실제로 선택할 만한 순서대로 순위를 매긴 네 가지 호스트 옵션입니다.
호스팅: 2026년 Rails를 위한 네 가지 실제 옵션
실제로 소유하는 Rails 앱의 경우, 네 가지 호스트가 거의 모든 합리적인 사례를 커버합니다. 현재 제가 추천하는 순서대로 나열했습니다.
Fly.io: 단순함을 위한 선택. 컴퓨팅, 관리형 Postgres 클러스터 (managed Postgres clusters), Tigris 오브젝트 스토리지 (Tigris object storage), 그리고 직접적인 Sentry 통합 (direct Sentry integration)을 하나의 청구서로 묶어 제공하는 종량제 (pay-as-you-go) 플랫폼입니다. 가장 작은 공유 VM은 월 약 2달러입니다. Tigris는 5GB의 오브젝트 스토리지를 무료로 제공하며, 데이터 전송 비용 (egress charges)이 전혀 없습니다. 이는 이미지나 다운로드를 제공하는 누구에게나 AWS S3에서 가장 큰 비용적 놀라움을 주는 요소입니다. Postgres, 오브젝트 스토리지, 모니터링을 포함한 소규모 Rails 앱의 실제 총비용은 월 10-20달러입니다. Tigris의 데이터 전송 비용 무료 측면 하나만으로도, 내부적으로 S3를 사용하는 호스트 대신 Fly를 선택할 가치가 충분합니다.
Kamal + Hetzner VPS: Rails 기본 선택지. Kamal은 Rails 8의 rails new 보일러플레이트(boilerplate)에 포함되어 제공됩니다. 37signals는 이를 통해 자체적인 인프라를 운영합니다. 방식은 이렇습니다: VPS를 프로비저닝(provision)하면 Kamal이 배포를 담당하고, 사용자는 동일한 서버 내에서 Postgres + Redis + 스토리지(storage)를 직접 관리합니다. Hetzner의 CX23(2 vCPU 공유 Intel/AMD)은 월 €4.79입니다. 운영 부담을 감수한다면 이것이 청구되는 전부입니다. 총합: 약 월 $5-8이며, 여기에 PaaS가 대신 해줄 일을 직접 수행하는 데 드는 시간이 추가됩니다.
Hatchbox + Hetzner VPS: UI가 포함된 Kamal. Hatchbox는 서버당 월 $10이며, 앱 개수에는 제한이 없고 기반이 되는 VPS는 동일합니다. 서버 위에 배포 UI와 원클릭 관리형 서비스(managed services)를 제공받습니다. Kamal의 CLI(Command Line Interface)가 너무 어렵게 느껴진다면 합리적인 타협안입니다. 총합: 월 $15-20.
Render: PaaS 선택지. Heroku와 가장 유사한 대안입니다. 2026년 기준으로 Render의 가격 체계가 재편되었습니다: Pro 플랜은 플랫폼 요금으로 월 $25이며, 여기에 사용량 기반(pay-as-you-go)의 컴퓨팅 및 Postgres 비용이 별도로 추가됩니다. Postgres 데이터베이스를 사용하는 소규모 상시 가동(always-on) Rails 앱의 경우, 총합 월 $30-40 정도를 예상해야 합니다. 무료 티어(Free tier)가 여전히 존재하지만, 15분 동안 활동이 없으면 앱이 휴면 상태(sleep)로 전환됩니다. 이는 사이드 프로젝트에는 괜찮지만, 유료 고객에게는 당혹스러운 경험이 될 수 있습니다. 현재 수치는 가격 페이지를 확인하세요.
상황에 따라 저의 추천 순위는 달라집니다. 한 번도 배포를 해본 적이 없고 제품 출시(shipping)에만 집중하고 싶은 창업자라면 Fly를 추천합니다. 정석적인 Rails 워크플로우(workflow)를 원하며 VPS 사용에 익숙한 창업자라면 Kamal + Hetzner를 추천합니다. Heroku만큼의 비용을 지불하지 않으면서 운영(ops)을 외주화하고 싶은 분이라면 Hatchbox를 추천합니다. PaaS의 브라우저 기반 경험이 중요하다면 Render를 선택하세요.
비용 관련 기사들이 가장 자주 잊는 항목들
호스팅은 가장 눈에 띄는 항목입니다. 하지만 아래의 항목들이 예상치 못한 청구서가 발생하는 원인이 됩니다.
**Stripe 수수료 (Stripe fees)**는 인프라가 아닌 매출에 따라 규모가 커집니다. 표준 요율은 유럽의 경우 거래당 2.9% + 고정 0.25€, 미국은 2.9% + $0.30입니다. 50명의 고객이 각각 100€씩 결제하여 월 매출이 5,000€인 경우, Stripe는 약 157€를 가져갑니다. 이는 어떤 호스팅 계산기에도 포함되지 않는 실제 비용 항목입니다.
**객체 스토리지 (Object storage)**는 사용자 업로드, 첨부 파일, 이미지용으로 사용됩니다. ActiveStorage는 앱이 파일을 수락하는 즉시 이 비용을 발생시킵니다. Fly에서는 Tigris가 5 GB를 무료로 제공하며, 그 이후에는 데이터 전송료(egress charges) 없이 GB당 $0.02를 부과합니다. 다른 호스트의 경우, Cloudflare R2가 10 GB를 무료로 제공하고 저장 용량 GB당 $0.015를 부과하며, 마찬가지로 데이터 전송료가 없습니다. 특별한 이유가 없다면 AWS S3 대신 R2를 선택하세요. 첫해 예산은 월 $0-5로 잡으세요.
트랜잭션 이메일 (Transactional email). Resend에서는 월 최대 3,000건까지 무료이며, SendGrid에서는 하루 약 100건까지 무료입니다. 무료 티어를 넘어서면, 제가 추천하는 것은 이메일 10,000건당 월 $15인 Postmark입니다. 이메일에서 원하는 대로 그냥 잘 작동하기 때문입니다. 비밀번호 재설정 이메일, 영수증 확인, 계정 알림 등이 쌓이게 되면 고객 30명에서 80명 사이 어딘가에서 무료 티어를 넘어서게 될 것입니다. 예산은 월 $0-15로 잡으세요.
에러 트래킹 및 모니터링 (Error tracking and monitoring). Fly에서는 Sentry 확장 기능 (Sentry extension)이 청구서에 포함되어 제공됩니다. Fly 이외의 경우, Sentry 무료 버전 (Sentry free)은 월 5,000개의 이벤트를, AppSignal 무료 버전 (AppSignal free)은 월 10만 개의 이벤트와 1명의 사용자를 지원하며, RorVsWild는 월 $15 범위에 있습니다. 활성 사용자 1,000명 미만의 대부분의 Rails 앱은 무료 티어로 충분합니다. 예산은 월 $0-20로 잡으세요.
백업 (Backups). Fly에서는 관리형 Postgres 클러스터 (Managed Postgres clusters)에 자동 백업이 포함되어 있습니다. Render에서는 일일 Postgres 백업이 추가 비용으로 발생합니다. Hatchbox + Hetzner 조합의 경우 직접 프로비저닝해야 합니다. 가장 저렴한 방법은 월 약 €3 정도인 Hetzner Storage Box를 사용하거나, 몇 센트 수준의 비용으로 S3/R2에 수동으로 pg_dump를 수행하는 것입니다. 예산은 월 $0-10로 잡으세요.
CDN. Cloudflare의 무료 티어는 거의 모든 소규모 SaaS의 정적 자산 전달 (static asset delivery) 및 캐싱 (caching)을 커버합니다. 호스트가 어디든 상관없이 첫날부터 도메인 앞에 이를 설정하세요. 비용: $0.
개인정보를 존중하는 분석 (Privacy-respecting analytics). Plausible은 월 $9, Fathom은 월 $15입니다. 엄격하게 필수 사항은 아니지만, 대부분의 창업자들은 제품에 대해 글을 쓰기 시작하는 첫 분기 내에 하나를 추가합니다. 예산은 월 $0-15로 잡으세요.
도메인 + DNS + SSL. 도메인은 Namecheap 또는 선택한 등록업체를 통해 연간 $12-15입니다. DNS는 등록업체나 Cloudflare를 통해 무료로 사용할 수 있습니다. SSL은 Let's Encrypt를 통해 무료이며, 언급된 네 가지 호스트 모두에서 자동으로 프로비저닝됩니다. 총합: 월간 분할 계산 시 약 $1.25.
만약 Solid Queue 대신 Sidekiq을 선택했다면 Redis가 필요합니다. Upstash Redis는 하루 10,000개 명령까지 $0로 시작하여 월 ~$10까지 확장됩니다. Kamal + Hetzner 조합에서는 동일한 VPS에서 Redis를 무료로 실행할 수 있습니다. Fly에서는 Upstash 통합 기능을 사용할 수 있습니다. Postgres를 기반으로 하는 Solid Queue + Solid Cache를 사용하면 이 항목을 완전히 피할 수 있으며, 이것이 Rails 8의 기본값인 데에는 이유가 있습니다.
단계별 실제 비용
MVP, 아직 아무도 결제하지 않음. Fly의 무료 shared-cpu-1x VM, Tigris의 무료 5 GB, 그리고 Fly의 관리형 Postgres (Managed Postgres) 또는 Supabase의 무료 Postgres 티어를 사용합니다. 실제 고객이 지켜보고 있지 않으므로 슬립 모드 (Sleep mode)도 괜찮습니다. 총합: 월 $0 및 설정에 소요되는 시간.
검증됨, 최소 한 명 이상의 유료 고객 존재. $5-10 수준의 상시 가동 (always-on) 공유 VM, 소규모 관리형 Postgres (Managed Postgres) 클러스터, 그리고 여전히 무료인 Tigris를 사용하여 운영합니다. 월간 트랜잭션 이메일 (transactional emails)이 3,000건을 넘기 전까지는 유료 이메일 티어를 건너뜁니다. Sentry는 무료 티어를 사용합니다. 총합: 월 약 $15-20. 대부분의 창업자가 결국 도달하게 되는 월 $40의 랜딩 존 (landing zone)은 실재하며, 여러분의 비용은 그보다 낮을 수 있습니다.
성장 중, 고객 10~100명, 실제 부하 및 실제 평판 리스크 발생. Fly 설정을 더 큰 VM 및 Postgres 티어로 업그레이드하거나 (~월 $25-35), Hatchbox와 Hetzner CCX13 또는 그에 상응하는 Regular Performance 인스턴스 (4 vCPU, 월 약 €16.79, Hatchbox의 월 $10를 포함하여 총 약 $28-30)로 마이그레이션합니다. Postmark($15/월)와 Plausible($9/월)을 추가하고, Sentry는 무료로 유지하거나 월 $26의 유료 티어를 사용합니다. 총합: Stripe 수수료 제외 월 $60-90. 월 매출이 €10,000일 때, Stripe는 약 €290를 가져갑니다. Stripe를 포함한 실제 총비용: 매출 €10,000당 월 약 €350. 이 비율(인프라 및 툴링에 약 3.5%)은 소규모 Rails SaaS의 안정적인 상태이며, 고객 수가 1,000명을 훨씬 넘기 전까지는 실질적으로 악화되지 않습니다.
만약 여러분의 수치가 이와 크게 다르다면, 거의 모든 경우 두 가지 이유로 설명됩니다. Heroku의 $35/월 진입 단계에 있거나, 아직 필요하지 않은 관리형 Postgres (managed Postgres) 티어를 구매했기 때문입니다. 두 경우 모두 저녁 시간 정도면 바로잡을 수 있습니다. 하지만 대부분의 창업자는 청구서가 행동을 취할 만큼 고통스럽게 느껴지지 않기 때문에 이를 방치합니다.
3단계 요약
| 단계 | 월간 비용 | 스택 (Stack) | 전환 시점 |
|---|---|---|---|
| MVP (유료 고객 없음) | $0 | Fly 무료 공유 VM + Tigris 무료 + 무료 Postgres 티어 | 첫 Stripe 결제 발생 시 |
| ... | |||
| Stripe 수수료는 포함되지 않았으며, 매출에 따라 선형적으로 증가합니다. |
관리형 데이터베이스 (managed database)가 필요한 시점
단일 VPS 상의 셀프 호스팅 (Self-hosted) Postgres는 두 가지 일이 동시에 발생하기 전까지는 괜찮습니다: 유료 고객이 생기고, 동시에 데이터베이스 장애 (database crash)가 발생했을 때 상당한 수준의 신뢰를 잃게 되는 경우입니다. 대부분의 앱은 고객 약 25명 시점에 이 단계에 도달합니다.
그 상황이 닥쳤을 때, 세 가지 신뢰할 만한 업그레이드 경로가 있습니다:
Supabase의 Pro 플랜은 월 $25이며, 시점 복구 (point-in-time recovery), 자동 백업, UI, 그리고 사용할 수도 있고 사용하지 않을 수도 있는 API를 제공합니다. Supabase를 사용하는 대부분의 팀은 인증 계층 (auth layer)과 Postgres를 함께 사용합니다. 만약 데이터베이스만 필요하다면 괜찮은 선택이지만 약간 과할 수 있습니다.
Neon의 Launch 플랜은 월 $19이며, 브랜칭 (branching) 기능이 포함된 서버리스 (serverless) Postgres를 제공합니다. 이는 AI 에이전트가 마이그레이션 (migrations)을 생성할 때 진정으로 유용합니다. 브랜칭 기능은 운영 환경에서의 사고를 한 번만 방지해도 그 비용을 충분히 뽑아냅니다.
Crunchy Bridge의 Hobby 플랜은 월 $29로, 지루하지만 합리적인 선택입니다. Postgres 클러스터를 운영하는 Postgres 전문가들이 선택하는 곳입니다. 마케팅은 적지만 신뢰성은 더 높습니다.
단 하나의 Rails 앱을 구축하는 대부분의 창업자에게는 Fly의 Managed Postgres가 기본값입니다. 스택의 나머지 부분과 동일한 호스트에 위치하며, 청구서가 하나로 통합되고, 데이터를 마이그레이션할 필요 없이 확장할 수 있습니다. 위에 언급된 전용 관리형 제공업체들은 Postgres가 비즈니스에서 가장 중요한 요소일 때 선택하는 곳입니다.
이것이 당신의 첫 18개월에 의미하는 바
첫 유료 고객이 생길 때까지 Fly의 무료 공유 VM 티어에서 운영하세요. 고객이 1명이 되면, 그 전이 아니라 고객 1명 시점에 $5-10 규모의 상시 가동 (always-on) Fly VM으로 전환하세요. 고객 30명에서 80명 사이 어딘가에서 Postmark를 추가하세요. 고객 50명 전후로는 비용 최적화를 멈추고, 그 시간을 고객 유치 (customer acquisition)에 사용하세요.
수치가 실제로 무엇을 말하는지 다시 생각해보세요. 각각 100유로를 지불하는 유료 고객 50명을 보유했을 때, 당신은 월 30유로의 인프라 및 도구 비용으로 월 5,000유로 규모의 비즈니스를 운영하고 있는 것입니다. 비용 조절 레버는 고객 유치 레버에 비하면 거의 무의미합니다. AI로 코딩하는 창업자들은 전화를 거는 시간보다 VM 크기를 조정하는 데 더 많은 시간을 쓰는 경향이 있습니다. 그 비율은 완전히 뒤집혀 있습니다.
만약 당신의 AI 에이전트가 배포한 배포(deployment) 결과물을 제2의 시각으로 검토하고 싶다면, 제가 진행하는 감사(audit)가 바로 그 역할을 수행합니다. 아키텍처(Architecture), 비용, 그리고 조용히 돈을 낭비하게 만드는 AI 패턴들을 다룹니다. 시작하는 두 가지 방법, 모두 무료입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기