X.d 笔记

小Web,大世界

0%

ServerLess 实践日志3: 收费

收费

用腾讯云的道友们都知道,最近几个月, 腾讯开始对各类服务收费了,ServerLess 也一样,不能娱快的白嫖了。

这是意料之中的事,收费是正常的,只是腾讯对 ServerLess 收费有点黑心,批评一下:

  1. 云函数本应该按量付费的,现在最低9.9元,可能有些服务按量本来只用到一两块钱的,还得交9.9的月费。
  2. CLS / API / SCF 三重收费,用到云函数的,一个请求过来一般都会用到这三个服务,每个服务都有次数流量之类的算法,可能在内部是不同的部门自己收自己的,但对用户太不友好了。

在论坛里面,腾讯云也被骂成一片,都叫嚣着换云,但对于个人用户来来,一个月可能多花不了多少钱,即便更换金钱成本为0,为这点钱去换,时间成本对个人也是划不来的,也难保其它云后面收更高。

但对于小服务商来说,就得计划成本了,其实基础设施相对比较好换,但云服务业务可能比较不好换,比如 AI / 直播 / 物联网 之类的,绑的深一点,Serverless 只是一段代码,几乎接近于正常项目代码,最好不要用到云商给的与环境相关的专用 SDK就行。

今天聊聊收费的话题,再说说适用于个人用户的省钱方案:

相关的收费

项目 收费
云函数SCF 最低档 9.9/月 ,超出按量
网关API 按量/小时 有资源包 0.03元起/万次 0.80元/GB
日志CLS 写流量 + 内网读流量 + 分区数量 + 流量 + 存储量
分发CDN 最低档 :19元/年/100G

在行为经济学上有个故事,一次性付清所有钱,会让消费者体验很爽,而一点一点扣钱,会让人感觉很不爽,虽然一点一点扣,最终加总可能并没有一性性给的多。腾讯云把这个做到了极致,一小时一扣,一个月会扣 3(scf+cls+api) * 24 * 30 = 2160 次钱,每次点开 费用/收支明细,看到好几十页的账单,也是一种爽吧。

不管怎么样吧,这点对于不同需求的项目,肯定是不同的。个人感觉吧,对于每月2000万调用以下的服务,ServerLess 还是要优于主机。

遇到攻击

在云主机时,挂个网站,要是遇到攻击时,可能会导致网站瘫痪,正常用户无法访问。(当然也可以扩容,只是没有Serverless那么方便)

但用了 Serverless 后,遇到攻击时,会自动扩容,以云平台实力,多少流量都吃的下,遇到存心不良的人可能会让你几小时内破产!

SCF可以在函数的并发配额里面设置上限,但也只能起到一定的效果。费用主要产生在API网关,攻击者或一个正常的爬虫,只要频率高点,都可以让你的余额迅速减少。

不过好像有个Money保护,账户费用被扣完后,两小时会自动停止服务,所以可以不要让账户上放太多的钱。。

除了 Money 保护外, 还可以使用下面几个手段:

  1. 生产环境使用 CDN , CDN 的流量费远低于API网关
  2. 使用API的一些插件,比如基础流量控制,可以抵挡住一些DDOS

个人极抠门方案

分享一下自己用的,供参考。

本机:可以是自己的电脑,或是一台专用服务器,作为日志服务器用。
因为腾讯云上的ES服务太贵,一年最低4000多块,加上我自己的电脑32G内存2T硬盘,也不要浪费,也可以是一台不要的机器。
COS在内网上传下载都是免费,这点可以利用,说明:在同一个 Region 上都算内网.

  1. 前置一个 CDN , 上面说了,CDN 比 API 要便宜,可以自行定回源策略,也可以 API 专用CROS分离.
  2. CDN 日志自动备份到 COS ,可以在 CDN 里面 日志转存 进行设置,会自动创建云函数。
  3. CLS 日志自动备份到COS , 可以 日志服务里面 投递到 COS 进行设置,会自动创建云函数。
  4. 本机 自动下载日志文件,下后就删,在机器自建ELK即可,用的时候启动即可。
  5. CDN 访问控制里面,加一些UA过滤,比如 HeadlessChrome, HTTrack, python-xxx 这些,可以起一点点作用
  6. 写代码时需要考虑,减少请求次数,这点可以用二八侧重法优化。

这些小贴士不一定适合其它项目,总之,可以关注一下 费用 - 收支明细 看看大头,根据情况优化即可。

小结

云服务商的收费是一个选型时必须要考虑的因素,白嫖并不是一个好心态,付出点时间研究是可以,但要值得,付出几天时间对比研究,就为省那十来块钱,我只能说,你喜欢就好。

目前想用起来 ServerLess 到实际产品,仅推荐阿里腾讯。华为云虽然也有,但功能目前还比较弱。

近来也看到了一些其它的平台在进军 Serverless , 比如 https://www.lafyun.com/ , 而且完全免费,我也体验也一下,感觉差异也比较大,相对于腾讯云来说,还不是很完善,当个练手的平台也不错,真想用的可以观望下,看后面能不能状大吧。

最后,为了方便跑路,技术造型建议都选用普通的,不要和Serverless环境绑定,如果使用阿里云的Serverless,正常使用就行,不推荐使用 Midway.js 之类的阿里提供的框架。