Google cloud去年起“终于”取消了免费1年的政策,让大量白嫖党失去了一个可靠免费且省心的VPS来源(其实也包括本站);降到三个月的免费期后,对付款的要求也逐步升高,因此追求在google cloud上做完全免费VPS非常困难。但google cloud的free tier(免费层级)政策,还是能薅到不少羊毛。

如果你的需求满足以下条件,值得配置一台:

  1. 自用或者小型VPS,对性能没有高要求(免费的主机只有1 vCPU,600M内存,30G硬盘,限定区域)
  2. 要求稳定,但对响应速度要求不高(直连一般150-250ms,对比东亚一些机房基本在100ms以下)
  3. 自己动手(gcloud基本需要手动配置)
  4. 支付网络费用(免费层级能节约虚机和ip等费用,但网络费用还是需要支付,到国内一般1G 0.2美刀);因此对大流量可能不合适,但如果只是个人使用,一个月用不了几个G的,比其他的VPS会便宜不少。

免费层级有特殊的政策,一旦不合政策就会收费,还有一些坑需要避免,详细记录如下。

申请

申请gcloud的流程比较简单,网上到处有,不再详述。现在还可以享受3个月/300美金的优惠,不要忘记领取。

一般可能在结算帐号,提交信用卡信息部分会有点问题,银联是不行的,还是需要visa/master,现在各个银行这种visa卡也很多,随便哪个一般都行。gcloud认证还是很快的,不像oracle cloud,都已经扣费了还会出错。

3个月的免费期可以随便造,多玩玩各种高大上的服务,反正这300美金三个月/升级之后也不会留下来。

配置免费虚机

按当前(2021.5)的政策,google cloud允许的免费的虚机是非抢占式f1-micro(更新:2021.9改为e2,详见这里),加30 GB/月 HDD,并且位于

  • 俄勒冈:us-west1
  • 爱荷华:us-central1
  • 南卡罗来纳:us-east1

可以根据实际到本地的速度来选择,虽然其实差不多。我这边选择的第一个,直接ping延迟170-250,但比较稳定,可以接受。

这里有第一个坑点,默认的磁盘是“10 GB 平衡永久性磁盘”,按免费策略,可以用30HDD,所以直接选择30G。但是,不要选择平衡永久性磁盘(收费的),而是选择“标准永久性磁盘”

选择自己喜欢的操作系统。顺便说一句,如果已经有了已经在用的虚机,直接开一个快照然后复制过来就好。

打开http/https,搞定。

其实免费层级的允许的是时间(744小时/月),所以理论上可以在不用的时候关掉,而在需要的时候开两个虚机。

系统安装和调整

资源的主要瓶颈在内存上,当然600M的内存其实足够做很多事情了。我在虚机上主要安装了:

nginx,mysql+php(这两个可以优化内存)

wordpress,owncloud

V2ray

邮箱服务(postfix+dovecot,这个有点复杂,可以另写一文)

zerotier(感觉当moon并不是特别有效)

frp穿透

当然不要忘记装上letsencrypt的工具自动更新证书

默认安装,这些加起来内存都还算充足(当然访问多了可能有瓶颈)。另外可以做一些调整来满足7*24的稳定运行。

首先第一个是杀毒/反spam软件clamav,这个装邮箱服务的时候会装上,但发现它挺耗内存的,尤其是它的升级更新服务,到了定时任务启动,虚机立即100%cpu挺尸,所以关掉它

sudo service stop clamav-freshclam

sudo service disable clamav-freshclam

如果觉得clamav(clamav-daemon)也占内存,那就也关了吧。

其次是mysql,没有特殊要求的话,关掉binlog,把内存配置调小

key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
query_cache_limit = 1M
query_cache_size = 16M

php(php-fpm)可以把进程数调小(一般配置文件在 /etc/php/$version/fpm/pool.d)下面

pm = dynamic; // 改为ondemand会更节约,稍微损失性能

pm.max_children = 5;

pm.start_servers = 2;

pm.min_spare_servers = 1;

pm.max_spare_servers = 3

top命令看内存排序(ubuntu的话按“M”)

内存和性能平衡即可。

避免额外费用

严格follow免费层级来避免额外费用。在gcloud console找到结算卡片,进入“查看详细费用”可以看到具体的费用清单。

一般应该只有网络的费用(Network Internet Egress from X to Y, 比如Network Internet Egress from Americas to China),如果有其他,则需要分析一下具体的情况。一般可能的情况是:

  1. Balanced PD Capacity,就是上述的平衡磁盘的问题,申请虚机时避免即可。如果已经申请了,也可以clone一个快照,然后新申请复制过去,5分钟解决问题。
  2. Static Ip Charge,这个是有额外的ip。gcloud允许有一个和虚机绑定的静态地址,如果有额外的ip,或者一个ip没有和虚机绑定,都会收费;另外注意ipv4和v6的ip都算的。
  3. Storage Image,这个可能是创建了自己的image但没有删除,可以在存储->映像里查看;另外存储->快照超过5G也会被收费
  4. Small Instance with 1 VCPU running xxx, 额外的虚机费用,如果使用了就会收费,包括超过744小时的f1
比较悲剧的额外费用,分析一下去除

大功告成

现在最便宜的VPS基本也需要5美元/月的样子,一个稳定的,扩展功能强,无限换IP的VPS,10G一个月也才2美元多些,可以说是很香了。