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