上个月收到一条私信,一个做独立站的兄弟说:“哥,我就跑了个WordPress加几十张商品图,这月账单快赶上一顿火锅钱了。” 我看了眼他的配置——EC2是c5.large全天跑着,RDS开了多AZ(跨可用区容灾),S3标准存储存着去年双十一的临时备份。全是冤枉钱。

计算(EC2):别跟按需实例(即用即付,单价最贵)死磕。

你的服务只要不是几分钟就停的那种,直接上节省计划(Savings Plan,承诺每月固定消费额换折扣)预留实例(RI,类似包年包月批发价)。一年期全预付,账单直接打六到七折。开发测试环境大胆用竞价实例(Spot,AWS空闲资源甩卖),跑个自动化测试、数据处理,价格是按需的三折都不到。被回收了?重新拉起就好,又不是生产环境。

别开着一堆测试机过夜。下班前把开发环境的实例停了,或者用Instance Scheduler定时开关,跟家里关灯一样自然。还有那个EBS(云硬盘),gp3比gp2便宜还更快,新开机器默认选gp3就对了。

存储(S3):冷热分层是命门。

S3标准存储是给高频访问的热数据用的。你的历史日志、备份文件、老版本代码包,压根不需要随时取用。设个生命周期规则(Lifecycle Rule,自动把旧文件挪到廉价存储层),30天没访问就转S3 Glacier Instant Retrieval,90天以上直接扔S3 Glacier Deep Archive——那地方的存储费便宜到近乎白送,只是取出来要等12小时,归档数据等得起。

还有一个坑:S3的List请求(列出文件操作)是收费的。别在代码里循环调用ListObjects,尤其小文件上万的情况,请求费分分钟盖过存储费。另外,开启S3 Intelligent-Tiering(智能分层,自动帮你挪文件)对小项目不划算,它每1000个对象收监控费,文件少的话手动配生命周期更香。

数据库(RDS):规格别当冤大头。

RDS的花钱大头就两个:实例规格和存储。先看监控——你的CPU平均利用率有没有超过40%?内存空闲是不是一大半?如果是,右规模(Right Sizing,选刚好够用的规格)往下调一档。t4g.small(基于ARM架构的突发实例)跑轻量级应用完全够,比m系列便宜将近一半。

同样,RDS也有预留实例,买一年打七折。但别碰多AZ部署——那是给生产级高可用准备的,个人项目或测试库开多AZ等于花双倍钱买心理安慰。

自动备份默认保留7天,超出20GB的备份存储要收费。如果你的库有50GB,那超出的30GB每天都在计费。进控制台把保留期缩短到3天,或者手动清理旧快照。

网络(NAT Gateway和流量):最容易漏掉的暗箭。

NAT Gateway(给私有子网里的机器访问外网用的)按小时收费,还收流量费。如果你只有一台EC2需要联网,直接给它绑个弹性IP当公网网关,省下NAT的每小时费用。跨区域传数据(比如S3复制到另一个Region)流量费很贵,非必要别干这事。

结论: 省钱的本质不是抠门,是让每一分钱都花在刀刃上。EC2上预留或竞价,S3里分层归档,RDS选对规格并砍掉备份冗余——这三板斧下来,个人项目的月度账单砍掉50%是起步。别嫌看监控麻烦,每个月花十分钟扫一眼Cost Explorer(费用可视化工具),那些异常波动的尖刺会告诉你下个月该动哪里。