冲着AWS的名头,从最开始就用的EC2,推荐用的t类型的instance。AWS的文档太多太长,推荐用哪个就用哪个。测试,使用,一直都好好的。
结果突然一天,服务器卡死了。以为是我们算法问题,各种查找。后来发现AWS有credit机制。比如给你的机器是2GHz的,但只是名义上的,其实给你的只是其中的一部分,比如说30%,也就是600MHz。如果你用的低于这个,给你credit(有封顶100),高于这个,就要消费credit。当credit为0了,就要卡你性能了,服务器就慢的受不了了。
开通花钱买credit的服务,暂时缓解了问题。后来就彻底抛弃了t类型,使用其他没有burst机制的类型,比如m。虽然贵,但是用着放心。
去年给系统架构解耦,把数据库转移到了RDS。吃一堑长一智,特意不能选t类型,各种检查,没问题,转过去了。转过去就发现有坑了。他虽然不限制CPU了,但是给IO搞了一个类似的机制,还没的选,也没法花钱买credit。有一个服务reserve一定的IOPS,但是巨贵,而且IOPS不高。唯一的方法,是他的credit计算和你用的Disk大小相关,你提高硬盘空间,IOPS会提高一点点。所以我数据库就30G左右,一次次的提高到了500G。而且很坑爹的是,他的credit上限100太低里。我一天就晚上用三四个小时,别的时候基本用的很少,但是credit都浪费了,到晚上很快100 credit就花光了。他的上限如果是200或者300,我的满够用的。
最近一年优惠期满了,价格涨了60%!nnd,逼着我放弃啊。转回去,自己搭建数据库!
是啊,从每个月几十已经涨到快上千了。我有朋友公司每个月都要十几万。怪不得AWS这么挣钱。
其实大部分服务用EC2自己装个软件都不难,用他封装好的服务你还要额外学习他们的东西,否则出了问题你完全抓瞎。AWS的support是需要额外收钱的,不花钱只能自己搞。
本来用RDS是想用他的分布式供能,我们欧洲用户越来越多,想在欧洲搞一个DB。但后来发现这个功能要额外收费,还巨贵。更重要的是,他封装的并不好,系统要整合他花的功夫并不少。
我们自己搞服务器主要问题是网络,怕不稳定。否则自己的服务器性能秒杀AWS。
你把计算放在本地,DB放在AWS,或者反过来也不成,AWS对外部流量要额外收费。每天大量DB访问,不考虑延迟,费用也少不了。