Skip to main content
ragedaisy

Vercel, Railway, Fly.io

배포 플랫폼 고르는 거 은근 스트레스다.

블로그 글 읽으면 다들 다른 거 추천한다. "Vercel 최고" "Railway가 낫다" "Fly.io 써야 한다" "그냥 AWS 쓰면 되지".

셋 다 써봤다. 각각 언제 쓰면 좋은지 정리해둔다.

Vercel #

Next.js 쓰면 여기. 선택의 여지가 없다.

Vercel이 Next.js 만든 회사다. 당연히 최적화가 제일 잘 돼 있다. GitHub 연결하면 설정할 것도 없다. git push 하면 알아서 빌드하고 배포한다.

# 이게 전부다
git push origin main
# 1분 뒤에 배포 완료

무료 범위가 넓다. 월 100GB 대역폭, 서버리스 함수 호출 100만 회. 사이드 프로젝트 수준에서는 평생 무료다. 나는 두 개 프로젝트 돌리는데 아직 돈 낸 적 없다.

프리뷰 배포가 진짜 좋다. PR 올리면 자동으로 프리뷰 URL 만들어준다. my-app-pr-123.vercel.app 이런 식으로. 테스트하기 편하고, 다른 사람한테 보여주기도 좋다.

단점도 있다.

서버리스 제한: 함수 실행 10초 넘으면 타임아웃. 오래 걸리는 작업은 못 한다. 이미지 처리나 AI API 호출 같은 거 하다 보면 걸린다.

한국 리전 없음: 엣지는 서울 있는데, 서버리스 함수는 미국에서 돈다. 한국 유저 대상이면 레이턴시 200ms 정도 더 걸린다. 체감상 좀 느리다.

요금 예측 어려움: 트래픽 터지면 요금도 터진다. 무료 범위 넘어가면 갑자기 청구서 와서 놀랄 수 있다. Spending limit 설정해두는 게 좋다.

점수: 프론트엔드 배포하기엔 최고. Next.js면 무조건 여기.

Railway #

백엔드 필요하면 여기.

Vercel은 서버리스라서 상시 돌아가는 서버가 필요하면 못 쓴다. WebSocket이나 크론잡 같은 거. Railway는 컨테이너 기반이라 이런 것도 가능.

월 5달러 크레딧 준다. 사이드 프로젝트 수준에서는 그 안에서 해결된다. 내 경우 월 2-3달러 정도 쓰니까 크레딧으로 충분.

# Railway CLI로 배포
railway login
railway init
railway up

DB 붙이기가 쉽다. PostgreSQL, MySQL, Redis 원클릭으로 추가된다. 환경변수도 자동으로 연결해준다.

장점:

단점:

점수: 간단한 백엔드용으로 좋음. 한국 타겟이면 레이턴시 감수해야 함.

Fly.io #

서울 근처 리전 있다. 도쿄. 정확히는 nrt (나리타).

한국 유저 대상이면 가장 빠르다. ping 30-50ms. Vercel이나 Railway랑 비교하면 체감 차이 난다.

Docker 기반이라 뭐든 돌릴 수 있다. Node, Python, Go, Rust 뭐든.

# Fly.io 배포
fly launch  # Dockerfile 자동 생성
fly deploy  # 배포

# 도쿄 리전 지정
fly regions set nrt

장점:

단점:

점수: 한국 유저 대상이면 고려할 만함. Docker 알아야 편함.

내 선택 기준 #

복잡하게 생각 안 한다.

프론트엔드 (Next.js) → Vercel
백엔드 필요 + 글로벌 → Railway
백엔드 필요 + 한국 타겟 → Fly.io

요즘은 이렇게 조합해서 쓴다:

전부 무료 티어 조합이면 월 0원에 서비스 돌릴 수 있다.

각 서비스 비용 정리 #

Vercel

Railway

Fly.io

마이그레이션 팁 #

플랫폼 옮기는 건 생각보다 어렵지 않다.

  1. 환경변수 정리해둔다. 하드코딩 없애고 .env로 빼둔다.
  2. Docker 지원하면 어디서든 돌릴 수 있다. Dockerfile 만들어두면 이식성 좋다.
  3. DB URL만 바꾸면 DB는 어디 있어도 된다.

나는 AWS에서 Vercel+Railway로 옮길 때 주말 하루 걸렸다. 처음 하면 좀 더 걸릴 수 있는데, 두 번째부터는 금방이다.

어디 쓰든 크게 상관없다. 사이드 프로젝트 수준에서는 다 비슷하다. 일단 아무 데나 올려보고, 문제 생기면 그때 옮기면 된다.