很多个人站长和小团队刚上云时都会犹豫:买一台够不够用,买两台是不是多花钱?一台机器出问题,网站就整体打不开。把业务拆到两台阿里云ECS上,好处是出故障时还有另一台能顶上,后面扩容也方便。下面说清楚三种常见用法、五个部署步骤,以及最容易踩的坑。

先想清楚两台机器要干什么
两台机器怎么配,取决于你最想解决的问题。大致分三类:
- 高可用:一台出故障,另一台接着提供服务。
- 功能分离:一台跑网站,一台跑后台任务或数据处理。
- 环境隔离:一台作为线上生产环境,一台作为测试或预发布环境。
目标不同,规格、网络和费用也不同。先定目标,再选配置,能避免买了两台却只用上一台。另外,数据库放在哪里也要一起考虑。如果网站和数据库挤在同一台机器上,两者会抢内存和磁盘,出问题时也很难分清责任在哪边。通常的做法是网站放在ECS上,数据库单独放,可以自建一台ECS,也可以直接用云数据库RDS,后者日常维护省心很多。
三个实际场景
场景一:预约小程序做双机热备
某社区健身房的预约小程序,日活约一万人。运营者最初只用一台2核4G的ECS,某次系统更新后服务中断了四个小时,高峰时段的预约全部失败。之后他在同一地域又买了一台同规格的ECS,前面挂负载均衡SLB,后端两台服务器共用同一个云数据库RDS。SLB会做健康检查,某台机器没有响应时,流量自动切到另一台。后来一次硬件故障,用户几乎没有察觉。
场景二:网站与后台任务分开
一位做电商内容的个人站长,前台是商品展示页,后台每天要生成几千张海报图,还要做数据统计。两件事抢同一台机器的CPU,页面经常卡顿。他把前台放在一台ECS上,后台任务放在另一台,两边通过对象存储OSS共享图片。前台的响应时间明显变短,后台任务跑多久都不再影响页面访问。
场景三:生产和测试分开
一个三人开发团队,改完代码直接发到线上,前后出过几次事故。之后他们用两台ECS,一台做生产,一台做预发布。新版本先部署到预发布机,测试通过再同步到生产机。两台机器使用不同的安全组和访问密钥,测试人员就不容易误操作线上数据。
部署的五个步骤
- 选地域和网络:两台机器放在同一地域、同一专有网络VPC里。内网互访更快,也不走公网流量。
- 选规格:用途相同可以先买两台同规格,比如2核4G。用途不同,就按各自的负载分别选。
- 配置安全组:只开放必要端口,比如80和443。数据库端口和后台管理端口,只允许内网或指定IP访问。
- 统一部署:两台机器的代码版本、运行环境和配置文件保持一致。最好用同一套脚本或同一个容器镜像部署,否则时间一长,两台机器很容易变得不一样。
- 接入负载均衡和监控:需要高可用时挂载SLB并开启健康检查。两台机器都设置CPU、内存和磁盘告警,出现异常能第一时间收到通知。
容易踩的坑
- 登录状态存在本地:如果用户的登录信息存在某台机器的内存或本地文件里,负载均衡一切换,用户就掉线了。应该把会话放到Redis这类共享存储中。
- 有两台却没有备份:两台机器同时出问题,或者误删了数据,冗余也救不了你。数据库要开启自动备份,并定期验证能否恢复。
- 忽略带宽费用:两台机器之间如果走公网通信,流量费会一直累加。尽量用内网地址互访。
- 价格以官网为准:云服务的计费方式和优惠经常调整。下单前,请到阿里云官网核对当前价格和计费说明。
如果只是个人博客,一台ECS通常就够了,多买一台反而是浪费。当业务已经直接影响收入或用户体验,停机一小时的损失超过多买一台的成本,再考虑用两台阿里云ECS搭建冗余,会更划算。