1. 前言

记得是两三年前,oracle突然转型慈善企业,准确地说是oracle cloud为了推广业务开始了永久免费策略,注册成功的用户能够享受指定资源的永久免费使用权。最近可能是因为资源存量增加,oracle cloud又一次提升了注册成率,博主在这一波成功上车,这里稍作记录。

2. 注册oracle cloud

注册链接:Oracle云免费套餐

博主在第一波注册时,喜闻乐见卡在了信用卡验证上,如下:

oracle cloud有着说不清道不楚的验证策略,有人说需要走代理才行,有人说需要美国信用卡才行,有人说需要国外邮箱,但博主看了很多例子后,得到的结论是:看人品,注册成功了是运气好,失败了也不要在意,买个廉价的virmach吧。

4月29号,一位朋友使用Visa卡成功注册了oracle cloud,博主得知消息后,在4月30号使用招商银行Visa信用卡+美国代理+gmail邮箱又一次尝试注册,依旧是喜闻乐见的信用卡验证不通过。

时间来到5月18号,下班前在公司第N次尝试了注册,这次换了个方式:

  • 依旧是招行Visa信用卡,但账单地址使用公司具体地址,持卡人姓名使用拼音与卡片上保持一致,包括大小写与空格
  • 使用QQ邮箱代替国外邮箱
  • 关闭代理,直接访问oracle cloud

然后成功了:

把注册经验分享给了几个朋友后,两位有招行Visa信用卡的朋友注册成功,而一位使用Master信用卡的朋友几经周折,还是止步于信用卡验证。

所以说这个东西就是玄学,有招行Visa信用卡的朋友可以一试,没有信用卡的朋友还是老老实实买VPS吧。

注册oracle cloud时有一个选择home region的步骤,这里推荐选择:日本、首尔、美国西海岸,大陆访问这些地区的服务相比其他地区网络延迟低一些。

3. 永久免费资源

刚刚注册oracle cloud成功时,计算实例的只有AMD实例可选,5月26号时增加了ARM实例,但除了这些虚拟机外,还有很多的资源可用,具体可以查看在线文档:

我们可以看到免费资源基本涵盖了开发者入门oracle cloud需要使用的所有东西:

  • 计算:2个AMD实例,4核ARM实例(可选4C24G或4x1C6G)
  • 存储:
    • 200GB块存储:每个虚拟机需最少占用50G块存储作为系统盘
    • 10G对象存储
    • 10G归档存储
    • 2个1C20G的Oracle 自治事务处理数据库、ADW 业务数据平台、自治 JSON 数据库或 APEX Application Development
    • 3个25G的NoSQL表:有读写1.33亿次/月限制
  • 网络:
    • 每月10TB出站流量
    • 1个10Mbps的负载均衡器

一开始看到这个资源列表时,还是比较震撼的,对开发人员或者学生来说,这些资源足以支撑一个项目运行了,而对于需要科学上网的朋友来说,关注的可能只有VPS规格、网络带宽和流量。

4. 使用oracle计算实例

按照免费资源的规则限制,我们最多可以创建4个计算实例,每个实例50GB存储,或者只创建1个ARM实例,使用全部的200GB块存储。这里建议至少创建一个AMD实例和一个ARM实例,因为两者架构差距较大,目前还存在许多软件未适配ARM架构,例如MTProxy,无法运行在ARM实例上。

4.1 创建计算实例

操作系统推荐使用Ubuntu 20.04,相比默认的Oracle Linux或者常用的CentOS 7对新硬件的适配更好。

虚拟机规格分别在专业和上一代Ampere中可以找到,标记为符合始终免费条件,ARM实例可调整实例规格:

实例的CPU信息如下所示:

AMD实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
➜  ~ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   40 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              2
Core(s) per socket:              1
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       AuthenticAMD
CPU family:                      23
Model:                           1
Model name:                      AMD EPYC 7551 32-Core Processor
Stepping:                        2
CPU MHz:                         1996.250
BogoMIPS:                        3992.50
Virtualization:                  AMD-V
Hypervisor vendor:               KVM
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        16 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full AMD retpoline, IBPB conditional, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f
                                 xsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd
                                 _apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt
                                  tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_l
                                 egacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall
                                  fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt x
                                 savec xgetbv1 virt_ssbd arat npt nrip_save

ARM实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
➜  ~ lscpu
Architecture:                    aarch64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       ARM
Model:                           1
Model name:                      Neoverse-N1
Stepping:                        r3p1
BogoMIPS:                        50.00
NUMA node0 CPU(s):               0-3
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs

总的来说:

  • AMD实例与ARM实例都具备新一代CPU的指令集(相比AVX和AES都缺失的常见VPS)
  • AMD实例的CPU使用受限,虽然有2个核心,但通过软中断限制CPU使用率
  • ARM实例的CPU架构为arm64,使用不受限,可以满载

4.2 配置IPv6

计算实例所在的子网默认只配置了IPv4地址,虚拟机通过DHCP获取内网IP,公网IP走转发的方式:

我们需要在网络->虚拟云网络->虚拟云网络详细信息->CIDR块中,为虚拟机配置IPv6的CIDR块,这个IPv6地址段属于公网网段,点击添加IPv6 CIDR块一路点下去即可:

然后配置路由表,进入路由表详情信息,添加一个IPv6的路由规则即可:

最后在网络->虚拟云网络->虚拟云网络详细信息->安全列表详细信息->出站规则中。添加一个IPv6的出站规则:

使用Ubuntu 20.04的计算实例会自动配置IPv6,其他系统可能需要重启。

4.3 配置安全列表

计算实例的防火墙有两个,一个是虚拟机内部的防火墙,一个是所在子网的安全列表,这里选择清空虚拟机内部防火墙,只使用所在子网的安全列表来管理防火墙。

网络->虚拟云网络->虚拟云网络详细信息->安全列表详细信息中,编辑所需的防火墙规则,入站规则与出站规则基本与iptables的逻辑一致,可以按源IP端、协议、源端口和目标端口设置规则:

5. 写在最后

博主手上大大小小的VPS加起来接近20个(目前逐步废弃中),而oracle cloud给人最大的感受就是产品的丰富度和复杂度远超过其他厂家,例如Linode、Vultr或Digital Ocean,基本是卖服务与卖VPS的区别,虽然换成了cloud,但oracle还是那个实力雄厚的oracle,免费资源可以说是一个了解云计算厂家产品的好机会,真希望其他云计算的厂家能早点跟上。