本来一直使用的 Linode 日本机房的 VPS,之前访问质量很好。但是最近变得就连刷推都要缓冲半天,丢包率动不动就飙到百分之五六十。忍无可忍,开始找新的虚拟主机。目标就是连接质量好,速度快,免费或者不是太贵。不过似乎免费的东西最后都会很贵。简单对比了 GCP、Azure、Linode 和 Oracle Cloud 的免费资源。Oracle Cloud 看起来真是诚意慢慢。
先说说试用过的两个云服务¶
先说一下,作为参考,我的宽带是北方联通。因为也有移动的手机和宽带,所以知道用移动的网络访问效果也很差,而且很容易就被 ISP 屏蔽了。正在琢磨着将家里一个绑定手机的移动宽带也换成联通的。
之前用过 Google 的云服务 GCP。访问速度快,几乎没有丢包的情况出现。可是只有 Oregon 等有限的三两个地区的机房有免费的主机提供。到大陆的流量还不能算在免费额度里面而且比别的地区的都贵。虽然有 200 美元的免费额度,很快就用完了。长期使用的话,仅仅是网络流量费都让人吃不消。万一再碰上网站遭到恶意刷流量,那我就得破产了。另外,现在的政策好像是 $200 的额度只有 3 个月有效期了。再更新一则信息,原来 GCP 也有推荐计划,而且力度很大,推荐的有效新注册付费用户能获得 $350 的信用点(比广告上的高些),而推荐人也能获得 $100 的使用额度。欢迎使用我的 GCP 推荐链接。
微软的 Azure 速度也非常好,与 GCP 的速度差不多。Azure 上 的 B1s 虚拟主机有 12 个月的免费额度。更新一个信息,微软的 12 个月免费使用的 B1s 虚拟主机有 2 台,一台 Linux 的,一台 Windows 的。也有免费流量,但是一个月只有 15GB。虽然也有 200 美元的信用额度,可以用一年,但似乎也不是长久之计。Azure 比 GCP 唯一好的地方在于控制面板可以无障碍访问。如果没有别的可选,Azure 倒的确是很不错的选择,其韩国机房到国内的速度是非常好的。考虑到一年的免费主机用完之后每个月约 $15 一个主机的费用(B1s 3.22 + SSD 16G 3.00 + MGN 带宽 100 GB 11.40),这代价就有点高了。这费用还是按照三年合约的优惠计算的。再加上网站的主机,差不多就得 $30/月了。
最便宜的就是现在 $5/月的 Linode 了。我开了两个主机也才 $10/月。两个合一起有 2000GB 的月流量额度。而日俄 Linode 用户现在推荐一个新用户的话可以有 $25 的奖励,同时这个新用户也可以得到有效期两个月的 $100 信用。如果有朋友想试试,可以使用水景一页的 Linode 推荐链接。可惜东京2机房的 NTT 线路现在真是没法用了。如果不是实在受不了这连接速度,也不会放弃 Linode 开始找新的服务了。自 Linode 被 Akamai 收购之后,现在的访问线路高速且稳定,详见水景一页最新的测试。
如果实在没的选了,GCP 和 Azure 也都是可以的,为了自由上网而付出的代价。这么多年下来,实在没有心劲儿去不断地折腾了,就希望能稳定地待在一个地方。所以虽然还可以用 Azure 的免费试用,如果还没开始就考虑着一年后换地方,对我来说就没啥吸引力了。因为不小心看到了 Oracle 云服务(OCI)的很多资源都提供「永久免费」使用的额度。虽然咱也不知道它啥时候就不再「永久」免费了。(照我这么多年的经验,这种国际大公司只有很少是朝三暮四的 :D)
甲骨文 OCI 的「永久免费」资源¶
更新 2022.10.25:最近 Oracle Cloud 的控制面板中有些资源因为被墙而不太能稳定访问,比如 Instances 页面打开之后无法获取已创建的计算实例(虚拟主机)的状态。
说实话,看到甲骨文 OCI 上的永久免费资源列表,我着实被惊到了。下面的截图是其中很有亮点的一部分(来自其官网中文页面)。
我最感兴趣的当然是虚拟主机。OCI 提供了 2 个基于 AMD 的计算虚拟机,每个虚拟机配备 1/8 OCPU 和 1 GB 内存。而且同时还有 4 个基于 Arm 的 Ampere A1 核心和 24 GB 内存,可用作一个虚拟机或最多 4 个虚拟机。外加 2 个块存储卷,共计 200 GB 硬盘空间。除此之外,每月免费流量达到 10TB,免费公网 IPv4 地址最多 6 个。而且,OCI 也提供有效期只有一个月的价值 300 美元的免费储值。
需要特别注意的是:所有的虚拟主机资源都只限于用户注册时选择的 Home Region 里面使用。
2 个基于 AMD 的虚拟机¶
这个虚拟主机的代号为 VM.Standard.E2.1.Micro shape (AMD)。CPU 型号 2.0 GHz AMD EPYC™ 7551 (Naples)。
Oracle 的虚拟机是按照 OCPU 来计算核心的。对于 AMD 处理器,一个 OCPU 相当于常见的 2 个 vCPU。平均可以使用 1/8 OCPU 的资源,如果平常没用到这么多,那么在需要的时候也可以短时间内超过这个 12.5% 的水平。
内存 1GB 是实打实的。但是如果按照默认安装的 Oracle Linux 操作系统来看的话,开机就只剩下大约 650MB 的内存了。如果选择安装 Ubuntu 20.04 操作系统的话就会好很多。而且 OCI 平台的那个主机资源监测服务非常吃内存,最好不要开启没有太大用的 OCI 平台提供的系统维护和优化、资源监测等插件。我试过安装 Debian 11 系统,重启后系统占用内存才不到 100MB。
这种虚拟主机包含一个虚拟网卡(VNIC),免费配一个公网 IP。针对互联网的端口带宽限制为 50Mbps,在 OCI 内部网络中的端口带宽为 480Mbps。
别忘了,每个用户都可以拥有两台这样的虚拟主机。按照官方报价,这样的每个主机价值 $22。
基于 Arm 的 Ampere A1 虚拟机¶
这个虚拟主机的代号为 VM.Standard.A1.Flex shape (基于 Arm 的 Ampere A1 CPU)。CPU 型号为 2.8GHz Ampere Altra 80C。
Flex 的意思是该类型的主机的配置是可伸缩的。用户可以自定义一个虚拟主机所使用的 OCPU 数量。内存数量也可以自己调配。好像 Ampere 是 Oracle 自己的 Arm 核心。这种核心一个 OCPU 只有一个 vCPU。
官网上对这个永久免费资源的描述是这样的,
All tenancies get the first 3,000 OCPU hours and 18,000 GB hours per month for free for VM instances
是按照时间来定义资源的。每月 3000 OCPU 小时数和 18000 GB 内存小时数,换算过来就是每个月 4 个 OCPU 和 24 GB 内存的免费额度。按照不同的使用方案,那就是 1 个虚拟机或最多 4 个虚拟机。(不知道 Oracle 为什么这么豪气。)
Oracle 把网络资源也弄成跟 OCPU 成比例分配的了,一个 OCPU 可以对应一个 VNIC,最多 24 个。所以如果是 1 台 4 OCPU 的主机,最多可以配 4 个虚拟网卡和 4 个公网 IP。目前没有明说「永久免费」资源有没有端口速度限制。在创建虚拟主机的页面,给出的端口速率是每个 1Gbps,4 个虚拟网卡全上是 4Gbps 的最大带宽。估计这个带宽只是在 OCI 内网上能用到。
两类虚拟主机是可以同时开的,也就是说,我们可以最多开 6 个永久免费的虚拟主机(实际上没那么多,看下面的存储空间限制)。
存储卷/硬盘空间¶
虚拟主机的硬盘只能是这种存储卷(Block Volume)。每个用户的免费资源是 200GB,包括备份存储卷。所有卷的总免费个数为 5 个。
普通存储卷可以分为启动卷和块设备两类。每个虚拟主机在创建的时候都需要一个系统盘(启动卷),默认是 47GB(只能调大,最大 200GB;不能调小)。也正是因为这个,实际上只能完全免费开 4 个虚拟主机。当然也可以只开 1 个虚拟主机,然后把剩余的大约 150GB 容量划成数据盘加载到主机里。需要注意的是,官方并不推荐大家将免费资源和付费资源混用,
Although it is possible to mix paid and Always Free resources, Oracle does not recommend this.
这个声明让我觉得,可能这些免费的资源并不真是「永久」的,而且可靠性多半也没法保证。
注册¶
刚开始并不知道网上2019年的时候都已经有很多人在讨论 OCI 的免费主机了。水景一页找了一圈,先开了 Azure 的。玩了几个小时,中间因为搞不清楚它的各项服务的收费方式,还升级到了 Pay as You Go 模式。然后这才又找到 Oracle 的云了。
大致看了看免费服务的内容,如前所列,就忍不住开了试用。网上搜了个云测速,看到韩国的节点速度快,然后就是德国和英国。但是考虑到韩国的网络管理太严格,德国的IP可能会导致网页时不时出点德语,就选了英国 Newport 作为 Home Region。==> 提前说重点:注册完了之后就后悔了,因为选了之后就不能更换了,免费服务也只能在 Home Region 使用。
注册过程倒是很简单。验证邮箱,验证信用卡(我用的建行的Visa卡),通过之后就能用各种服务了,虽然晚一些才会收到注册信息全部部署完毕的邮件提示。注册人所在地选中国的话,似乎账单是在新加坡处理的?我的帐户中显示的信用额度是 400 新加坡元。
后来再用老婆的招行 Visa 信用卡想注册韩国区的时候就很难了,试了几次都是在验证信用卡的时候被据。提示卡有问题,或者信息有误,或者企图掩盖自己的地理位置等。
简单试用¶
OCI 的控制面板与别家的也是有很大不同——好像各家都有自己的设计风格——需要一段时间来适应,寻找自己需要的东西。创建虚拟主机的实例的引导过程倒是很清晰、很简单。按照提示来做并不会有什么难度。大不了删了重来。这个网上已经有不少介绍了,比如这里和这里。
平台默认配置的网络规则是要与主机系统的防火墙规则配合来使用的。默认情况下主机系统里没有任何防火墙规则。在虚拟机实例的详细信息页里面可以看到挂靠的虚拟网卡 VNIC。VNIC 所对应的子网 Subnet 里面就列出来了应用于该主机的默认安全规则。默认只开通了 SSH 端口 22。如果想测试 ping 的话,需要自己修改安全规则,添加允许面向所有来源(0.0.0.0/0)的 ICMP 协议。
官方提供的 Linux 发行版,免费的就只有 Oracle Linux、CentOS 和 Ubuntu。而且其中 CentOS 不支持 Ampere 主机。前面给的两个引用文章里面也都介绍有自己重装系统的方法。我在 Ampere 主机中测试了那个自动重装 Debian 系统的脚本,很方便,也很有效。说是创建虚拟主机的时候需要选择 Ubuntu 20.04 版本的系统。
SSH 登录进入创建时选择的系统 Ubuntu 20.04,执行下面的指令,用于配置开机启动自动安装。也就是网上说的「DD系统」。实际是使用了 Debian Installer 预配置 preseed 脚本和安装 Grub 启动项,来实现开机自动启动系统安装引导,并按照预设配置来自动执行联网安装。一键脚本引用如下,
curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh chmod a+rx debi.sh sudo ./debi.sh --architecture arm64 --user root --password password
这里已经选择架构为 arm64,配置 root 用户并设置默认密码为 password。安装之后成功登录一定要记得输入 passwd 指令来修改密码。这个脚本 debi.sh 里面其实有些配置也可以自己改一改再执行,比如在创建 root 用户的同时再创建一个普通用户;使用 EFI;配置 bbr=true 参数;等等。
安装的 Debian 版本如下,
# uname -a Linux a1-test 5.10.0-8-arm64 #1 SMP Debian 5.10.46-4 (2021-08-03) aarch64 GNU/Linux
现在就可以使用 SSH 来登录了,因为之前的安装脚本已经将之前 Ubuntu 系统里的 SSH 登录密钥自动放到了新系统的 /root/.ssh/authorized_keys
里面,所以需要修改本地的登录信息,将远程系统的用户名改为 root 而不是之前默认的 ubuntu。登录时系统会提示远程服务器身份已经变更,确认安全后将本地用户的 ~/.ssh/config
中对应的服务器身份删除之后就可以正常登录了。
看看新安装的 Debian 11,真的是超小型,默认安装运行时只占 100MB 内存,
# free -m total used free shared buff/cache available Mem: 23875 100 23659 3 115 23542 Swap: 0 0 0
默认的 47GB 系统盘也只用了不到 1GB,
# df -h Filesystem Size Used Avail Use% Mounted on udev 12G 0 12G 0% /dev tmpfs 2.4G 696K 2.4G 1% /run /dev/sda2 46G 962M 43G 3% / tmpfs 12G 0 12G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 100M 6.1M 94M 7% /boot/efi tmpfs 2.4G 0 2.4G 0% /run/user/0
系统只有最基本的软件包,所以很多东西都需要自己安装。好在 Debian 的软件包非常齐全,似乎不存在什么问题。
感受:不确定性极大的「馅饼」¶
看到网上有人说在一个月的试用期结束的时候,那个 Ampere A1 虚拟机就被停了,当然也有人说没有被停。所以看来就只是「没有保障」。虽然还可以免费再开,可是没有保障就让人没法放心用来做对安全性有一定要求的任务。谁让它只是「试用」的呢。本来别人也没说让你「正式」使用这些资源。还有人说,免费的帐号可能随时就被甲骨文给封了,这就更是个不定时炸弹了。想来 OCI 既然搞这么大的免费力度多半不是为了给世界人民发福利,总会有相应的对策来防止大家可劲儿「薅羊毛」。
前面其实也表达过了,就是担心这个免费服务不靠谱。所以这几天玩下来虽然感觉还挺好用的,但是暂时不敢把网站搬迁到 OCI 上面。就算我愿意付款,这样还可以把主机安到韩国的节点上,也无法保证试用期结束的时候我的数据能保住。再加上不知道什么时候可能就会遭遇的封号。跟生活一样,最怕的就是不确定性。
我决定还是先拿它玩一段时间看看。暂时就只是做个SS服务器来用。
更新:试用期结束¶
试用期结束后会收到邮件提示:所有不在免费使用范围的服务都随时会被停止。
实际上 OCI 给了大约一个月的缓冲期。在这段时间里面多半并不会立即删除/清理非免费提供的服务。过了缓冲期就肯定会停了。而且就像之前有网友说过的那样,那个可以免费使用的 4 个 OCPU 和 24 GB 内存的 A1 Flex 主机也会被删除。不过 2 个 E2.1.Micro 的主机不会被删。并且确实可以再重新创建一个 4 OCPU 和 24 GB 内存的 A1 主机,虽然会有提示说可能会超过用户限制。©
本文发表于水景一页。永久链接:<http://cnzhx.net/blog/try-out-oracle-cloud-infrastructure/>。转载请保留此信息及相应链接。
为什么退掉移动宽带不是选择联通+电信?
出于2点考虑吧:一是便于多地组虚拟局域网;二是云资源都是针对联通线路测试的,害怕换个电信会出什么意外。
引用通告: 试用微软 Azure 云主机 | 水景一页
与其穷尽一生等一个完美的别人,不如花时间来好好修炼不完美的自己
我放了正式的网站,但每周会自动备份到谷歌网盘,以防不测。
观察一段时间。
自动备份是个好主意
不知道你注册是哪个数据中心的?英国那边的线路对国内还是不太友好。
引用通告: 为 Oracle 主机配置 IPv6 | 水景一页