$7 VPS vs $70 AWS - 独立开发者的服务器选型

$7 VPS vs $70 AWS - 独立开发者的服务器选型

不是选最好的, 而是选最合适的. 混合部署让我月成本 < $30 跑 20+ 个服务

大多数独立开发者在服务器选型上会陷入一个二元对立: 要么全用便宜 VPS, 要么全上 AWS. 我两年前也纠结过这个问题, 最终的答案是 -- 都用, 但放不同的东西.
这篇不是 VPS 横评 (那个是 T06 的事), 而是聊一个具体的决策: 当你有十几个需要部署的服务, 怎么决定每个服务放哪里.

决策的起点: 我到底需要部署什么

先理清需求. 2024 年初, 我手上需要长期运行的服务大概有这些:
  • Listmonk: 邮件营销后台, 需要常驻, 流量不大
  • Stalwart Mail: 自建邮件服务器, 需要 7x24 运行
  • FeedSync: RSS 内容同步, 定时跑
  • FreshRSS + RSSHub: RSS 阅读器和源
  • 若干 Cloudflare Workers: Webhook 网关, 轻量 API
  • Windmill: 工作流引擎, 跑在本地 Mac mini
  • 多个前端站点: Hugo 静态站, Next.js 应用
特点很明显: 有些服务 "跑着就行", 有些 "挂了会影响业务", 还有些 "根本不需要服务器".

我的分类标准

我给每个服务打了三个标签:
可靠性要求: 高 (邮件/支付) / 中 (RSS) / 低 (内容同步)
资源需求: 常驻型 / 定时型 / 按需型
与其他服务的耦合: 需要和哪些服务在同一网络
服务器方案对比
服务器方案对比

最终部署方案

Contabo VPS ($7/月) - 放 "跑着就行" 的服务:
Listmonk, Stalwart Mail, FeedSync, StellarPostiz. 流量不大, 偶尔抖动可以接受. 4 核 8G CPU 日常使用率不到 10%.
AWS EC2 ($15/月) - 放 "不能挂" 的服务:
FreshRSS 和 RSSHub. StellarMail 已经在用 AWS SES, EC2 和 SES 同 VPC, 内网通信零延迟.
Cloudflare (免费) - 放 "按需" 的轻量服务:
Workers 跑 Webhook gateway, Pages 跑静态站, R2 存对象.
Vercel (免费) - 放前端应用:
StellarMail 和 AIHack 的 Landing Page.
Mac mini (本地) - 放开发和监控:
Windmill, XMonitor, 各种开发环境. 通过 Cloudflare Tunnel 暴露到公网.

运行结果

月成本: Contabo $7 + AWS EC2 ~$15 + Supabase $25 = 不到 $50 跑 20+ 个服务.
稳定性: Contabo 一年多遇过两三次网络抖动, 每次几分钟. AWS 零故障.
运维成本: 几乎为零. Docker Compose 管理, 偶尔看看日志.

给独立开发者的建议

不要被 "最佳实践" 绑架. 先问自己三个问题:
  1. 这个服务挂了, 会不会直接影响收入?
  1. 这个服务需要和哪些其他服务联动?
  1. 这个服务是常驻的还是按需的?
答案会自然指向合适的部署方案.