-
由
虚拟的现实创建于8月 14, 2025 需要 2 分钟阅读时间
1. 前言
AWS 已经 18 岁,谷歌的首个云服务 App Engine 也 16 岁了,你是不是觉得云计算已经稳坐计算世界的头把交椅?但网上关于云成本和自建机房的争论却从没停过。Ruby on Rails 的创始人 David Heinemeier Hansson 大声支持自建机房,德国纽伦堡郊外的托管公司 Hetzner 也跳出来力挺自主服务器和自托管模式。
公有云、私有云还是自建机房,这场成本大战谁能笑到最后?
如果自建机房托管一台服务器比公有云便宜那么多,为什么还有公司死守云端不放?答案可能藏在“总拥有成本”(TCO)里——除了硬件钱,还得算上人力成本。我们在自建机房、私有云数据中心,以及 AWS、Azure、谷歌云 等公有云上都跑过应用,从小项目到大业务,今天就来聊聊这些选择的真实成本。
2. 三种托管方式的成本PK
项目 | 自建机房 | 私有云(数据中心) | 公有云(无服务器) |
---|---|---|---|
搭建耗时 | 16小时 | 6小时 | 1小时 |
人力成本($120/小时) | $1,920 | $720 | $120 |
硬件购置费 | $500 | $0 | $0 |
维护耗时(如系统更新) | 60小时 | 36小时 | 8小时 |
维护人力成本 | $7,200 | $4,320 | $960 |
月运营成本 | $6 | $49 | $73 |
第一年总人力成本 | $7,700 | $5,040 | $1,080 |
第一年总系统成本 | $680 | $588 | $876 |
第一年总花费 | $8,380 | $5,628 | $1,956 |
公有云(无服务函数):包括百万级请求、DynamoDB 存储、CloudFront 分发和 S3 对象存储,这些是大规模应用的标配,成本用 AWS 计算器估算,没算免费额度。
自建机房:以德国电信 SVDSL 和 Vodafone EuroDOCSIS 双 WAN 网络,下载 750 Mbps,上传 80 Mbps 为例子。
私有云(数据中心):考虑了服务器、网络和带宽费用。
这三种方案都能扛住百万请求,完美适配月收入 1 万美元的中小型 SaaS 业务。
一位英国 SaaS 小老板说得好:
如果你不把自己的时间当钱,自建机房永远便宜。公有云是托管服务,连小公司都能享受规模效应,真正的省钱在人力成本上。
2.1. 人力成本和工作量怎么比?
公有云无服务函数是全托管的。有些 SaaS 项目好几个月不用管,系统升级、安全补丁、网络问题、备份这些杂活,全都丢给云平台。反过来,自建机房和私有云就得自己操心,费时费力。
2.2. 无服务函数的高可用性与网络优势
自建机房成本可控,但弹性差、网络性能也跟不上。AWS 的 CloudFront 能全球分发内容,自建机房却得让用户直连你的网络,往返时间一长,应用响应就慢。想靠自建达到公有云的性能?几乎没戏。
项目 | 自建机房 | 私有云(数据中心) | 公有云(无服务函数) |
---|---|---|---|
位置 | 德国波恩 | 德国纽伦堡 | 德国法兰克福 |
年可用性 | 95% | 98% | 99.99% |
年停机时间 | 438小时(18天) | 175小时(7天) | 1小时 |
可用区域 | 1 | 1 | 3 |
对等连接 | 2 | 5 | > 10 |
东京往返时间 | 358ms | 235ms | 1.25ms |
带宽峰值 | 0.08 Gbps | 1 Gbps | > 10 Gbps |
最大并发连接 | 2000 | 5000 | > 1万 |
带宽费用 | 无限 | 无限 | 每月 ¥3.5/GB |
扩展2倍耗时 | 48小时 | 2小时 | 即时 |
磁盘故障后果 | 停机 | 停机 | 无影响 |
计算故障后果 | 停机 | 停机 | 无影响 |
24/7支持 | 自己搞定 | 有 | 有 |
系统升级后果 | 维护停机 | 维护停机 | 无 |
基础设施即代码 | 否 | 仅虚拟机使用 Terraform | CloudFormation,Terraform |
蓝绿部署 | 否 | 否 | 默认有 |
物理访问保护 | 最低 | 最低 ISO 27001 | 最低 ISO 27001 |
备份电源供应 | 无 | 最低 ISO 27001 | 最低 ISO 27001 |
可再生能源 | 是 | 是 | 是 |
自建机房配置:自建机房服务器就架在交换机和路由器上,紧凑实用。但像 AWS 这种公有云,运营成本里算上了人力开支,哪能跟自建机房这种“免费劳动力”比?便宜的 VPS 也一样,云厂商成本天然高。
2.3. 开发方式的三大差别
公有云、私有云和自建机房的开发思路完全不同。公有云提供虚拟机、负载均衡和数据库,你可以跑传统程序,但无服务函数模式(serverless)才是“云原生”的王道,弹性大、成本低。
项目 | 自建机房 | 私有云(数据中心) | 公有云(无服务函数) |
---|---|---|---|
部署类型 | 单机程序 | 单机程序 | 无服务函数应用 |
架构 | 单体架构 | 单体架构 | 12 Factor |
编程语言 | Go 1.23 | Go 1.23 | Go 1.23 |
Web 框架 | Go Gin | Go Gin | Go Gin w. Lambda Proxy |
操作系统 | Ubuntu (x86_64) | Ubuntu (x86_64) | Amazon Linux (arm64) |
部署方式 | 手动脚本 | 手动脚本 | 自动化工具 |
部署停机时间 | 5秒 | 2秒 | 无(蓝绿部署) |
服务配置 | Systemd 服务文件 | Systemd 服务文件 | SAM YAML |
服务更新停机时间 | 5秒 | 2秒 | 无 |
服务 IAM | 基本 Linux | 基本 Linux | AWS IAM |
本地开发环境 | Docker | Docker | CloudWatch |
数据库 | bbolt | bbolt | AWS DynamoDB |
并行化 | CPU 多线程 | CPU 多线程 | 多线程 + Fanout |
调度 | cron | cron | AWS EventBridge |
调度配置 | crontab | crontab | CloudFormation |
SSL 终止要求 | Go autots(Let’s Encrypt) | Go autots(Let’s Encrypt) | AWS ACM |
SSL 实现 | 是 | 是 | 否 |
日志管理 | 本地记录 | 本地记录 | 云端统一管理 |
存储方案 | 本地硬盘 | 本地RAID | 云存储服务 |
3. 何时使用何种方式?
自建机房、私有云和公有云各有优势,没一种是万能解,得看需求。
3.1. 自建机房:DIY爱好者的天堂
- 想学服务器全套运维
- 应用可能违规(云和数据中心不让用)
- 需要连本地设备(比如卫星天线)
- 跑匿名服务(比如 Tor)
- 有特殊硬件需求(比如老式主机)
- 地区受制裁,没云可用
- 偶尔宕机无所谓
3.2. 私有云(数据中心):中庸之道
在数据中心托管应用与在自建机房托管相似。根据你托管的复杂程度,可能已经达到了数据中心的水平。如果没有,那么选择带有裸金属服务器或者服务器托管的数据中心,是介于自建和云之间的一个不错的折衷方案。以下是选择传统数据中心托管的一些原因:
- 不想碰公有云,只管服务器不管网络
- 需要云没有的硬件
- 特定地点要最低延迟
- 大带宽需求,成本要低
- 偶尔离线没事
3.3. 公有云:省心首选
- 不能接受宕机
- 使用量波动大
- 资源需求难预测
- 需要高端硬件(比如 GPU)
- 全球无缝运行
- 合规要求多(比如 PCI DSS)
- 自己搞不定高可用
- 无标签
0 评论