Fly.io vs Railway 2026 — Hosting cho developer solo
Railway tốt cho developer solo 2026: zero-config, billing theo sleep, Postgres HA. Fly.io khi cần 18 edge region, always-on hoặc GPU workload.
Bởi Ethan
2.465 từ · 13 phút đọc
Railway là lựa chọn đúng cho phần lớn developer solo trong 2026. Deploy không cần cấu hình, billing dựa trên sleep giúp chi phí về gần $0 khi traffic thấp, CI/CD tích hợp sẵn, và — từ tháng 3/2026 — Postgres HA được quản lý hoàn toàn, không cần tự lo. Fly.io xứng đáng với chi phí khi bạn thực sự cần 18 edge region, máy luôn chạy, hoặc GPU workload. Nếu project của bạn không thuộc một trong những trường hợp đó, bề mặt vận hành của Fly là thứ bạn đang trả bằng thời gian — không phải bằng giá trị.
Bài này viết cho ai
Developer solo và indie hacker đang chọn PaaS cho side project hoặc SaaS MVP. Nếu bạn đang chạy Kubernetes hay quản lý nhiều service, cả hai platform đều không phải câu trả lời của bạn — và bài này cũng không dành cho bạn.
Tóm tắt nhanh
| Railway | Fly.io | |
|---|---|---|
| DX | Zero-config, GitHub push-to-deploy | Dockerfile + CLI, tự cấu hình CI/CD |
| Free tier | Free tier (idle credits) | 3 shared VM |
| ~$10/tháng | 1 service luôn chạy, 1 vCPU / 512 MB | 1 shared-cpu-2x / 512 MB, 24/7 |
| ~$50/tháng | 2–3 service + Postgres HA | 3–4 service + Fly Managed Postgres |
| Postgres | Managed HA từ tháng 3/2026 | Fly Managed Postgres ($38/tháng+), self-hosted đã deprecated |
| Sleep khi idle | Có, cấu hình được | Có (stop hoặc suspend) |
| Region | 4 (US West, US East, EU, Singapore) | 18 (toàn cầu) |
| Giới hạn chi tiêu | Có (hard cap, cảnh báo qua email) | Không có native cap |
| Affiliate | ✓ $20 credit cho signup mới | Không có chương trình public |
Thực tế chi phí
Bạn thực sự trả bao nhiêu ở ba mức dùng
$0/tháng — app ngủ. Service idle trên Railway tự scale về zero và billing dừng lại. Một hobby project chỉ có traffic trong giờ thức sẽ nằm thoải mái trong free-tier credits hầu hết các tháng. Đây chính là lợi thế từ sleep mà các bài so sánh thường bỏ qua: nếu app của bạn nhận 100 request mỗi ngày và không có gì lúc 3 giờ sáng, bạn không trả tiền cho 3 giờ sáng đó.
~$10/tháng — một web service luôn chạy. Trên Railway, tắt sleep cho service 1 vCPU / 512 MB tốn khoảng $8–10/tháng với Hobby plan ($5 base fee + usage). Trên Fly.io, máy shared-cpu-2x với 512 MB RAM chạy 24/7 ở Bắc Mỹ tốn khoảng $4–6/tháng theo metered — nhìn trên giấy có thể rẻ hơn. Nhưng bề mặt billing của Fly rộng hơn: bạn còn trả $2/tháng cho IPv4 cố định, $0.15/GB/tháng cho volume (kể cả lúc stopped), và $0.02/GB egress. Cái máy “rẻ hơn” đó thường về cùng mức khi tính đủ hóa đơn.
~$50/tháng — app có database. Đây là điểm phân kỳ rõ nhất. Railway Hobby Postgres HA (ra mắt tháng 3/2026, nay đã general availability) thêm vào stack một managed database có replication — xem giá hiện tại tại railway.app/pricing. Tương đương bên Fly là Fly Managed Postgres, bắt đầu từ $38/tháng cho tier thấp nhất — gần như ăn hết $50 budget trước khi bạn trả cho bản thân app. Con số thay đổi nhanh lắm.
Những điểm billing dễ bị Fly.io tính thêm
Không có spending cap, không có billing alert tích hợp. Bạn có thể dùng giới hạn thẻ tín dụng làm backstop bên ngoài, nhưng Fly không cung cấp gì tương tự. Cộng đồng hay gặp bất ngờ ở bốn vùng:
- Volume snapshot: trở thành mục tính tiền từ tháng 1/2026. Volume có từ trước thay đổi này bắt đầu tích lũy phí snapshot mà không có thông báo rõ ràng đến tất cả người dùng.
- MPG inter-region charges: node Fly Managed Postgres đặt ở nhiều region sẽ phát sinh phí traffic liên region, tính theo $0.006/GB (Bắc Mỹ ↔ Châu Âu) và $0.015/GB (Châu Á Thái Bình Dương) — chi phí tăng tuyến tính với lượng dữ liệu replication giữa các region (xem fly.io/docs/about/pricing/).
- Volume còn tồn tại sau khi xóa app: xóa app trên Fly không xóa volume. Bạn phải
fly volumes destroythủ công. Nhiều người bị tính tiền vì quên volume từ các app thử nghiệm. - Managed Postgres và Redis cũng tồn tại sau khi xóa app: cùng kiểu vậy. Cả hai vẫn bị tính tiền cho đến khi bạn xóa thủ công.
Hard spending cap của Railway là lý do rõ nhất nhất để bắt đầu ở đó. Một autoscaler cấu hình sai hay database vô tình giữ lại sẽ không cho ra hóa đơn bốn chữ số. Platform dừng workload khi bạn chạm cap và gửi email cảnh báo trước đó.
Trải nghiệm deploy lần đầu
Railway: mười lăm phút từ số không
Kết nối repo GitHub. Railway tự nhận diện Node.js, Bun, Deno, Python, Ruby, Go, Rust và nhiều ngôn ngữ khác mà không cần Dockerfile. Đặt biến môi trường. Push commit. Bạn có URL live.
npm install -g @railway/cli
railway login
railway init
railway up
Preview environment cho pull request có sẵn ngay từ đầu ở tier Pro và được bật theo mặc định. Push branch, nhận URL cho branch đó. Không cần cấu hình GitHub Actions — chỉ cần hai click trên dashboard.
Về sleep: Railway cho service ngủ sau 10 phút không có traffic outbound (không phải inbound — sự khác biệt này quan trọng). Request đầu tiên sau khi ngủ có thể trả về 502; app cold-boot. Với side project thì không sao. Với production API mà user nhận ra độ trễ 2–5 giây đầu tiên: tắt sleep và trả ~$8/tháng để giữ một instance luôn chạy. Vẫn rẻ.
Fly.io: nhiều kiểm soát hơn, nhiều thứ cần quản lý hơn
Fly.io yêu cầu Docker. Với các stack phổ biến, fly launch tự tạo Dockerfile, nhưng bất cứ thứ gì không tiêu chuẩn đều cần bạn tự viết. Không có CI/CD tích hợp sẵn — bạn phải nối với GitHub Actions tự làm.
curl -L https://fly.io/install.sh | sh
flyctl auth login
fly launch # tạo fly.toml và Dockerfile
fly deploy
# .github/workflows/fly-deploy.yml — bạn tự viết file này
name: Deploy to Fly.io
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
Sleep trên Fly có hai chế độ: suspend (giữ trạng thái bộ nhớ, khởi động lại nhanh hơn stop) và stop (cold boot hoàn toàn). App mới mặc định là stop. Nếu cold-start latency quan trọng, kiểm tra fly.toml trước khi lên production — mặc định là chế độ chậm hơn.
# fly.toml — đặt autostop thành suspend để khởi động lại nhanh hơn
[http_service]
auto_stop_machines = "suspend"
auto_start_machines = true
min_machines_running = 0
Đặt min_machines_running = 1 để loại bỏ cold start hoàn toàn. Thêm $3–10/tháng tùy kích thước máy.
Chuyện database — thay đổi lớn nhất năm 2026
Railway Postgres HA (tháng 3/2026)
Railway ra mắt Postgres managed, high-availability vào tháng 3/2026. Đây là thay đổi làm xoay chuyển phép tính Fly vs Railway cho developer solo nhất.
Trước tháng 3, Railway Postgres không được quản lý: không có backup tự động, không có failover. Bạn cần giải pháp bên ngoài (pgdump lên S3, managed provider riêng) cho mọi dữ liệu quan trọng. Khoảng trống đó đẩy nhiều developer sang Fly.io hoặc dùng Neon/Supabase như một database host riêng biệt.
Railway Postgres HA giờ bao gồm:
- Backup tự động với point-in-time recovery
- High-availability standby (synchronous replication)
- Failover tự động
- Thiết lập zero-config từ Railway dashboard
Postgres HA ra mắt dạng experimental vào ngày 13/3/2026 (Railway changelog: “This is experimental and not production-ready. Don’t upgrade a production database to an HA cluster yet.”) và đạt general availability vào ngày 27/3/2026. Xem giá hiện tại tại railway.app/pricing. Với developer solo từng phải tự quản lý backup hoặc trả thêm cho một Postgres managed riêng, điều này xóa bỏ điểm khó chịu chính khiến Railway chưa thể là một production stack hoàn chỉnh. Đánh giá Railway 2026 của chúng tôi đi sâu hơn vào DX và độ ổn định thực tế.
Fly Managed Postgres
Fly đã deprecated workflow flyctl postgres create không được quản lý, thay bằng Fly Managed Postgres (MPG). Giá khởi điểm: $38/tháng. Chưa tính phí replication liên region.
Phí inter-region MPG — mới trong 2026 — áp dụng khi Postgres cluster của bạn trải rộng nhiều region, tính theo $0.006/GB (Bắc Mỹ ↔ Châu Âu) và $0.015/GB (Châu Á Thái Bình Dương). Tác động thực tế phụ thuộc hoàn toàn vào lượng dữ liệu bạn replication; xem trang giá Fly để cập nhật. Với developer solo kỳ vọng tổng $50/tháng, chỉ riêng MPG đã có thể ăn hết ngân sách đó.
Nếu bạn không cần Postgres read replica toàn cầu, giá MPG 2026 khiến nó không phù hợp với bất cứ thứ gì nhỏ hơn một startup có funding. Các lựa chọn thực tế cho Fly deployment:
- Postgres tự host trên Fly volume (miễn phí, workflow đã deprecated, cần tự quản lý backup)
- Neon ($0/tháng free tier, tính theo usage) — kết nối tốt với mọi Fly region
- Supabase ($25/tháng Pro) — managed HA, REST API, free tier rộng rãi
Cặp đôi Neon vẫn hoạt động tốt: Railway compute (hoặc Fly compute) + Neon database là một stack gọn gàng, có thể swap platform mà không ảnh hưởng gì. Nhưng với Railway user năm 2026, Postgres HA mới có nghĩa là bạn có thể không cần Neon nữa — trừ khi bạn muốn dùng tính năng branching của Neon. Nếu database là ưu tiên số một, xem thêm so sánh Postgres host tốt nhất.
Giới hạn mở rộng — khi nào mỗi platform không còn đủ
Giới hạn của Railway
Câu chuyện horizontal scaling của Railway còn non trẻ. Bạn có thể chạy nhiều replica cho một service, nhưng tùy chọn orchestration còn hạn chế so với machines model của Fly. Khi traffic tăng đột biến, bạn sẽ scale theo chiều dọc (container to hơn) nhiều hơn là chiều ngang. Với phần lớn side project thì ổn. Nhưng nếu app cần đi từ 1 lên 100 instance trong 30 giây, Railway không phải công cụ phù hợp.
Giới hạn mà developer solo hay gặp nhất không phải traffic — mà là dữ liệu. Với 4 region (US West, US East, EU, Singapore), user ở Đông Nam Á, Nam Mỹ, hoặc Tây Phi sẽ truy cập app từ region gần nhất — có thể cách xa hơn 200ms. Với vài trăm user thì không ai nhận ra; với 10,000 user rải khắp châu lục thì bắt đầu thấy rõ.
Giới hạn của Fly.io
18 region và anycast routing của Fly.io là năng lực đặc trưng của platform. Cùng một IP được resolve đến Fly region gần user nhất. Với app mà latency là yêu cầu sản phẩm cứng, Fly không có đối thủ PaaS ngang tầm ở phân khúc này.
Fly machine còn hỗ trợ GPU workload. Nếu app của bạn cần inference tại edge, Fly là platform duy nhất trong so sánh này xử lý được mà không cần route sang AI API riêng.
Giới hạn Fly hay gặp: chi phí vận hành. Với 10+ service, quản lý file fly.toml, kích thước máy, vị trí region, và cấu hình volume là công việc infrastructure thực sự. Với developer solo muốn tập trung ship tính năng, đó là thuế bạn trả mỗi ngày. Đánh giá Fly.io 2026 phân tích chi tiết trải nghiệm vận hành thực tế.
Những thay đổi riêng năm 2026
Railway HA Postgres (tháng 3/2026) — xóa bỏ khoảng cách lớn nhất giữa Railway và Fly. Ra mắt dạng experimental ngày 13/3/2026, đạt general availability ngày 27/3/2026. Developer solo từng cần managed database bên ngoài nay có thể chạy production stack hoàn chỉnh trên Railway.
Fly.io snapshot billing (tháng 1/2026) — volume snapshot trở thành mục tính tiền. Volume đang tồn tại bắt đầu tích phí snapshot. Nếu bạn có app Fly cũ kèm volume, kiểm tra trạng thái snapshot và xóa những gì không cần.
Fly MPG inter-region charges — Fly Managed Postgres giờ tính phí traffic replication liên region. Điều này ảnh hưởng đến HA setup trải nhiều region và tăng đáng kể chi phí hiệu quả của MPG cho database phân tán toàn cầu.
Railway affiliate program — Railway ra mắt chương trình affiliate trong 2026. Signup mới qua affiliate link nhận $20 credit. (Fly.io không có affiliate program tính đến tháng 6/2026.)
Kết luận
Chọn Railway nếu:
- Bạn đang ship MVP hoặc side project và muốn deploy trong dưới 20 phút mà không cần viết Dockerfile.
- Bạn cần hard billing cap — lưới an toàn tài chính quan trọng hơn tối ưu chi phí.
- Bạn cần managed Postgres mà không phải trả $38+/tháng.
- User của bạn tập trung ở Bắc Mỹ, Châu Âu, hoặc Singapore.
- Bạn muốn preview environment theo từng branch mà không phải tự cấu hình GitHub Actions.
Chọn Fly.io nếu:
- Bạn cần edge coverage toàn cầu vượt ra ngoài 4 region của Railway — Đông Nam Á, Nam Mỹ, Tây Phi.
- App phải luôn chạy với thời gian phản hồi dưới một giây trên 18 region.
- Bạn cần GPU inference tại edge.
- Bạn thoải mái với việc quản lý Dockerfile, cấu hình fly.toml, và tự xây CI/CD pipeline.
- Bạn đang xây thứ gì đó mà machines model của Fly (kiểm soát chi tiết về placement, concurrency, kích thước máy) mang lại giá trị sản phẩm trực tiếp.
Khuyến nghị mặc định: bắt đầu với Railway Hobby ($5/tháng). Bạn sẽ dành nhiều thời gian hơn cho sản phẩm và ít hơn cho infrastructure. Nâng lên Railway Pro ($20/tháng) khi cần compute luôn chạy hoặc preview environment theo branch. Xem lại Fly.io khi bạn có user trả tiền ở những region Railway chưa phủ.
Signup Railway mới nhận $20 platform credit — đủ để chạy một service nhỏ hai đến ba tháng trong khi đánh giá xem nó có phù hợp với stack của bạn không. Thử Railway.