AWS返现 国际AWS亚马逊云服务器按小时计费模式
你真以为AWS是按‘小时’扣钱?先别急着关网页,这事儿比你家水表还绕
朋友老张上周收到AWS账单,差点把咖啡泼在键盘上——一台只跑了47分钟的t3.micro,账单上赫然写着$0.0104(约合7分钱)。他截图发我:‘不是说按小时计费吗?47分钟怎么不按比例收?’
我回他一句:‘兄弟,AWS的‘小时’,是带GPS定位的——它不看你钟表,只认自己服务器上的纳秒级时钟。而且,这个‘小时’,从不从整点开始,也不到整点结束。它像一只守时又任性的猫,只在你启动实例那一秒,默默按下自己的秒表。’
一、先撕掉‘按小时’这个温柔的假面具
AWS官方文档写得极优雅:‘On-Demand Instances are billed per second, with a one-minute minimum.’ 翻译过来就是:按秒计费,但最低收一分钟。可现实里,几乎所有用户看到的账单都是按小时列示的——这不是系统偷懒,而是AWS故意设计的‘认知缓冲带’。
真正发生的是:你点下‘Launch Instance’,EC2控制台显示‘Running’的那一刻,AWS后台已启动一个高精度计时器;你每运行1秒,就产生1/3600小时的费用;但结算时,系统会把你所有秒数累加,再四舍五入到最接近的小时(实际是按秒算总金额,再按小时单位展示)。所以,跑59分59秒 ≠ 花1小时的钱,但≈花1小时的钱(差1秒,差0.00027美元)。
二、‘小时’背后藏着三套平行宇宙计费规则
你以为所有实例都一样?错。AWS的‘小时’会根据实例类型自动切换人格:
- 通用型(如t3/t4g):真·按秒计费。启动即开始,停止即暂停(注意:是‘停止’,不是‘终止’!)。哪怕你只开37秒,账单里就记0.0102美元。
- 计算优化型(如c5/c6i):同样按秒,但内存和CPU资源绑定更紧。你开了c5.2xlarge却只跑个Python脚本?对不起,你为那8核32GB付了全价——AWS不管你怎么用,只管你占没占位。
- 预留实例/Spot实例:这里‘小时’彻底变形。预留实例是预购‘时间期货’,买断1年/3年,按固定小时价摊销;Spot实例则像拍卖行——你出价$0.05/小时,系统每60秒重新比价一次,价高者得,价低者秒被踢。它的‘小时’,可能由27个137秒+1个49秒拼成。
三、停机≠省钱?90%的人在这儿栽跟头
老王信誓旦旦:‘我下班前把实例Stop掉,早上再来Start,绝对省一半钱!’ 结果月账单比隔壁组还高。
问题出在‘Stop’二字上。AWS里有两个停机动作:
- Stop(停止):实例状态变‘stopped’,EBS根卷保留,公网IP释放(除非你绑了EIP),但你仍为EBS存储付费(比如30GB gp3卷,每月约$0.30);
- Terminate(终止):实例消失,EBS根卷默认删除(除非你设了DeleteOnTermination=false),存储费归零,但下次要重装系统、重配环境。
更隐蔽的坑:如果你用了Elastic IP(弹性IP),且没绑定到运行中的实例——AWS每天收$0.005!一个月就是$0.15。很多人忘了这根‘闲置的网线’,白交半年‘空气税’。
四、手把手算笔明白账:同样是1小时,为什么有人花$0.01,有人掏$1.20?
我们拿东京区域(ap-northeast-1)举例,对比三台‘同配置’实例(别笑,它们真不一样):
| 实例类型 | vCPU / 内存 | 按需小时价(USD) | 真实场景成本 | 关键差异点 |
|---|---|---|---|---|
| t4g.micro | 2vCPU / 1GiB | $0.0096 | 跑CI/CD流水线22分钟 → $0.0035 | Graviton芯片,ARM架构,免费层覆盖首750小时/月 |
| m6i.large | 2vCPU / 8GiB | $0.0808 | 同22分钟 → $0.0296 | Intel最新Ice Lake,内存翻8倍,适合Java应用 |
| r6i.xlarge | 4vCPU / 32GiB | $0.2480 | 同22分钟 → $0.091 | 内存密集型,跑Redis集群或SAP HANA才不亏 |
看懂了吗?不是‘配置越高越贵’,而是‘配置越偏离你的负载,浪费越狠’。老张用r6i.xlarge跑一个Node.js博客,就像开法拉利送外卖——引擎轰鸣,油费惊人,而货箱里只有一份肠粉。
五、5个让AWS账单‘突然变瘦’的野路子技巧
- 启用Detailed Billing Report(详细账单报告):在Billing Console里打开,导出CSV,用Excel透视表揪出‘沉默的费用杀手’——比如某台dev环境实例,凌晨三点还在跑docker logs -f,连续37天。
- 给所有非生产实例加Tag:Environment=dev,并设置Cost Allocation Tag:这样在Cost Explorer里能一眼看出‘开发组本月烧了多少钱’,吵架甩锅有据可依。
- 用Instance Scheduler(开源Lambda方案)自动启停:设规则‘工作日9:00-18:00启动,其余时间Stop’,连忘性大的实习生都能躺赢。
- 把临时任务扔进Lambda或Fargate:处理一张图片?用Lambda,$0.0000002/次;跑个数据清洗脚本?Fargate按vCPU+内存秒级计费,比开着EC2等任务来更便宜。
- 定期执行‘EBS Volume Audit’:删掉那些‘Created on 2021-03-17,Name: old-test-db-snapshot’的快照——它们不占实例费,但每个1GB快照每月收$0.095。
六、最后说句扎心的真话
AWS返现 AWS的按小时计费,本质是一场精妙的‘信任游戏’:它相信你会理性使用资源,给你无限自由;但它也悄悄在后台记下每一毫秒的占用,像一位从不眨眼的会计,穿着白大褂站在你服务器机柜旁,手持激光测距仪量你EBS卷的IO吞吐量。
省钱的关键,从来不是研究‘怎么少付一分钱’,而是学会用AWS的节奏呼吸——启动前想清楚‘我要它活多久’,运行时盯着CloudWatch看‘它是不是在假装忙碌’,停机后检查‘有没有漏掉的EIP或快照’。
下次再看到账单,别急着骂AWS黑心。先打开Cost Explorer,调出Last 7 Days,点开‘Top Services’,找到EC2行,鼠标悬停——那里会显示一行小字:‘Of which, 62% is from stopped instances with EBS volumes’。
然后,深呼吸,关掉网页,去删掉那三个命名‘test-2022’‘backup-old’‘maybe-used-someday’的EBS卷。
世界,瞬间安静了。

