생산성

Fly.io 무료 한도, 1인 사이드프로젝트에서 실제로 초과된 이유

Fly.io 무료 한도, 1인 사이드프로젝트에서 실제로 초과된 이유

Fly.io를 처음 쓰기 시작하면 대부분 이렇게 생각해요. “트래픽 거의 없으니까 무료로 충분하겠지.” 근데 실제 청구서를 받아보면 얘기가 달라지는 경우가 꽤 있어요. 무료 한도가 분명히 존재하는데, 설정 한 줄 차이로 유료로 넘어가는 구조거든요.

핵심 요약

  • Fly.io 무료 플랜은 공유 CPU VM 월 2,340시간, RAM 256MB, 월 160GB 아웃바운드 트래픽을 제공하지만, 생각보다 빠르게 소진돼요.
  • 실제 커뮤니티 사례에서 무료 크레딧이 오전 9시 50분에 시작해 오후 1시 21분, 단 3시간 반 만에 소진된 경우도 있어요.
  • idle 머신이 꺼지지 않는 것, 스케일링 설정 실수, 여러 지역에 분산 배포되는 것이 예상치 못한 과금의 가장 흔한 원인이에요.
  • Railway, Render와 비교했을 때 Fly.io는 유연성은 높지만 과금 구조가 복잡해서 초보자에게는 위험 요소가 돼요.

Fly.io 무료 플랜, 실제로 어디까지 되나요?

Fly.io는 2024년부터 무료 플랜 구조를 바꿨어요. 예전엔 신용카드 없이도 일부 서비스가 됐는데, 지금은 카드를 등록해야 앱을 배포할 수 있어요. 카드를 등록했다는 건 과금이 발생할 준비가 된 상태라는 뜻이거든요.

공식 문서 기준으로 Fly.io가 무료로 제공하는 항목은 이래요:

  • 공유 CPU VM: 월 2,340시간 (약 3대의 머신이 24시간 켜진 것과 같아요)
  • 메모리: VM당 256MB RAM
  • 스토리지: 3GB 영구 볼륨
  • 아웃바운드 트래픽: 월 160GB

숫자만 보면 꽤 넉넉해 보여요. 그런데 문제는 이 한도가 ‘합산’이 아니라 ‘동시 운영 기준’이라는 점이에요. 앱 하나를 배포할 때 Fly.io가 자동으로 2개 이상의 인스턴스를 띄우는 경우가 있거든요. fly.toml 설정에서 min_machines_running을 잘못 설정하거나, auto_stop_machines가 꺼져 있으면 idle 상태에서도 머신이 계속 돌아가요. 그게 곧 청구서로 이어지는 거죠.

Fly.io 공식 커뮤니티 포럼에는 무료 크레딧이 오전 9시 50분에 시작됐는데 오후 1시 21분에 이미 소진됐다는 글이 올라왔어요. 3시간 반 만이에요. 대부분 스케일링 설정 문제거나, 예상치 못하게 여러 지역(region)에 머신이 배포된 경우였고요.


실제 청구 패턴: 어디서 돈이 나가나요?

커뮤니티에서 자주 언급되는 과금 원인은 크게 세 가지예요.

1. 머신이 꺼지지 않아요

auto_stop_machines = true로 설정하지 않으면 트래픽이 없어도 머신이 계속 켜진 상태로 남아요. 시간당 과금이니까, 한 달 동안 쌓이면 생각보다 커지죠.

특히 Next.js나 Remix 같은 풀스택 프레임워크를 Fly.io에 올릴 때, 기본 설정 그대로 배포하면 종종 이 문제가 생겨요. Reddit r/nextjs에서도 “Fly.io 쓰다가 갑자기 청구서 받았다"는 글이 2026년 들어서도 꾸준히 올라오고 있어요.

2. 지역(Region) 설정이 예상과 달라요

Fly.io는 배포할 때 가장 가까운 지역을 자동으로 선택하는데, 여러 region에 분산 배포되는 경우가 있어요. 각 region의 머신이 별도로 카운트되기 때문에, 의도치 않게 무료 한도가 두세 배 빨리 소진될 수 있어요.

3. 볼륨과 IP 주소 비용

fly ips allocate-v4로 전용 IPv4 주소를 발급하면 월 $2가 청구돼요. “그냥 연결됐으면 좋겠어서” 발급하는 경우가 많은데, 무료 플랜과 별개로 청구되는 항목이에요. 볼륨도 무료 3GB를 넘어가면 GB당 과금이 시작되고요.


Fly.io vs Railway vs Render: 1인 프로젝트 기준 비교

그렇다면 Fly.io가 사이드프로젝트에 정말 맞는 선택일까요? 2026년 기준으로 정리해봤어요.

항목Fly.ioRailwayRender
무료 티어있음 (카드 필수)있음 ($5 크레딧/월)있음 (수면 모드 있음)
과금 방식시간 + 리소스사용량 기반시간 기반
설정 복잡도높음 (fly.toml 필수)낮음 (자동 감지)낮음
idle 절감수동 설정 필요자동수면 모드 자동
월 최소 비용$0 (설정 잘 하면)$0–$5$0
DB 포함Postgres 별도Postgres 포함Postgres 별도
추천 대상DevOps 경험자빠른 배포 원하는 개발자정적 사이트 위주

비교해보면 패턴이 보여요. Fly.io는 세 플랫폼 중 가장 유연하지만, 그 유연성이 곧 복잡성이에요. Railway는 $5 무료 크레딧으로 시작하는 방식이라 예측 가능성이 높아요. 한 달에 $5를 넘기지 않으면 청구서가 나오지 않으니까요. Render는 무료 티어에서 일정 시간 idle 상태면 앱이 자동으로 잠드는 수면 모드가 있는데, 과금 방지 측면에선 오히려 장점이에요. 첫 요청에 30초 정도 대기 시간이 생기는 단점은 있지만요.


Fly.io를 계속 쓰려면 뭘 확인해야 하나요?

Fly.io 자체가 나쁜 건 아니에요. 다만 사이드프로젝트 특성상 ‘깜빡하고 켜두면 과금’이 되는 구조라서, 몇 가지 체크리스트가 필요해요.

배포 전 반드시 확인할 것들:

  • fly.toml에서 auto_stop_machines = "stop" 설정 확인
  • min_machines_running = 0으로 설정해서 idle 시 머신 종료
  • 불필요한 region 배포 제거 (fly regions list로 확인)
  • 전용 IPv4 대신 공유 IP 쓰기 (무료)
  • fly status로 현재 실행 중인 머신 수 주기적 확인

예산 알림 설정:

Fly.io 대시보드에서 월 지출 한도를 설정할 수 있어요. fly billing에서 spending limit을 $5 또는 $10으로 걸어두면 예상치 못한 청구를 방지할 수 있어요. 이 설정 하나가 가장 현실적인 안전망이에요.


결론: 무료는 맞는데, 기본값은 틀렸어요

  • Fly.io의 무료 한도는 실제로 존재하고, 잘 설정하면 1인 사이드프로젝트는 충분히 무료로 운영 가능해요
  • 기본 설정 그대로 배포하면 idle 머신이 계속 돌아가면서 과금이 생겨요
  • Railway나 Render는 설정 부담이 적어서 빠르게 올리고 싶은 프로젝트엔 더 나을 수 있어요
  • Fly.io를 쓴다면 auto_stop_machines 설정과 spending limit이 필수예요

2026년 하반기에는 Fly.io가 무료 티어 구조를 또 바꿀 가능성이 있어요. 이미 커뮤니티 내에서 정책 변경 이야기가 나오고 있거든요. 지금 당장은 설정만 제대로 해도 충분히 무료로 쓸 수 있지만, 분기마다 한 번씩 공식 pricing 페이지를 확인하는 게 좋아요.

결국 핵심 질문은 이거예요. “내 프로젝트가 Fly.io의 유연성이 필요한가, 아니면 그냥 배포되면 되는가?” 그 답에 따라 플랫폼 선택이 달라지거든요.


이 글에서 언급된 Fly.io 무료 플랜 사양은 2026년 3월 Fly.io 공식 문서 기준이며, 커뮤니티 사례는 Fly.io 공식 포럼 및 Reddit r/nextjs 스레드를 참고했어요.

참고자료

  1. Free Trial started at 9:50AM and ended at 1:21PM (on the same day?) - Questions / Help - Fly.io
  2. r/nextjs on Reddit: Thoughts on Fly.io?
  3. Railway vs Fly.io vs Render: Which Cloud Gives You the Best ROI? | by R. Thompson (PhD) | AI Disrupt

Photo by Pedro Henrique Santos on Unsplash